diff --git a/be/src/vec/exec/scan/new_olap_scan_node.cpp b/be/src/vec/exec/scan/new_olap_scan_node.cpp index a5a18a97ddf7c9..ac916bfcd14e0c 100644 --- a/be/src/vec/exec/scan/new_olap_scan_node.cpp +++ b/be/src/vec/exec/scan/new_olap_scan_node.cpp @@ -513,6 +513,7 @@ Status NewOlapScanNode::_init_scanners(std::list* scanners) { key_ranges, rs_readers, rs_reader_seg_offsets, _need_agg_finalize, _scanner_profile.get()); + RETURN_IF_ERROR(scanner->prepare(_state, _conjuncts)); scanner->set_compound_filters(_compound_filters); scanners->push_back(scanner); return Status::OK(); diff --git a/be/src/vec/exec/scan/new_olap_scanner.cpp b/be/src/vec/exec/scan/new_olap_scanner.cpp index f87c247ea9c993..3537f9b1948600 100644 --- a/be/src/vec/exec/scan/new_olap_scanner.cpp +++ b/be/src/vec/exec/scan/new_olap_scanner.cpp @@ -103,10 +103,13 @@ static std::string read_columns_to_string(TabletSchemaSPtr tablet_schema, return read_columns_string; } +Status NewOlapScanner::prepare(RuntimeState* state, const VExprContextSPtrs& conjuncts) { + return VScanner::prepare(state, conjuncts); +} + Status NewOlapScanner::init() { _is_init = true; auto parent = static_cast(_parent); - RETURN_IF_ERROR(VScanner::prepare(_state, parent->_conjuncts)); for (auto& ctx : parent->_common_expr_ctxs_push_down) { VExprContextSPtr context; diff --git a/be/src/vec/exec/scan/new_olap_scanner.h b/be/src/vec/exec/scan/new_olap_scanner.h index 29178c12856d44..28adc4d5fe488e 100644 --- a/be/src/vec/exec/scan/new_olap_scanner.h +++ b/be/src/vec/exec/scan/new_olap_scanner.h @@ -65,6 +65,8 @@ class NewOlapScanner : public VScanner { Status close(RuntimeState* state) override; + Status prepare(RuntimeState* state, const VExprContextSPtrs& conjuncts); + const std::string& scan_disk() const { return _tablet->data_dir()->path(); } void set_compound_filters(const std::vector& compound_filters);