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]

Reply via email to