[CP][BUGFIX]json array aggr adapt bit type
This commit is contained in:
@ -5583,6 +5583,7 @@ int ObAggregateProcessor::get_json_arrayagg_result(const ObAggrInfo &aggr_info,
|
|||||||
ObObjType val_type = tmp_obj->get_type();
|
ObObjType val_type = tmp_obj->get_type();
|
||||||
ObCollationType cs_type = tmp_obj->get_collation_type();
|
ObCollationType cs_type = tmp_obj->get_collation_type();
|
||||||
ObScale scale = tmp_obj->get_scale();
|
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;
|
ObIJsonBase *json_val = NULL;
|
||||||
ObDatum converted_datum;
|
ObDatum converted_datum;
|
||||||
converted_datum.set_datum(storted_row->cells()[0]);
|
converted_datum.set_datum(storted_row->cells()[0]);
|
||||||
|
|||||||
@ -210,6 +210,7 @@ int ObJsonExprHelper::get_json_val(const ObExpr &expr, ObEvalCtx &ctx,
|
|||||||
} else {
|
} else {
|
||||||
ObBasicSessionInfo *session = ctx.exec_ctx_.get_my_session();
|
ObBasicSessionInfo *session = ctx.exec_ctx_.get_my_session();
|
||||||
ObScale scale = json_arg->datum_meta_.scale_;
|
ObScale scale = json_arg->datum_meta_.scale_;
|
||||||
|
scale = (val_type == ObBitType) ? json_arg->datum_meta_.length_semantics_ : scale;
|
||||||
if (OB_ISNULL(session)) {
|
if (OB_ISNULL(session)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("session is NULL", K(ret));
|
LOG_WARN("session is NULL", K(ret));
|
||||||
|
|||||||
Reference in New Issue
Block a user