This is an automated email from the ASF dual-hosted git repository.

morrysnow 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 983f851fb8b [fix](Nereids) runtime filter push down failed (#28997)
983f851fb8b is described below

commit 983f851fb8b5005c8283eb5a13ed59835c4e7db2
Author: morrySnow <[email protected]>
AuthorDate: Tue Dec 26 14:13:43 2023 +0800

    [fix](Nereids) runtime filter push down failed (#28997)
    
    project child not always NamedExpression
    
    failed msg
    ```
    org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = 
class org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral cannot 
be cast to class org.apache.doris.nereids.trees.expressions.NamedExpression 
(org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral and 
org.apache.doris.nereids.trees.expressions.NamedExpression are in unnamed 
module of loader 'app')
        at 
org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:623) 
~[classes/:?]
        at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:478) 
~[classes/:?]
        at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:457) 
~[classes/:?]
        at 
org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:245) 
~[classes/:?]
        at 
org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:166)
 ~[classes/:?]
        at 
org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:193)
 ~[classes/:?]
        at 
org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:246)
 ~[classes/:?]
        at 
org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) 
~[classes/:?]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
~[?:?]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
~[?:?]
        at java.lang.Thread.run(Thread.java:829) ~[?:?]
    Caused by: java.lang.ClassCastException: class 
org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral cannot be 
cast to class org.apache.doris.nereids.trees.expressions.NamedExpression 
(org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral and 
org.apache.doris.nereids.trees.expressions.NamedExpression are in unnamed 
module of loader 'app')
        at 
org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.pushDownRuntimeFilter(PhysicalSetOperation.java:178)
 ~[classes/:?]
        at 
org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.pushDownRuntimeFilter(PhysicalHashJoin.java:229)
 ~[classes/:?]
        at 
org.apache.doris.nereids.processor.post.RuntimeFilterGenerator.pushDownRuntimeFilterCommon(RuntimeFilterGenerator.java:386)
 ~[classes/:?]
    ```
---
 .../apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java   | 4 ++--
 .../doris/nereids/trees/plans/physical/PhysicalSetOperation.java      | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
index 183ccaabfa8..5086d0f3616 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
@@ -181,8 +181,8 @@ public class PhysicalHashJoin<
             TRuntimeFilterType type, long buildSideNdv, int exprOrder) {
         if (RuntimeFilterGenerator.DENIED_JOIN_TYPES.contains(getJoinType()) 
|| isMarkJoin()) {
             if (builderNode instanceof PhysicalHashJoin) {
-                PhysicalHashJoin<?, ?> builderJion = (PhysicalHashJoin<?, ?>) 
builderNode;
-                if (builderJion == this) {
+                PhysicalHashJoin<?, ?> builderJoin = (PhysicalHashJoin<?, ?>) 
builderNode;
+                if (builderJoin == this) {
                     return false;
                 }
             }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSetOperation.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSetOperation.java
index ec9537e7cb9..a85e2cf67a5 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSetOperation.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSetOperation.java
@@ -173,9 +173,9 @@ public abstract class PhysicalSetOperation extends 
AbstractPhysicalPlan implemen
                 if (projIndex < 0 || projIndex >= 
project.getProjects().size()) {
                     continue;
                 }
-                NamedExpression newProbeExpr = 
project.getProjects().get(projIndex);
+                Expression newProbeExpr = project.getProjects().get(projIndex);
                 if (newProbeExpr instanceof Alias) {
-                    newProbeExpr = (NamedExpression) newProbeExpr.child(0);
+                    newProbeExpr = newProbeExpr.child(0);
                 }
                 Slot newProbeSlot = 
RuntimeFilterGenerator.checkTargetChild(newProbeExpr);
                 if 
(!RuntimeFilterGenerator.checkPushDownPreconditionsForJoin(builderNode, ctx, 
newProbeSlot)) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to