提交 c9b053fc 编写于 作者: O obdev 提交者: ob-robot

[das group rescan] clear eval flag when fill param for right op

上级 aa32b0c1
......@@ -874,7 +874,6 @@ int ObStaticEngineCG::generate_calc_exprs(
&& !raw_expr->is_op_pseudo_column_expr()
&& !has_exist_in_array(dep_exprs, flattened_cur_exprs_arr.at(i))
&& (raw_expr->has_flag(CNT_VOLATILE_CONST)
|| raw_expr->has_flag(CNT_DYNAMIC_PARAM)
|| contain_batch_stmt_parameter // 计算包含batch优化的折叠参数
|| !raw_expr->is_const_expr())) {
if (check_eval_once
......
......@@ -248,6 +248,8 @@ int ObGroupJoinBufffer::fill_cur_row_group_param()
ObExpr *dst = rescan_param.dst_;
ObDatum &param_datum = dst->locate_datum_for_write(*eval_ctx_);
ObSqlArrayObj &arr = group_params_.at(i);
dst->get_eval_info(*eval_ctx_).clear_evaluated_flag();
ObDynamicParamSetter::clear_parent_evaluated_flag(*eval_ctx_, *dst);
if (OB_FAIL(param_datum.from_obj(arr.data_[cur_group_idx_], dst->obj_datum_map_))) {
LOG_WARN("fail to cast datum", K(ret));
} else {
......@@ -269,6 +271,8 @@ int ObGroupJoinBufffer::fill_cur_row_group_param()
ObExpr *dst = rescan_param.dst_;
ObDatum &param_datum = dst->locate_datum_for_write(*eval_ctx_);
ObSqlArrayObj *arr = above_right_group_params_.at(i);
dst->get_eval_info(*eval_ctx_).clear_evaluated_flag();
ObDynamicParamSetter::clear_parent_evaluated_flag(*eval_ctx_, *dst);
if (OB_UNLIKELY(above_group_idx_for_read_ >= arr->count_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected group idx", KR(ret), K(above_group_idx_for_read_), K(arr->count_));
......
......@@ -1449,6 +1449,8 @@ int ObSubPlanFilterOp::fill_cur_row_das_batch_param(ObEvalCtx& eval_ctx, uint64_
ObExpr *dst = rescan_param.dst_;
ObDatum &param_datum = dst->locate_datum_for_write(eval_ctx);
const ObSqlArrayObj &arr = das_batch_params_.at(i);
dst->get_eval_info(eval_ctx).clear_evaluated_flag();
ObDynamicParamSetter::clear_parent_evaluated_flag(eval_ctx, *dst);
if (OB_FAIL(param_datum.from_obj(arr.data_[current_group], dst->obj_datum_map_))) {
LOG_WARN("fail to cast datum", K(ret));
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册