[FEAT MERGE] Support partitioned external table, and opt select into outfile

Co-authored-by: SevenJ-swj <sevenjworkstation@gmail.com>
Co-authored-by: dontknow9179 <545187809@qq.com>
This commit is contained in:
wjhh2008
2024-04-16 16:15:48 +00:00
committed by ob-robot
parent 3aff0d6be3
commit 0d6f3a8316
87 changed files with 4872 additions and 926 deletions

View File

@ -293,7 +293,9 @@ int ObDASScanOp::init_scan_param()
} else {
uint64_t max_idx = 0;
for (int i = 0; i < scan_param_.ext_file_column_exprs_->count(); i++) {
max_idx = std::max(max_idx, scan_param_.ext_file_column_exprs_->at(i)->extra_);
if (scan_param_.ext_file_column_exprs_->at(i)->type_ == T_PSEUDO_EXTERNAL_FILE_COL) {
max_idx = std::max(max_idx, scan_param_.ext_file_column_exprs_->at(i)->extra_);
}
}
scan_param_.external_file_format_.csv_format_.file_column_nums_ = static_cast<int64_t>(max_idx);
}
@ -486,6 +488,12 @@ void ObDASScanOp::reset_access_datums_ptr()
ObEvalInfo &info = (*e)->get_eval_info(*scan_rtdef_->eval_ctx_);
info.point_to_frame_ = true;
}
FOREACH_CNT(e, scan_ctdef_->pd_expr_spec_.ext_file_column_exprs_) {
(*e)->locate_datums_for_update(*scan_rtdef_->eval_ctx_, scan_rtdef_->eval_ctx_->max_batch_size_);
ObEvalInfo &info = (*e)->get_eval_info(*scan_rtdef_->eval_ctx_);
info.point_to_frame_ = true;
}
if (OB_NOT_NULL(scan_ctdef_->trans_info_expr_)) {
ObExpr *trans_expr = scan_ctdef_->trans_info_expr_;
trans_expr->locate_datums_for_update(*scan_rtdef_->eval_ctx_, scan_rtdef_->eval_ctx_->max_batch_size_);