diff --git a/src/sql/das/ob_das_scan_op.cpp b/src/sql/das/ob_das_scan_op.cpp index a14e0891e..683ac31ca 100644 --- a/src/sql/das/ob_das_scan_op.cpp +++ b/src/sql/das/ob_das_scan_op.cpp @@ -209,6 +209,11 @@ int ObDASScanOp::swizzling_remote_task(ObDASRemoteInfo *remote_info) } else { scan_rtdef_->p_pd_expr_op_->get_eval_ctx() .set_max_batch_size(scan_ctdef_->pd_expr_spec_.max_batch_size_); + bool is_vectorized = scan_rtdef_->p_pd_expr_op_->is_vectorized(); + if (!scan_rtdef_->p_pd_expr_op_->is_vectorized()) { + scan_rtdef_->p_pd_expr_op_->get_eval_ctx().set_batch_size(1); + scan_rtdef_->p_pd_expr_op_->get_eval_ctx().set_batch_idx(0); + } } for (int i = 0; OB_SUCC(ret) && i < related_rtdefs_.count(); ++i) { if (OB_NOT_NULL(related_rtdefs_.at(i)) && @@ -223,6 +228,10 @@ int ObDASScanOp::swizzling_remote_task(ObDASRemoteInfo *remote_info) } else { related_rtdef->p_pd_expr_op_->get_eval_ctx() .set_max_batch_size(related_ctdef->pd_expr_spec_.max_batch_size_); + if (!related_rtdef->p_pd_expr_op_->is_vectorized()) { + related_rtdef->p_pd_expr_op_->get_eval_ctx().set_batch_size(1); + related_rtdef->p_pd_expr_op_->get_eval_ctx().set_batch_idx(0); + } } } } diff --git a/src/sql/engine/expr/ob_expr.h b/src/sql/engine/expr/ob_expr.h index 00a2ab96c..621bb5d1f 100644 --- a/src/sql/engine/expr/ob_expr.h +++ b/src/sql/engine/expr/ob_expr.h @@ -162,6 +162,7 @@ struct ObEvalCtx { friend struct ObExpr; friend class ObOperator; + friend class ObDASScanOp; friend class ObSubPlanFilterOp; // FIXME qubin.qb: remove this line from friend friend class oceanbase::storage::ObVectorStore; friend class oceanbase::storage::ObAggregatedStoreVec;