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]