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 <happen...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org