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

starocean999 pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new 536dd3ba549 [Fix](Nereids) ignore match expression logging warning 
message (#41546) (#42205)
536dd3ba549 is described below

commit 536dd3ba549fddc8ce6fda4b2510a96cbdda1717
Author: LiBinfeng <[email protected]>
AuthorDate: Tue Oct 22 09:54:31 2024 +0800

    [Fix](Nereids) ignore match expression logging warning message (#41546) 
(#42205)
    
    pick: #41546
    when match do not contains slot reference it would throw an exception
    when translate to original planner expr.
    this kind of message is not need to be recorded
    
    ## Proposed changes
    
    Issue Number: close #xxx
    
    <!--Describe your changes.-->
---
 .../rules/expression/rules/FoldConstantRuleOnBE.java       |  7 +------
 .../nereids/glue/translator/ExpressionTranslatorTest.java  | 14 ++++++++++++--
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
index 810d281ac57..fc6112834a0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java
@@ -192,7 +192,7 @@ public class FoldConstantRuleOnBE implements 
ExpressionPatternRuleFactory {
 
     private static void collectConst(Expression expr, Map<String, Expression> 
constMap,
             Map<String, TExpr> tExprMap, IdGenerator<ExprId> idGenerator) {
-        if (expr.isConstant() && !shouldSkipFold(expr)) {
+        if (expr.isConstant() && !expr.isLiteral() && !expr.anyMatch(e -> 
shouldSkipFold((Expression) e))) {
             String id = idGenerator.getNextId().toString();
             constMap.put(id, expr);
             Expr staleExpr;
@@ -218,11 +218,6 @@ public class FoldConstantRuleOnBE implements 
ExpressionPatternRuleFactory {
 
     // Some expressions should not do constant folding
     private static boolean shouldSkipFold(Expression expr) {
-        // Skip literal expr
-        if (expr.isLiteral()) {
-            return true;
-        }
-
         // Frontend can not represent those types
         if (expr.getDataType().isAggStateType() || 
expr.getDataType().isObjectType()
                 || expr.getDataType().isVariantType() || 
expr.getDataType().isTimeLikeType()
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/glue/translator/ExpressionTranslatorTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/glue/translator/ExpressionTranslatorTest.java
index cdea9eea5d3..ccfbce80589 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/glue/translator/ExpressionTranslatorTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/glue/translator/ExpressionTranslatorTest.java
@@ -23,9 +23,12 @@ import org.apache.doris.analysis.Expr;
 import org.apache.doris.analysis.IntLiteral;
 import org.apache.doris.catalog.Function.NullableMode;
 import org.apache.doris.catalog.Type;
-import org.apache.doris.common.AnalysisException;
+import org.apache.doris.nereids.exceptions.AnalysisException;
 import org.apache.doris.nereids.trees.expressions.BitNot;
+import org.apache.doris.nereids.trees.expressions.MatchAny;
 import org.apache.doris.nereids.trees.expressions.literal.IntegerLiteral;
+import org.apache.doris.nereids.trees.expressions.literal.NullLiteral;
+import org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral;
 
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -33,7 +36,7 @@ import org.junit.jupiter.api.Test;
 public class ExpressionTranslatorTest {
 
     @Test
-    public void testUnaryArithmetic() throws AnalysisException {
+    public void testUnaryArithmetic() throws Exception {
         BitNot bitNot = new BitNot(new IntegerLiteral(1));
         ExpressionTranslator translator = ExpressionTranslator.INSTANCE;
         Expr actual = translator.visitUnaryArithmetic(bitNot, null);
@@ -41,4 +44,11 @@ public class ExpressionTranslatorTest {
                 new IntLiteral(1, Type.INT), null, Type.INT, 
NullableMode.DEPEND_ON_ARGUMENT);
         Assertions.assertEquals(actual, expected);
     }
+
+    @Test
+    public void testMatch() {
+        MatchAny matchAny = new MatchAny(new VarcharLiteral("collections"), 
new NullLiteral());
+        ExpressionTranslator translator = ExpressionTranslator.INSTANCE;
+        Assertions.assertThrows(AnalysisException.class, () -> 
translator.visitMatch(matchAny, null));
+    }
 }


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

Reply via email to