This is an automated email from the ASF dual-hosted git repository.
kakachen pushed a commit to branch tpc_preview6
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/tpc_preview6 by this push:
new 5a7a7030bef [fix](parquet)fix parquet reader lazy materialization
cannot filter. (#60486)
5a7a7030bef is described below
commit 5a7a7030bef4694555e622224e658818659c6a0b
Author: daidai <[email protected]>
AuthorDate: Wed Feb 4 14:23:43 2026 +0800
[fix](parquet)fix parquet reader lazy materialization cannot filter.
(#60486)
---
be/src/vec/exec/scan/file_scanner.cpp | 14 +++++---------
be/src/vec/exec/scan/file_scanner.h | 3 +--
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/be/src/vec/exec/scan/file_scanner.cpp
b/be/src/vec/exec/scan/file_scanner.cpp
index 63a9ca8abb3..17170df68f7 100644
--- a/be/src/vec/exec/scan/file_scanner.cpp
+++ b/be/src/vec/exec/scan/file_scanner.cpp
@@ -352,15 +352,11 @@ Status FileScanner::_process_conjuncts() {
return Status::OK();
}
-Status FileScanner::_process_late_arrival_conjuncts(bool* changed,
- VExprContextSPtrs&
new_push_down_conjuncts) {
- *changed = false;
+Status FileScanner::_process_late_arrival_conjuncts() {
if (_push_down_conjuncts.size() < _conjuncts.size()) {
- *changed = true;
_push_down_conjuncts = _conjuncts;
_conjuncts.clear();
RETURN_IF_ERROR(_process_conjuncts());
- new_push_down_conjuncts = _push_down_conjuncts;
}
if (_applied_rf_num == _total_rf_num) {
_local_state->scanner_profile()->add_info_string("ApplyAllRuntimeFilters",
"True");
@@ -1038,7 +1034,9 @@ Status FileScanner::_get_next_reader() {
// ATTN: the push down agg type may be set back to NONE,
// see IcebergTableReader::init_row_filters for example.
parquet_reader->set_push_down_agg_type(_get_push_down_agg_type());
-
+ if (push_down_predicates) {
+ RETURN_IF_ERROR(_process_late_arrival_conjuncts());
+ }
RETURN_IF_ERROR(_init_parquet_reader(std::move(parquet_reader),
file_meta_cache_ptr));
need_to_get_parsed_schema = true;
@@ -1059,9 +1057,7 @@ Status FileScanner::_get_next_reader() {
orc_reader->set_push_down_agg_type(_get_push_down_agg_type());
if (push_down_predicates) {
- bool changed = false;
- VExprContextSPtrs new_push_down_conjuncts;
- RETURN_IF_ERROR(_process_late_arrival_conjuncts(&changed,
new_push_down_conjuncts));
+ RETURN_IF_ERROR(_process_late_arrival_conjuncts());
}
RETURN_IF_ERROR(_init_orc_reader(std::move(orc_reader),
file_meta_cache_ptr));
diff --git a/be/src/vec/exec/scan/file_scanner.h
b/be/src/vec/exec/scan/file_scanner.h
index e3f08982e7a..24c5d0d03b0 100644
--- a/be/src/vec/exec/scan/file_scanner.h
+++ b/be/src/vec/exec/scan/file_scanner.h
@@ -252,8 +252,7 @@ private:
void _init_runtime_filter_partition_prune_block();
Status _process_runtime_filters_partition_prune(bool& is_partition_pruned);
Status _process_conjuncts();
- Status _process_late_arrival_conjuncts(bool* changed,
- VExprContextSPtrs&
new_push_down_conjuncts);
+ Status _process_late_arrival_conjuncts();
void _get_slot_ids(VExpr* expr, std::vector<int>* slot_ids);
Status _generate_truncate_columns(bool need_to_get_parsed_schema);
Status _set_fill_or_truncate_columns(bool need_to_get_parsed_schema);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]