From 857d38e24b42638b1fe90bc57e49dad99a3d8d4a Mon Sep 17 00:00:00 2001 From: Xinyi Zou Date: Mon, 27 Feb 2023 09:58:37 +0800 Subject: [PATCH] [fix](scan) Default enable function(Like) pushdown #17154 function pushdown: #10355 NGram BloomFilter Index apply like pushdown: #11579 Enabled by default, make sure it stays active. If NGram BloomFilter Index is not used, this like pushdown can be replaced by #15917, which can push down all expressions including like. --- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 7 +++++++ .../src/main/java/org/apache/doris/qe/SessionVariable.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index aaec42a84c..73feeb3539 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -24,6 +24,7 @@ #include "common/consts.h" #include "common/status.h" #include "olap/column_predicate.h" +#include "olap/like_column_predicate.h" #include "olap/olap_common.h" #include "olap/rowset/segment_v2/column_reader.h" #include "olap/rowset/segment_v2/segment.h" @@ -568,6 +569,12 @@ bool SegmentIterator::_check_apply_by_inverted_index(ColumnPredicate* pred, bool return false; } + // Function filter no apply inverted index + if (dynamic_cast*>(pred) || + dynamic_cast*>(pred)) { + return false; + } + bool handle_by_fulltext = _column_has_fulltext_index(unique_id); if (handle_by_fulltext) { // when predicate in compound condition which except leafNode of andNode, diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 7debdfd7a4..a3d844a160 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -630,7 +630,7 @@ public class SessionVariable implements Serializable, Writable { public boolean enableSingleReplicaInsert = false; @VariableMgr.VarAttr(name = ENABLE_FUNCTION_PUSHDOWN) - public boolean enableFunctionPushdown; + public boolean enableFunctionPushdown = true; @VariableMgr.VarAttr(name = ENABLE_LOCAL_EXCHANGE, fuzzy = true) public boolean enableLocalExchange = true;