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

englefly 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 320fc1481a [fix](Nereids) some expression not cast in in predicate 
(#24680)
320fc1481a is described below

commit 320fc1481acbdc521961e74d0b23e321d66cce63
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Fri Sep 22 12:58:33 2023 +0800

    [fix](Nereids) some expression not cast in in predicate (#24680)
    
    1. should use castIfNotSameType in InPredicate and CaseWhen
    2. StringLikeLiteral should override equals to ignore type
---
 .../expression/rules/SimplifyInPredicate.java      | 28 ++++++++++++++++++----
 .../expressions/literal/StringLikeLiteral.java     | 19 +++++++++++++++
 .../org/apache/doris/nereids/types/CharType.java   |  5 ----
 .../org/apache/doris/nereids/types/StringType.java |  5 ----
 .../apache/doris/nereids/types/VarcharType.java    |  5 ----
 .../doris/nereids/util/TypeCoercionUtils.java      | 13 ++++------
 .../nereids/datasets/ssb/SSBJoinReorderTest.java   |  4 ++--
 .../rules/expression/SimplifyInPredicateTest.java  |  7 ++++--
 .../apache/doris/nereids/types/DataTypeTest.java   |  8 +++----
 .../doris/nereids/util/TypeCoercionUtilsTest.java  | 16 +++++++++++--
 .../data/nereids_ssb_shape_sf100_p0/shape/q4.1.out |  2 +-
 .../data/nereids_ssb_shape_sf100_p0/shape/q4.2.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query1.out  |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query13.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query16.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query17.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query18.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query24.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query26.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query27.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query30.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query34.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query4.out  |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query41.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query48.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query54.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query61.out |  6 ++---
 .../nereids_tpcds_shape_sf100_p0/shape/query7.out  |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query71.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query72.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query73.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query75.out |  6 ++---
 .../nereids_tpcds_shape_sf100_p0/shape/query8.out  |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query80.out |  6 ++---
 .../nereids_tpcds_shape_sf100_p0/shape/query81.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query85.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query91.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query93.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query94.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query95.out |  4 ++--
 .../nereids_tpch_shape_sf1000_p0/shape/q19.out     |  2 +-
 .../data/nereids_tpch_shape_sf500_p0/shape/q19.out |  2 +-
 .../nereids_p0/join/bucket_shuffle_join.groovy     |  2 +-
 43 files changed, 118 insertions(+), 86 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/SimplifyInPredicate.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/SimplifyInPredicate.java
index 8feb52cd4b..3e194a4edd 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/SimplifyInPredicate.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/SimplifyInPredicate.java
@@ -24,8 +24,9 @@ import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.InPredicate;
 import org.apache.doris.nereids.trees.expressions.literal.DateTimeV2Literal;
 import org.apache.doris.nereids.trees.expressions.literal.DateV2Literal;
+import org.apache.doris.nereids.types.DateTimeV2Type;
 
-import com.google.common.collect.Lists;
+import com.google.common.collect.ImmutableList;
 
 import java.util.List;
 
@@ -46,12 +47,25 @@ public class SimplifyInPredicate extends 
AbstractExpressionRewriteRule {
                     List<Expression> literals = expr.children().subList(1, 
expr.children().size());
                     if (literals.stream().allMatch(literal -> literal 
instanceof DateTimeV2Literal
                             && 
canLosslessConvertToDateV2Literal((DateTimeV2Literal) literal))) {
-                        List<Expression> children = Lists.newArrayList();
+                        ImmutableList.Builder<Expression> children = 
ImmutableList.builder();
                         children.add(cast.child());
-                        literals.stream().forEach(
-                                l -> 
children.add(convertToDateV2Literal((DateTimeV2Literal) l)));
-                        return expr.withChildren(children);
+                        literals.forEach(l -> 
children.add(convertToDateV2Literal((DateTimeV2Literal) l)));
+                        return expr.withChildren(children.build());
                     }
+                } else if (cast.child().getDataType().isDateTimeV2Type()
+                        && expr.child(1) instanceof DateTimeV2Literal) {
+                    List<Expression> literals = expr.children().subList(1, 
expr.children().size());
+                    DateTimeV2Type compareType = (DateTimeV2Type) 
cast.child().getDataType();
+                    if (literals.stream().allMatch(literal -> literal 
instanceof DateTimeV2Literal
+                            && canLosslessConvertToLowScaleLiteral(
+                                    (DateTimeV2Literal) literal, 
compareType.getScale()))) {
+                        ImmutableList.Builder<Expression> children = 
ImmutableList.builder();
+                        children.add(cast.child());
+                        literals.forEach(l -> children.add(new 
DateTimeV2Literal(compareType,
+                                ((DateTimeV2Literal) l).getStringValue())));
+                        return expr.withChildren(children.build());
+                    }
+
                 }
             }
         }
