You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ga...@apache.org on 2022/10/21 13:41:28 UTC
[doris] branch master updated: [RuntimeFilter] (vec) support runtime filter in indeed slot id (#13556)
This is an automated email from the ASF dual-hosted git repository.
gabriellee 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 122f36e5be [RuntimeFilter] (vec) support runtime filter in indeed slot id (#13556)
122f36e5be is described below
commit 122f36e5be910fe2f5193b7966105cc807d851ba
Author: HappenLee <ha...@hotmail.com>
AuthorDate: Fri Oct 21 21:41:23 2022 +0800
[RuntimeFilter] (vec) support runtime filter in indeed slot id (#13556)
---
fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java | 4 ++++
.../src/main/java/org/apache/doris/analysis/SlotRef.java | 12 ++++++++++++
.../main/java/org/apache/doris/planner/RuntimeFilter.java | 1 +
3 files changed, 17 insertions(+)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
index 7bb85ab269..7753472864 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
@@ -1207,6 +1207,10 @@ public abstract class Expr extends TreeNode<Expr> implements ParseNode, Cloneabl
}
}
+ public Expr getRealSlotRef() {
+ return this;
+ }
+
public void getTableIdToColumnNames(Map<Long, Set<String>> tableIdToColumnNames) {
Preconditions.checkState(tableIdToColumnNames != null);
for (Expr child : children) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
index 746159a0b9..7ba05121c7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
@@ -358,6 +358,18 @@ public class SlotRef extends Expr {
}
}
+ @Override
+ public Expr getRealSlotRef() {
+ Preconditions.checkState(!type.equals(Type.INVALID));
+ Preconditions.checkState(desc != null);
+ if (!desc.getSourceExprs().isEmpty()
+ && desc.getSourceExprs().get(0) instanceof SlotRef) {
+ return desc.getSourceExprs().get(0);
+ } else {
+ return this;
+ }
+ }
+
@Override
public void getIds(List<TupleId> tupleIds, List<SlotId> slotIds) {
Preconditions.checkState(!type.equals(Type.INVALID));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilter.java b/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilter.java
index c3fec43021..13c74472ac 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilter.java
@@ -269,6 +269,7 @@ public final class RuntimeFilter {
return null;
}
+ targetExpr = targetExpr.getRealSlotRef();
Map<TupleId, List<SlotId>> targetSlots = getTargetSlots(analyzer, targetExpr);
Preconditions.checkNotNull(targetSlots);
if (targetSlots.isEmpty()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org