This is an automated email from the ASF dual-hosted git repository.
kxiao 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 74d88d5f76e [update](session-var) set
ENABLE_COMMON_EXPR_PUSHDOWN_FOR_INVERTED_INDEX default to true (#35387)
74d88d5f76e is described below
commit 74d88d5f76eb8c04f3425788992ba1ff79a1211c
Author: amory <[email protected]>
AuthorDate: Tue Jul 2 15:20:05 2024 +0800
[update](session-var) set ENABLE_COMMON_EXPR_PUSHDOWN_FOR_INVERTED_INDEX
default to true (#35387)
set session variable ENABLE_COMMON_EXPR_PUSHDOWN_FOR_INVERTED_INDEX default
value to true and limit it to array_contains function.
---
be/src/olap/rowset/segment_v2/segment_iterator.cpp | 7 +++++++
fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java | 7 ++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
index a8a9758afcd..82a3c8ba509 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
@@ -90,6 +90,7 @@
#include "vec/exprs/vexpr_context.h"
#include "vec/exprs/vliteral.h"
#include "vec/exprs/vslot_ref.h"
+#include "vec/functions/array/function_array_index.h"
#include "vec/json/path_in_data.h"
namespace doris {
@@ -1342,6 +1343,12 @@ Status SegmentIterator::_apply_inverted_index() {
// _inverted_index_iterators has all column ids which has inverted
index
// _common_expr_columns has all column ids from
_common_expr_ctxs_push_down
// if current bitmap is already empty just return
+ if (!(expr_ctx->root()->node_type() ==
TExprNodeType::FUNCTION_CALL &&
+ expr_ctx->root()->fn().name.function_name ==
+ vectorized::ArrayContainsAction::name)) {
+ // now we only support ArrayContains function to evaluate
inverted index
+ continue;
+ }
if (_row_bitmap.isEmpty()) {
break;
}
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 7aa78c2bbb2..59b5d89ac2b 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
@@ -1471,9 +1471,9 @@ public class SessionVariable implements Serializable,
Writable {
public boolean enableInvertedIndexQuery = true;
// Whether enable query expr with inverted index.
- @VariableMgr.VarAttr(name =
ENABLE_COMMON_EXPR_PUSHDOWN_FOR_INVERTED_INDEX, needForward = true, description
= {
- "是否启用表达式上使用 inverted index。", "Set whether to use inverted index
query for expr."})
- public boolean enableCommonExpPushDownForInvertedIndex = false;
+ @VariableMgr.VarAttr(name =
ENABLE_COMMON_EXPR_PUSHDOWN_FOR_INVERTED_INDEX, fuzzy = true, needForward =
true,
+ description = {"是否启用表达式上使用 inverted index。", "Set whether to use
inverted index query for expr."})
+ public boolean enableCommonExpPushDownForInvertedIndex = true;
// Whether enable pushdown count agg to scan node when using inverted
index match.
@VariableMgr.VarAttr(name = ENABLE_PUSHDOWN_COUNT_ON_INDEX, needForward =
true, description = {
@@ -2008,6 +2008,7 @@ public class SessionVariable implements Serializable,
Writable {
this.enableLocalExchange = random.nextBoolean();
// This will cause be dead loop, disable it first
// this.disableJoinReorder = random.nextBoolean();
+ this.enableCommonExpPushDownForInvertedIndex = random.nextBoolean();
this.disableStreamPreaggregations = random.nextBoolean();
this.partitionedHashJoinRowsThreshold = random.nextBoolean() ? 8 :
1048576;
this.partitionedHashAggRowsThreshold = random.nextBoolean() ? 8 :
1048576;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]