This is an automated email from the ASF dual-hosted git repository.

eldenmoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 20d7ab061b6 [PipelineX](complex type pushdown) do not push down 
complex type to storage layer based on PR#25007 (#27278)
20d7ab061b6 is described below

commit 20d7ab061b653f13c5ad42cb6ba693f54f32c2d5
Author: airborne12 <[email protected]>
AuthorDate: Mon Nov 20 18:47:59 2023 +0800

    [PipelineX](complex type pushdown) do not push down complex type to storage 
layer based on PR#25007 (#27278)
---
 be/src/pipeline/exec/scan_operator.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/be/src/pipeline/exec/scan_operator.cpp 
b/be/src/pipeline/exec/scan_operator.cpp
index 300ebea995b..85ccf8620ca 100644
--- a/be/src/pipeline/exec/scan_operator.cpp
+++ b/be/src/pipeline/exec/scan_operator.cpp
@@ -507,6 +507,12 @@ bool ScanLocalState<Derived>::_is_predicate_acting_on_slot(
     if (_slot_id_to_value_range.end() == entry) {
         return false;
     }
+    // if the slot is a complex type(array/map/struct), we do not push down 
the predicate, because
+    // we delete pack these type into predict column, and origin pack action 
is wrong. we should
+    // make sense to push down this complex type after we delete predict 
column.
+    if (is_complex_type(remove_nullable(slot_ref->data_type()))) {
+        return false;
+    }
     *slot_desc = entry->second.first;
     DCHECK(child_contains_slot != nullptr);
     if (child_contains_slot->type().type != (*slot_desc)->type().type ||


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to