diff --git a/src/sql/code_generator/ob_static_engine_expr_cg.cpp b/src/sql/code_generator/ob_static_engine_expr_cg.cpp index c5bac57a29..3ee0fa8a47 100644 --- a/src/sql/code_generator/ob_static_engine_expr_cg.cpp +++ b/src/sql/code_generator/ob_static_engine_expr_cg.cpp @@ -276,6 +276,11 @@ int ObStaticEngineExprCG::cg_expr_basic(const ObIArray &raw_exprs) rt_expr->obj_meta_.set_has_lob_header(); } } + // For bit type, `length_semantics_` is used as width in datum mate, and `scale_` is used + // as width in obj, so passing length meta to scale in obj_mate. + if (ob_is_bit_tc(result_meta.get_type())) { + rt_expr->obj_meta_.set_scale(rt_expr->datum_meta_.length_semantics_); + } // init max_length_ rt_expr->max_length_ = raw_expr->get_result_type().get_length(); // init obj_datum_map_