From 6608b24752e2a44d52d45613edffd30c4ee6a44d Mon Sep 17 00:00:00 2001 From: obdev Date: Wed, 9 Nov 2022 02:35:39 +0000 Subject: [PATCH] [CP][BUGFIX]json array aggr adapt bit type --- src/sql/engine/aggregate/ob_aggregate_processor.cpp | 1 + src/sql/engine/expr/ob_expr_json_func_helper.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/sql/engine/aggregate/ob_aggregate_processor.cpp b/src/sql/engine/aggregate/ob_aggregate_processor.cpp index 18faec0a2f..0b6da45a44 100644 --- a/src/sql/engine/aggregate/ob_aggregate_processor.cpp +++ b/src/sql/engine/aggregate/ob_aggregate_processor.cpp @@ -5583,6 +5583,7 @@ int ObAggregateProcessor::get_json_arrayagg_result(const ObAggrInfo &aggr_info, ObObjType val_type = tmp_obj->get_type(); ObCollationType cs_type = tmp_obj->get_collation_type(); ObScale scale = tmp_obj->get_scale(); + scale = (val_type == ObBitType) ? aggr_info.param_exprs_.at(0)->datum_meta_.length_semantics_ : scale; ObIJsonBase *json_val = NULL; ObDatum converted_datum; converted_datum.set_datum(storted_row->cells()[0]); diff --git a/src/sql/engine/expr/ob_expr_json_func_helper.cpp b/src/sql/engine/expr/ob_expr_json_func_helper.cpp index d783e9a387..e1d471d076 100644 --- a/src/sql/engine/expr/ob_expr_json_func_helper.cpp +++ b/src/sql/engine/expr/ob_expr_json_func_helper.cpp @@ -210,6 +210,7 @@ int ObJsonExprHelper::get_json_val(const ObExpr &expr, ObEvalCtx &ctx, } else { ObBasicSessionInfo *session = ctx.exec_ctx_.get_my_session(); ObScale scale = json_arg->datum_meta_.scale_; + scale = (val_type == ObBitType) ? json_arg->datum_meta_.length_semantics_ : scale; if (OB_ISNULL(session)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("session is NULL", K(ret));