@@ -75,4 +89,8 @@ public class SimplifyInPredicate extends 
AbstractExpressionRewriteRule {
     private DateV2Literal convertToDateV2Literal(DateTimeV2Literal literal) {
         return new DateV2Literal(literal.getYear(), literal.getMonth(), 
literal.getDay());
     }
+
+    private static boolean 
canLosslessConvertToLowScaleLiteral(DateTimeV2Literal literal, int targetScale) 
{
+        return literal.getMicroSecond() % (1L << (DateTimeV2Type.MAX_SCALE - 
targetScale)) == 0;
+    }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
index b9cdd7eced..ffefc3e55c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
@@ -19,6 +19,8 @@ package org.apache.doris.nereids.trees.expressions.literal;
 
 import org.apache.doris.nereids.types.DataType;
 
+import java.util.Objects;
+
 /** StringLikeLiteral. */
 public abstract class StringLikeLiteral extends Literal {
     public final String value;
@@ -44,6 +46,23 @@ public abstract class StringLikeLiteral extends Literal {
         return (double) v;
     }
 
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof StringLikeLiteral)) {
+            return false;
+        }
+        StringLikeLiteral that = (StringLikeLiteral) o;
+        return Objects.equals(value, that.value);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
+    }
+
     @Override
     public String toString() {
         return "'" + value + "'";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/CharType.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/CharType.java
index f9ce7d2ea0..15ed345a33 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/CharType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/CharType.java
@@ -51,11 +51,6 @@ public class CharType extends CharacterType {
         return ScalarType.createChar(len);
     }
 
-    @Override
-    public boolean acceptsType(DataType other) {
-        return other instanceof CharType;
-    }
-
     @Override
     public String simpleString() {
         return "char";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StringType.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StringType.java
index 5dad1f5dc5..9e13096385 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StringType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StringType.java
@@ -41,11 +41,6 @@ public class StringType extends CharacterType {
         return Type.STRING;
     }
 
-    @Override
-    public boolean acceptsType(DataType other) {
-        return other instanceof StringType || other instanceof VarcharType;
-    }
-
     @Override
     public String simpleString() {
         return "string";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VarcharType.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VarcharType.java
index 89e044847d..0bf0cf4f3d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VarcharType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VarcharType.java
@@ -54,11 +54,6 @@ public class VarcharType extends CharacterType {
         return catalogDataType;
     }
 
-    @Override
-    public boolean acceptsType(DataType other) {
-        return other instanceof VarcharType || other instanceof StringType;
-    }
-
     @Override
     public String simpleString() {
         return "varchar";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
index 6743d11c3c..34dacb4034 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java
@@ -339,8 +339,7 @@ public class TypeCoercionUtils {
         if (input.isNullLiteral()) {
             return new NullLiteral(targetType);
         } else if (input.getDataType().equals(targetType) || 
isSubqueryAndDataTypeIsBitmap(input)
-                || (isVarCharOrStringType(input.getDataType())
-                        && isVarCharOrStringType(targetType))) {
+                || (input.getDataType().isStringLikeType()) && 
targetType.isStringLikeType()) {
             return input;
         } else {
             checkCanCastTo(input.getDataType(), targetType);
@@ -352,10 +351,6 @@ public class TypeCoercionUtils {
         return input instanceof SubqueryExpr && 
input.getDataType().isBitmapType();
     }
 
-    private static boolean isVarCharOrStringType(DataType dataType) {
-        return dataType instanceof VarcharType || dataType instanceof 
StringType;
-    }
-
     private static boolean canCastTo(DataType input, DataType target) {
         return Type.canCastTo(input.toCatalogDataType(), 
target.toCatalogDataType());
     }
@@ -857,7 +852,7 @@ public class TypeCoercionUtils {
         return optionalCommonType
                 .map(commonType -> {
                     List<Expression> newChildren = 
inPredicate.children().stream()
-                            .map(e -> TypeCoercionUtils.castIfNotMatchType(e, 
commonType))
+                            .map(e -> TypeCoercionUtils.castIfNotSameType(e, 
commonType))
                             .collect(Collectors.toList());
                     return inPredicate.withChildren(newChildren);
                 })
@@ -886,7 +881,7 @@ public class TypeCoercionUtils {
                     List<Expression> newChildren
                             = caseWhen.getWhenClauses().stream()
                             .map(wc -> {
-                                Expression valueExpr = 
TypeCoercionUtils.castIfNotMatchType(
+                                Expression valueExpr = 
TypeCoercionUtils.castIfNotSameType(
                                         wc.getResult(), commonType);
                                 // we must cast every child to the common 
type, and then
                                 // FoldConstantRuleOnFe can eliminate some 
branches and direct
@@ -899,7 +894,7 @@ public class TypeCoercionUtils {
                             .collect(Collectors.toList());
                     caseWhen.getDefaultValue()
                             .map(dv -> {
-                                Expression defaultExpr = 
TypeCoercionUtils.castIfNotMatchType(dv, commonType);
+                                Expression defaultExpr = 
TypeCoercionUtils.castIfNotSameType(dv, commonType);
                                 if 
(!defaultExpr.getDataType().equals(commonType)) {
                                     defaultExpr = new Cast(defaultExpr, 
commonType);
                                 }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/ssb/SSBJoinReorderTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/ssb/SSBJoinReorderTest.java
index 49c3636a4f..ca0c49d6d7 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/ssb/SSBJoinReorderTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/ssb/SSBJoinReorderTest.java
@@ -39,7 +39,7 @@ public class SSBJoinReorderTest extends SSBTestBase 
implements MemoPatternMatchS
                 ImmutableList.of(
                         "(c_region = 'AMERICA')",
                         "(s_region = 'AMERICA')",
-                        "p_mfgr IN ('MFGR#2', 'MFGR#1')"
+                        "p_mfgr IN ('MFGR#1', 'MFGR#2')"
                 )
         );
     }
@@ -58,7 +58,7 @@ public class SSBJoinReorderTest extends SSBTestBase 
implements MemoPatternMatchS
                         "d_year IN (1997, 1998)",
                         "(c_region = 'AMERICA')",
                         "(s_region = 'AMERICA')",
-                        "p_mfgr IN ('MFGR#2', 'MFGR#1')"
+                        "p_mfgr IN ('MFGR#1', 'MFGR#2')"
                 )
         );
     }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/SimplifyInPredicateTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/SimplifyInPredicateTest.java
index 01502bac52..87c57889b2 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/SimplifyInPredicateTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/SimplifyInPredicateTest.java
@@ -39,7 +39,11 @@ public class SimplifyInPredicateTest extends 
ExpressionRewriteTestHelper {
         ));
         Map<String, Slot> mem = Maps.newHashMap();
         Expression rewrittenExpression = PARSER.parseExpression("cast(CA as 
DATETIME) in ('1992-01-31 00:00:00', '1992-02-01 00:00:00')");
+        // after parse and type coercion: CAST(CAST(CA AS DATETIMEV2(0)) AS 
DATETIMEV2(6)) IN ('1992-01-31 00:00:00.000000', '1992-02-01 00:00:00.000000')
         rewrittenExpression = 
typeCoercion(replaceUnboundSlot(rewrittenExpression, mem));
+        // after first rewrite: CAST(CA AS DATETIMEV2(0)) IN ('1992-01-31 
00:00:00', '1992-02-01 00:00:00')
+        rewrittenExpression = executor.rewrite(rewrittenExpression, context);
+        // after second rewrite: CA IN ('1992-01-31', '1992-02-01')
         rewrittenExpression = executor.rewrite(rewrittenExpression, context);
         Expression expectedExpression = PARSER.parseExpression("CA in 
(cast('1992-01-31' as date), cast('1992-02-01' as date))");
         expectedExpression = replaceUnboundSlot(expectedExpression, mem);
@@ -47,7 +51,6 @@ public class SimplifyInPredicateTest extends 
ExpressionRewriteTestHelper {
                 FoldConstantRule.INSTANCE
         ));
         expectedExpression = executor.rewrite(expectedExpression, context);
-        Assertions.assertEquals(expectedExpression.toSql(), 
rewrittenExpression.toSql());
+        Assertions.assertEquals(expectedExpression, rewrittenExpression);
     }
-
 }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/types/DataTypeTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/types/DataTypeTest.java
index c4b4d4d989..c0dfe19d04 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/types/DataTypeTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/types/DataTypeTest.java
@@ -453,8 +453,8 @@ public class DataTypeTest {
         int scale = Math.min(precision, Math.abs(new Random().nextInt() % 
DecimalV2Type.MAX_SCALE));
         
Assertions.assertFalse(dataType.acceptsType(DecimalV2Type.createDecimalV2Type(precision,
 scale)));
         Assertions.assertTrue(dataType.acceptsType(new CharType(new 
Random().nextInt())));
-        Assertions.assertFalse(dataType.acceptsType(new VarcharType(new 
Random().nextInt())));
-        Assertions.assertFalse(dataType.acceptsType(StringType.INSTANCE));
+        Assertions.assertTrue(dataType.acceptsType(new VarcharType(new 
Random().nextInt())));
+        Assertions.assertTrue(dataType.acceptsType(StringType.INSTANCE));
         Assertions.assertFalse(dataType.acceptsType(DateType.INSTANCE));
         Assertions.assertFalse(dataType.acceptsType(DateTimeType.INSTANCE));
     }
@@ -474,7 +474,7 @@ public class DataTypeTest {
         int precision = Math.abs(new Random().nextInt() % 
(DecimalV2Type.MAX_PRECISION - 1)) + 1;
         int scale = Math.min(precision, Math.abs(new Random().nextInt() % 
DecimalV2Type.MAX_SCALE));
         
Assertions.assertFalse(dataType.acceptsType(DecimalV2Type.createDecimalV2Type(precision,
 scale)));
-        Assertions.assertFalse(dataType.acceptsType(new CharType(new 
Random().nextInt())));
+        Assertions.assertTrue(dataType.acceptsType(new CharType(new 
Random().nextInt())));
         Assertions.assertTrue(dataType.acceptsType(new VarcharType(new 
Random().nextInt())));
         Assertions.assertTrue(dataType.acceptsType(StringType.INSTANCE));
         Assertions.assertFalse(dataType.acceptsType(DateType.INSTANCE));
@@ -496,7 +496,7 @@ public class DataTypeTest {
         int precision = Math.abs(new Random().nextInt() % 
(DecimalV2Type.MAX_PRECISION - 1)) + 1;
         int scale = Math.min(precision, Math.abs(new Random().nextInt() % 
DecimalV2Type.MAX_SCALE));
         
Assertions.assertFalse(dataType.acceptsType(DecimalV2Type.createDecimalV2Type(precision,
 scale)));
-        Assertions.assertFalse(dataType.acceptsType(new CharType(new 
Random().nextInt())));
+        Assertions.assertTrue(dataType.acceptsType(new CharType(new 
Random().nextInt())));
         Assertions.assertTrue(dataType.acceptsType(new VarcharType(new 
Random().nextInt())));
         Assertions.assertTrue(dataType.acceptsType(StringType.INSTANCE));
         Assertions.assertFalse(dataType.acceptsType(DateType.INSTANCE));
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
index fe9d6b5363..0740403373 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/TypeCoercionUtilsTest.java
@@ -23,9 +23,12 @@ import org.apache.doris.nereids.trees.expressions.Divide;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.Multiply;
 import org.apache.doris.nereids.trees.expressions.Subtract;
+import org.apache.doris.nereids.trees.expressions.literal.CharLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.DecimalLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.DecimalV3Literal;
 import org.apache.doris.nereids.trees.expressions.literal.DoubleLiteral;
+import org.apache.doris.nereids.trees.expressions.literal.StringLiteral;
+import org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral;
 import org.apache.doris.nereids.types.ArrayType;
 import org.apache.doris.nereids.types.BigIntType;
 import org.apache.doris.nereids.types.BitmapType;
@@ -692,9 +695,18 @@ public class TypeCoercionUtilsTest {
     @Test
     public void testCastIfNotSameType() {
         Assertions.assertEquals(new DoubleLiteral(5L),
-                TypeCoercionUtils.castIfNotMatchType(new DoubleLiteral(5L), 
DoubleType.INSTANCE));
+                TypeCoercionUtils.castIfNotSameType(new DoubleLiteral(5L), 
DoubleType.INSTANCE));
         Assertions.assertEquals(new Cast(new DoubleLiteral(5L), 
BooleanType.INSTANCE),
-                TypeCoercionUtils.castIfNotMatchType(new DoubleLiteral(5L), 
BooleanType.INSTANCE));
+                TypeCoercionUtils.castIfNotSameType(new DoubleLiteral(5L), 
BooleanType.INSTANCE));
+        Assertions.assertEquals(new StringLiteral("varchar"),
+                TypeCoercionUtils.castIfNotSameType(new 
VarcharLiteral("varchar"), StringType.INSTANCE));
+        Assertions.assertEquals(new StringLiteral("char"),
+                TypeCoercionUtils.castIfNotSameType(new CharLiteral("char", 
4), StringType.INSTANCE));
+        Assertions.assertEquals(new CharLiteral("char", 4),
+                TypeCoercionUtils.castIfNotSameType(new CharLiteral("char", 
4), VarcharType.createVarcharType(100)));
+        Assertions.assertEquals(new StringLiteral("string"),
+                TypeCoercionUtils.castIfNotSameType(new 
StringLiteral("string"), VarcharType.createVarcharType(100)));
+
     }
 
     @Test
diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out 
b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out
index 3ddb20d9c5..b6af716127 100644
--- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out
+++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out
@@ -27,7 +27,7 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[customer]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------filter(p_mfgr IN ('MFGR#2', 'MFGR#1'))
+------------------------filter(p_mfgr IN ('MFGR#1', 'MFGR#2'))
 --------------------------PhysicalOlapScan[part]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out 
b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out
index 53be0d703d..8a50b45af6 100644
--- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out
+++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out
@@ -32,6 +32,6 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------filter(p_mfgr IN ('MFGR#2', 'MFGR#1'))
+----------------------filter(p_mfgr IN ('MFGR#1', 'MFGR#2'))
 ------------------------PhysicalOlapScan[part]
 
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
index 0aa36ae310..ff3e90c124 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
@@ -30,7 +30,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter((cast(s_state as VARCHAR(*)) = 'SD'))
+--------------------------filter((store.s_state = 'SD'))
 ----------------------------PhysicalOlapScan[store]
 ------------------hashAgg[GLOBAL]
 --------------------PhysicalDistribute
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
index adcacd12f7..441b39ce61 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
@@ -16,9 +16,9 @@ PhysicalResultSink
 --------------------PhysicalOlapScan[store]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN](customer_demographics.cd_demo_sk = 
store_sales.ss_cdemo_sk)((((((cast(cd_marital_status as VARCHAR(*)) = 'D') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Unknown')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) AND (household_demographics.hd_dep_count = 3)) OR 
((((cast(cd_marital_status as VARCHAR(*)) = 'S') AND (cast(cd_education_status 
as VARCHAR(*)) = 'College')) AND ((store_sales.ss_sales_price  [...]
+----------------------hashJoin[INNER_JOIN](customer_demographics.cd_demo_sk = 
store_sales.ss_cdemo_sk)((((((customer_demographics.cd_marital_status = 'D') 
AND (customer_demographics.cd_education_status = 'Unknown')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) AND (household_demographics.hd_dep_count = 3)) OR 
((((customer_demographics.cd_marital_status = 'S') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sale [...]
 ------------------------PhysicalProject
---------------------------filter(((((cast(cd_marital_status as VARCHAR(*)) = 
'D') AND (cast(cd_education_status as VARCHAR(*)) = 'Unknown')) OR 
((cast(cd_marital_status as VARCHAR(*)) = 'S') AND (cast(cd_education_status as 
VARCHAR(*)) = 'College'))) OR ((cast(cd_marital_status as VARCHAR(*)) = 'M') 
AND (cast(cd_education_status as VARCHAR(*)) = '4 yr Degree'))))
+--------------------------filter(((((customer_demographics.cd_marital_status = 
'D') AND (customer_demographics.cd_education_status = 'Unknown')) OR 
((customer_demographics.cd_marital_status = 'S') AND 
(customer_demographics.cd_education_status = 'College'))) OR 
((customer_demographics.cd_marital_status = 'M') AND 
(customer_demographics.cd_education_status = '4 yr Degree'))))
 ----------------------------PhysicalOlapScan[customer_demographics]
 ------------------------PhysicalDistribute
 --------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk = 
household_demographics.hd_demo_sk)
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out
index 7167ef0b0c..1a6709b3b5 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out
@@ -25,7 +25,7 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[catalog_sales]
 ------------------------------PhysicalDistribute
 --------------------------------PhysicalProject
-----------------------------------filter((cast(ca_state as VARCHAR(*)) = 'WV'))
+----------------------------------filter((customer_address.ca_state = 'WV'))
 ------------------------------------PhysicalOlapScan[customer_address]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
index dddca95770..b238c38de0 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
@@ -31,7 +31,7 @@ PhysicalResultSink
 ----------------------------------------------PhysicalOlapScan[store_sales]
 --------------------------------------------PhysicalDistribute
 ----------------------------------------------PhysicalProject
-------------------------------------------------filter((cast(d_quarter_name as 
VARCHAR(*)) = '2001Q1'))
+------------------------------------------------filter((d1.d_quarter_name = 
'2001Q1'))
 --------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------------------------PhysicalDistribute
 ----------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
index 9ab6b66e70..b136f2c263 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
@@ -33,7 +33,7 @@ PhysicalResultSink
 
--------------------------------------------------PhysicalOlapScan[catalog_sales]
 ------------------------------------------------PhysicalDistribute
 --------------------------------------------------PhysicalProject
-----------------------------------------------------filter((cast(cd_gender as 
VARCHAR(*)) = 'F')(cast(cd_education_status as VARCHAR(*)) = 'Advanced Degree'))
+----------------------------------------------------filter((cd1.cd_education_status
 = 'Advanced Degree')(cd1.cd_gender = 'F'))
 
------------------------------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------------------------PhysicalDistribute
 ----------------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out
index a0c2e48384..0a0601bc0f 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out
@@ -45,7 +45,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------hashAgg[LOCAL]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------filter((cast(i_color as VARCHAR(*)) = 'beige'))
+------------------------filter((ssales.i_color = 'beige'))
 --------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 --------------PhysicalDistribute
 ----------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out
index cdffd94d10..04a98730cf 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out
@@ -18,7 +18,7 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[catalog_sales]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter((cast(cd_education_status as 
VARCHAR(*)) = 'Unknown')(cast(cd_gender as VARCHAR(*)) = 
'M')(cast(cd_marital_status as VARCHAR(*)) = 'S'))
+--------------------------------filter((customer_demographics.cd_gender = 
'M')(customer_demographics.cd_marital_status = 
'S')(customer_demographics.cd_education_status = 'Unknown'))
 ----------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
@@ -26,7 +26,7 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[date_dim]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((cast(p_channel_email as VARCHAR(*)) = 'N') 
OR (cast(p_channel_event as VARCHAR(*)) = 'N')))
+--------------------------filter(((promotion.p_channel_email = 'N') OR 
(promotion.p_channel_event = 'N')))
 ----------------------------PhysicalOlapScan[promotion]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
index 81fad1aff1..00cb9a5188 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
@@ -21,7 +21,7 @@ PhysicalResultSink
 ------------------------------------PhysicalOlapScan[store_sales]
 ----------------------------------PhysicalDistribute
 ------------------------------------PhysicalProject
---------------------------------------filter((cast(cd_gender as VARCHAR(*)) = 
'F')(cast(cd_education_status as VARCHAR(*)) = 
'Secondary')(cast(cd_marital_status as VARCHAR(*)) = 'D'))
+--------------------------------------filter((customer_demographics.cd_education_status
 = 'Secondary')(customer_demographics.cd_marital_status = 
'D')(customer_demographics.cd_gender = 'F'))
 ----------------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------------PhysicalDistribute
 ----------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
index acc9901970..55de401bc4 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
@@ -35,7 +35,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------PhysicalOlapScan[customer]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter((cast(ca_state as VARCHAR(*)) = 'IN'))
+--------------------------filter((customer_address.ca_state = 'IN'))
 ----------------------------PhysicalOlapScan[customer_address]
 --------------PhysicalDistribute
 ----------------hashAgg[GLOBAL]
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out
index 4779144765..504194d074 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out
@@ -25,7 +25,7 @@ PhysicalResultSink
 ------------------------------------PhysicalOlapScan[date_dim]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter(((cast(hd_buy_potential as VARCHAR(*)) 
= '1001-5000') OR (cast(hd_buy_potential as VARCHAR(*)) = 
'0-500'))(household_demographics.hd_vehicle_count > 0)(if((hd_vehicle_count > 
0), (cast(hd_dep_count as DOUBLE) / cast(hd_vehicle_count as DOUBLE)), NULL) > 
1.2))
+--------------------------------filter(hd_buy_potential IN ('1001-5000', 
'0-500')(household_demographics.hd_vehicle_count > 0)(if((hd_vehicle_count > 
0), (cast(hd_dep_count as DOUBLE) / cast(hd_vehicle_count as DOUBLE)), NULL) > 
1.2))
 ----------------------------------PhysicalOlapScan[household_demographics]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out
index 640b557743..a784f31be9 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out
@@ -84,7 +84,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter((t_c_secyear.sale_type = 
'c')(t_c_secyear.dyear = 2000))
+--------------------------filter((t_c_secyear.dyear = 
2000)(t_c_secyear.sale_type = 'c'))
 ----------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ------------------PhysicalDistribute
 --------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out
index 964e2d8aec..d60ffc8481 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out
@@ -19,6 +19,6 @@ PhysicalResultSink
 --------------------------PhysicalDistribute
 ----------------------------hashAgg[LOCAL]
 ------------------------------PhysicalProject
---------------------------------filter((((((((((((cast(i_category as 
VARCHAR(*)) = 'Women') AND ((cast(i_color as VARCHAR(*)) = 'gainsboro') OR 
(cast(i_color as VARCHAR(*)) = 'aquamarine'))) AND ((cast(i_units as 
VARCHAR(*)) = 'Ounce') OR (cast(i_units as VARCHAR(*)) = 'Dozen'))) AND 
((cast(i_size as VARCHAR(*)) = 'medium') OR (cast(i_size as VARCHAR(*)) = 
'economy'))) OR ((((cast(i_category as VARCHAR(*)) = 'Women') AND 
((cast(i_color as VARCHAR(*)) = 'chiffon') OR (cast(i_color as VARC [...]
+--------------------------------filter((((((((((((item.i_category = 'Women') 
AND i_color IN ('aquamarine', 'gainsboro')) AND i_units IN ('Dozen', 'Ounce')) 
AND i_size IN ('economy', 'medium')) OR ((((item.i_category = 'Women') AND 
i_color IN ('violet', 'chiffon')) AND i_units IN ('Pound', 'Ton')) AND i_size 
IN ('small', 'extra large'))) OR ((((item.i_category = 'Women') AND i_color IN 
('tomato', 'blanched')) AND i_units IN ('Case', 'Tbl')) AND i_size IN 
('economy', 'medium'))) OR ((((ite [...]
 ----------------------------------PhysicalOlapScan[item]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out
index cc6e4167ae..9d1b357509 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out
@@ -11,7 +11,7 @@ PhysicalResultSink
 ----------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk = 
date_dim.d_date_sk)
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN](customer_demographics.cd_demo_sk = 
store_sales.ss_cdemo_sk)(((((cast(cd_marital_status as VARCHAR(*)) = 'U') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Primary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((cast(cd_marital_status as VARCHAR(*)) = 'W') AND 
(cast(cd_education_status as VARCHAR(*)) = 'College')) AND 
((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100. 
[...]
+----------------------hashJoin[INNER_JOIN](customer_demographics.cd_demo_sk = 
store_sales.ss_cdemo_sk)(((((customer_demographics.cd_marital_status = 'U') AND 
(customer_demographics.cd_education_status = 'Primary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price [...]
 ------------------------PhysicalDistribute
 --------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk = 
customer_address.ca_address_sk)(((ca_state IN ('MD', 'MN', 'IA') AND 
((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 
2000.00))) OR (ca_state IN ('VA', 'IL', 'TX') AND ((store_sales.ss_net_profit 
>= 150.00) AND (store_sales.ss_net_profit <= 3000.00)))) OR (ca_state IN ('MI', 
'WI', 'IN') AND ((store_sales.ss_net_profit >= 50.00) AND 
(store_sales.ss_net_profit <= 25000.00))))
 ----------------------------PhysicalProject
@@ -23,7 +23,7 @@ PhysicalResultSink
 ----------------------------------PhysicalOlapScan[customer_address]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------filter(((((cast(cd_marital_status as VARCHAR(*)) = 
'U') AND (cast(cd_education_status as VARCHAR(*)) = 'Primary')) OR 
((cast(cd_marital_status as VARCHAR(*)) = 'W') AND (cast(cd_education_status as 
VARCHAR(*)) = 'College'))) OR ((cast(cd_marital_status as VARCHAR(*)) = 'D') 
AND (cast(cd_education_status as VARCHAR(*)) = '2 yr Degree'))))
+----------------------------filter(((((customer_demographics.cd_marital_status 
= 'U') AND (customer_demographics.cd_education_status = 'Primary')) OR 
((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'College'))) OR 
((customer_demographics.cd_marital_status = 'D') AND 
(customer_demographics.cd_education_status = '2 yr Degree'))))
 ------------------------------PhysicalOlapScan[customer_demographics]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out
index 2d9cb0d75d..f12974631c 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out
@@ -52,7 +52,7 @@ PhysicalResultSink
 
--------------------------------------------------------------------------------PhysicalOlapScan[web_sales]
 
--------------------------------------------------------------------------PhysicalDistribute
 
----------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------filter((cast(i_class
 as VARCHAR(*)) = 'maternity')(cast(i_category as VARCHAR(*)) = 'Women'))
+------------------------------------------------------------------------------filter((item.i_class
 = 'maternity')(item.i_category = 'Women'))
 
--------------------------------------------------------------------------------PhysicalOlapScan[item]
 
----------------------------------------------------------------------PhysicalDistribute
 
------------------------------------------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out
index 69f00c102e..e557ed58f5 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out
@@ -11,7 +11,7 @@ PhysicalResultSink
 ----------------PhysicalProject
 ------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = item.i_item_sk)
 --------------------PhysicalProject
-----------------------filter((cast(i_category as VARCHAR(*)) = 'Jewelry'))
+----------------------filter((item.i_category = 'Jewelry'))
 ------------------------PhysicalOlapScan[item]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
@@ -40,7 +40,7 @@ PhysicalResultSink
 ----------------------------------------------------PhysicalOlapScan[store]
 ------------------------------------------PhysicalDistribute
 --------------------------------------------PhysicalProject
-----------------------------------------------filter((((cast(p_channel_dmail 
as VARCHAR(*)) = 'Y') OR (cast(p_channel_email as VARCHAR(*)) = 'Y')) OR 
(cast(p_channel_tv as VARCHAR(*)) = 'Y')))
+----------------------------------------------filter((((promotion.p_channel_dmail
 = 'Y') OR (promotion.p_channel_email = 'Y')) OR (promotion.p_channel_tv = 
'Y')))
 ------------------------------------------------PhysicalOlapScan[promotion]
 --------------------------------------PhysicalDistribute
 ----------------------------------------PhysicalProject
@@ -53,7 +53,7 @@ PhysicalResultSink
 ------------------PhysicalProject
 --------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
item.i_item_sk)
 ----------------------PhysicalProject
-------------------------filter((cast(i_category as VARCHAR(*)) = 'Jewelry'))
+------------------------filter((item.i_category = 'Jewelry'))
 --------------------------PhysicalOlapScan[item]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
index 5748363347..279d017840 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
@@ -18,7 +18,7 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[store_sales]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter((cast(cd_marital_status as VARCHAR(*)) 
= 'W')(cast(cd_education_status as VARCHAR(*)) = 'College')(cast(cd_gender as 
VARCHAR(*)) = 'F'))
+--------------------------------filter((customer_demographics.cd_gender = 
'F')(customer_demographics.cd_marital_status = 
'W')(customer_demographics.cd_education_status = 'College'))
 ----------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
@@ -26,7 +26,7 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[date_dim]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((cast(p_channel_email as VARCHAR(*)) = 'N') 
OR (cast(p_channel_event as VARCHAR(*)) = 'N')))
+--------------------------filter(((promotion.p_channel_email = 'N') OR 
(promotion.p_channel_event = 'N')))
 ----------------------------PhysicalOlapScan[promotion]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out
index 512604bb57..4c1c5b51b7 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out
@@ -47,6 +47,6 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[item]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------filter(((cast(t_meal_time as VARCHAR(*)) = 'breakfast') 
OR (cast(t_meal_time as VARCHAR(*)) = 'dinner')))
+----------------------filter(t_meal_time IN ('breakfast', 'dinner'))
 ------------------------PhysicalOlapScan[time_dim]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out
index 08b478c499..04dc3a44d6 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out
@@ -37,7 +37,7 @@ PhysicalResultSink
 
------------------------------------------------------------PhysicalOlapScan[catalog_sales]
 ----------------------------------------------------------PhysicalDistribute
 ------------------------------------------------------------PhysicalProject
---------------------------------------------------------------filter((cast(hd_buy_potential
 as VARCHAR(*)) = '501-1000'))
+--------------------------------------------------------------filter((household_demographics.hd_buy_potential
 = '501-1000'))
 
----------------------------------------------------------------PhysicalOlapScan[household_demographics]
 --------------------------------------------------------PhysicalDistribute
 ----------------------------------------------------------PhysicalProject
@@ -45,7 +45,7 @@ PhysicalResultSink
 
--------------------------------------------------------------PhysicalOlapScan[date_dim]
 ----------------------------------------------------PhysicalDistribute
 ------------------------------------------------------PhysicalProject
---------------------------------------------------------filter((cast(cd_marital_status
 as VARCHAR(*)) = 'W'))
+--------------------------------------------------------filter((customer_demographics.cd_marital_status
 = 'W'))
 
----------------------------------------------------------PhysicalOlapScan[customer_demographics]
 ------------------------------------------------PhysicalDistribute
 --------------------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out
index 534e5f4477..0b350fd501 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out
@@ -25,7 +25,7 @@ PhysicalResultSink
 ------------------------------------PhysicalOlapScan[date_dim]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter(((cast(hd_buy_potential as VARCHAR(*)) 
= '501-1000') OR (cast(hd_buy_potential as VARCHAR(*)) = 
'Unknown'))(household_demographics.hd_vehicle_count > 0)(if((hd_vehicle_count > 
0), (cast(hd_dep_count as DOUBLE) / cast(hd_vehicle_count as DOUBLE)), NULL) > 
1))
+--------------------------------filter(hd_buy_potential IN ('501-1000', 
'Unknown')(household_demographics.hd_vehicle_count > 0)(if((hd_vehicle_count > 
0), (cast(hd_dep_count as DOUBLE) / cast(hd_vehicle_count as DOUBLE)), NULL) > 
1))
 ----------------------------------PhysicalOlapScan[household_demographics]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out
index 50de18777c..96fe757f6e 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out
@@ -19,7 +19,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----------------------------PhysicalOlapScan[catalog_sales]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter((cast(i_category as VARCHAR(*)) = 'Home'))
+------------------------------filter((item.i_category = 'Home'))
 --------------------------------PhysicalOlapScan[item]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
@@ -37,7 +37,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----------------------------PhysicalOlapScan[store_sales]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter((cast(i_category as VARCHAR(*)) = 'Home'))
+------------------------------filter((item.i_category = 'Home'))
 --------------------------------PhysicalOlapScan[item]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
@@ -55,7 +55,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----------------------------PhysicalOlapScan[web_sales]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter((cast(i_category as VARCHAR(*)) = 'Home'))
+------------------------------filter((item.i_category = 'Home'))
 --------------------------------PhysicalOlapScan[item]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out
index 2c6d8aff03..8b1e9d5c7b 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out
@@ -40,6 +40,6 @@ PhysicalResultSink
 ------------------------------------------PhysicalOlapScan[customer_address]
 ----------------------------------------PhysicalDistribute
 ------------------------------------------PhysicalProject
---------------------------------------------filter((cast(c_preferred_cust_flag 
as VARCHAR(*)) = 'Y'))
+--------------------------------------------filter((customer.c_preferred_cust_flag
 = 'Y'))
 ----------------------------------------------PhysicalOlapScan[customer]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out
index f639427dcb..9c9f5b4ffe 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out
@@ -29,7 +29,7 @@ PhysicalResultSink
 ----------------------------------------filter((item.i_current_price > 50.00))
 ------------------------------------------PhysicalOlapScan[item]
 ------------------------------------PhysicalDistribute
---------------------------------------filter((cast(p_channel_tv as VARCHAR(*)) 
= 'N'))
+--------------------------------------filter((promotion.p_channel_tv = 'N'))
 ----------------------------------------PhysicalOlapScan[promotion]
 ----------------------------------PhysicalDistribute
 ------------------------------------PhysicalProject
@@ -53,7 +53,7 @@ PhysicalResultSink
 ----------------------------------------filter((item.i_current_price > 50.00))
 ------------------------------------------PhysicalOlapScan[item]
 ------------------------------------PhysicalDistribute
---------------------------------------filter((cast(p_channel_tv as VARCHAR(*)) 
= 'N'))
+--------------------------------------filter((promotion.p_channel_tv = 'N'))
 ----------------------------------------PhysicalOlapScan[promotion]
 ----------------------------------PhysicalDistribute
 ------------------------------------PhysicalProject
@@ -76,7 +76,7 @@ PhysicalResultSink
 ----------------------------------------------filter((date_dim.d_date >= 
1998-08-28)(date_dim.d_date <= 1998-09-27))
 ------------------------------------------------PhysicalOlapScan[date_dim]
 ------------------------------------------PhysicalDistribute
---------------------------------------------filter((cast(p_channel_tv as 
VARCHAR(*)) = 'N'))
+--------------------------------------------filter((promotion.p_channel_tv = 
'N'))
 ----------------------------------------------PhysicalOlapScan[promotion]
 --------------------------------------PhysicalDistribute
 ----------------------------------------filter((item.i_current_price > 50.00))
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out
index bfcec6ce41..121a01f32e 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out
@@ -35,7 +35,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------PhysicalOlapScan[customer]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter((cast(ca_state as VARCHAR(*)) = 'CA'))
+--------------------------filter((customer_address.ca_state = 'CA'))
 ----------------------------PhysicalOlapScan[customer_address]
 --------------PhysicalDistribute
 ----------------hashAgg[GLOBAL]
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out
index f51819a367..24ab560b06 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out
@@ -24,9 +24,9 @@ PhysicalResultSink
 ----------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------------PhysicalDistribute
 ----------------------------------PhysicalProject
-------------------------------------hashJoin[INNER_JOIN](cd1.cd_demo_sk = 
web_returns.wr_refunded_cdemo_sk)(((((cast(cd_marital_status as VARCHAR(*)) = 
'M') AND (cast(cd_education_status as VARCHAR(*)) = '4 yr Degree')) AND 
((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 
150.00))) OR (((cast(cd_marital_status as VARCHAR(*)) = 'S') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Secondary')) AND 
((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 1 [...]
+------------------------------------hashJoin[INNER_JOIN](cd1.cd_demo_sk = 
web_returns.wr_refunded_cdemo_sk)(((((cd1.cd_marital_status = 'M') AND 
(cd1.cd_education_status = '4 yr Degree')) AND ((web_sales.ws_sales_price >= 
100.00) AND (web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status 
= 'S') AND (cd1.cd_education_status = 'Secondary')) AND 
((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 
100.00)))) OR (((cd1.cd_marital_status = 'W') AND (cd1.cd_educati [...]
 --------------------------------------PhysicalProject
-----------------------------------------filter(((((cast(cd_marital_status as 
VARCHAR(*)) = 'M') AND (cast(cd_education_status as VARCHAR(*)) = '4 yr 
Degree')) OR ((cast(cd_marital_status as VARCHAR(*)) = 'S') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Secondary'))) OR 
((cast(cd_marital_status as VARCHAR(*)) = 'W') AND (cast(cd_education_status as 
VARCHAR(*)) = 'Advanced Degree'))))
+----------------------------------------filter(((((cd1.cd_marital_status = 
'M') AND (cd1.cd_education_status = '4 yr Degree')) OR ((cd1.cd_marital_status 
= 'S') AND (cd1.cd_education_status = 'Secondary'))) OR ((cd1.cd_marital_status 
= 'W') AND (cd1.cd_education_status = 'Advanced Degree'))))
 
------------------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------------------PhysicalDistribute
 
----------------------------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk
 = web_returns.wr_refunded_addr_sk)(((ca_state IN ('FL', 'TX', 'DE') AND 
((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) 
OR (ca_state IN ('IN', 'ND', 'ID') AND ((web_sales.ws_net_profit >= 150.00) AND 
(web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('MT', 'IL', 'OH') AND 
((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
index 1e3674e053..ecb3ba35ac 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
@@ -18,7 +18,7 @@ PhysicalResultSink
 ------------------------hashJoin[INNER_JOIN](customer_demographics.cd_demo_sk 
= customer.c_current_cdemo_sk)
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter((((cast(cd_marital_status as VARCHAR(*)) 
= 'M') AND (cast(cd_education_status as VARCHAR(*)) = 'Unknown')) OR 
((cast(cd_marital_status as VARCHAR(*)) = 'W') AND (cast(cd_education_status as 
VARCHAR(*)) = 'Advanced Degree'))))
+------------------------------filter((((customer_demographics.cd_marital_status
 = 'M') AND (customer_demographics.cd_education_status = 'Unknown')) OR 
((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'Advanced Degree'))))
 --------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------PhysicalDistribute
 
----------------------------hashJoin[INNER_JOIN](household_demographics.hd_demo_sk
 = customer.c_current_hdemo_sk)
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out
index 0ead46c8d7..cc6eba640d 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out
@@ -16,6 +16,6 @@ PhysicalResultSink
 ----------------------PhysicalOlapScan[store_returns]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------filter((cast(r_reason_desc as VARCHAR(*)) = 'duplicate 
purchase'))
+------------------------filter((reason.r_reason_desc = 'duplicate purchase'))
 --------------------------PhysicalOlapScan[reason]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out
index 970cc6eb7c..5fb17f0be1 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out
@@ -25,7 +25,7 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[web_sales]
 ------------------------------PhysicalDistribute
 --------------------------------PhysicalProject
-----------------------------------filter((cast(ca_state as VARCHAR(*)) = 'OK'))
+----------------------------------filter((customer_address.ca_state = 'OK'))
 ------------------------------------PhysicalOlapScan[customer_address]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
@@ -33,6 +33,6 @@ PhysicalResultSink
 ----------------------------------PhysicalOlapScan[date_dim]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter((cast(web_company_name as VARCHAR(*)) = 
'pri'))
+------------------------------filter((web_site.web_company_name = 'pri'))
 --------------------------------PhysicalOlapScan[web_site]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out
index f4b0cac339..9d14722937 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out
@@ -40,7 +40,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----------------------------------PhysicalOlapScan[web_sales]
 --------------------------------PhysicalDistribute
 ----------------------------------PhysicalProject
-------------------------------------filter((cast(ca_state as VARCHAR(*)) = 
'NC'))
+------------------------------------filter((customer_address.ca_state = 'NC'))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalDistribute
 --------------------------------PhysicalProject
@@ -48,6 +48,6 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------------------PhysicalOlapScan[date_dim]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter((cast(web_company_name as VARCHAR(*)) = 
'pri'))
+--------------------------------filter((web_site.web_company_name = 'pri'))
 ----------------------------------PhysicalOlapScan[web_site]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out
index 44f7c223f1..a5bc461b44 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out
@@ -11,6 +11,6 @@ PhysicalResultSink
 ----------------PhysicalOlapScan[lineitem]
 ------------PhysicalDistribute
 --------------PhysicalProject
-----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM 
CASE', 'SM BOX', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR 
(((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED 
PKG', 'MED PACK')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') 
AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')) AND (part.p_size 
<= 15)))(part.p_size >= 1))
+----------------filter((part.p_size >= 1)(((((part.p_brand = 'Brand#12') AND 
p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')) AND (part.p_size <= 
5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 
'MED PKG', 'MED PACK')) AND (part.p_size <= 10))) OR (((part.p_brand = 
'Brand#34') AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')) AND 
(part.p_size <= 15))))
 ------------------PhysicalOlapScan[part]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q19.out 
b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q19.out
index 44f7c223f1..a5bc461b44 100644
--- a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q19.out
+++ b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q19.out
@@ -11,6 +11,6 @@ PhysicalResultSink
 ----------------PhysicalOlapScan[lineitem]
 ------------PhysicalDistribute
 --------------PhysicalProject
-----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM 
CASE', 'SM BOX', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR 
(((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED 
PKG', 'MED PACK')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') 
AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')) AND (part.p_size 
<= 15)))(part.p_size >= 1))
+----------------filter((part.p_size >= 1)(((((part.p_brand = 'Brand#12') AND 
p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')) AND (part.p_size <= 
5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 
'MED PKG', 'MED PACK')) AND (part.p_size <= 10))) OR (((part.p_brand = 
'Brand#34') AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')) AND 
(part.p_size <= 15))))
 ------------------PhysicalOlapScan[part]
 
diff --git a/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy 
b/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy
index f4bac3d2b6..6d8f4f6029 100644
--- a/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy
+++ b/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy
@@ -72,7 +72,7 @@ suite("bucket-shuffle-join") {
     explain {
         sql("select * from shuffle_join_t1 t1 left join shuffle_join_t2 t2 on 
t1.a = t2.c;")
         contains "BUCKET_SHUFFLE"
-        contains "BUCKET_SHFFULE_HASH_PARTITIONED: expr_cast(c as VARCHAR(*))"
+        contains "BUCKET_SHFFULE_HASH_PARTITIONED: c"
     }
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to