From 0f116ce148e070c21cd608d7485bd7d50c789fe5 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Thu, 20 Jul 2023 11:32:54 +0800 Subject: [PATCH] Revert "[Enhancement](Nereids)enable nereids DML by default. (#21539)" (#22013) This reverts commit f668b3965effbd5df4902f20b496cb6b6642414c. --- .../main/java/org/apache/doris/catalog/AggStateType.java | 7 +++---- .../src/main/java/org/apache/doris/analysis/CastExpr.java | 2 +- .../doris/nereids/rules/expression/check/CheckCast.java | 3 --- .../java/org/apache/doris/nereids/types/AggStateType.java | 7 ------- .../src/main/java/org/apache/doris/qe/SessionVariable.java | 2 +- .../agg_state/nereids/test_agg_state_nereids.groovy | 7 +------ .../suites/nereids_p0/delete/delete_using.groovy | 1 + .../suites/nereids_p0/insert_into_table/aggregate.groovy | 2 ++ .../nereids_p0/insert_into_table/complex_insert.groovy | 2 ++ .../suites/nereids_p0/insert_into_table/duplicate.groovy | 2 ++ .../nereids_p0/insert_into_table/no_partition.groovy | 2 ++ .../insert_into_table/type_cast_aggregate.groovy | 2 ++ .../insert_into_table/type_cast_duplicate.groovy | 2 ++ .../nereids_p0/insert_into_table/type_cast_unique.groovy | 2 ++ .../suites/nereids_p0/insert_into_table/unique.groovy | 2 ++ .../nereids_p0/insert_into_table/unsupport_type.groovy | 2 ++ .../suites/nereids_p0/update/update_unique_table.groovy | 1 + 17 files changed, 26 insertions(+), 22 deletions(-) diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java index 6369e717f8..47477a08f8 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java @@ -111,13 +111,12 @@ public class AggStateType extends ScalarType { return false; } AggStateType other = (AggStateType) o; - // compare with the basic type. - if (other.subTypes == null) { - return true; - } if ((subTypes == null) != (other.getSubTypes() == null)) { return false; } + if (subTypes == null) { + return true; + } int subTypeNumber = subTypeNullables.size(); if (subTypeNumber != other.subTypeNullables.size()) { return false; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java index e16460ee54..6ceb8e3d84 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java @@ -147,7 +147,7 @@ public class CastExpr extends Expr { Type to = getActualType(type); NullableMode nullableMode = TYPE_NULLABLE_MODE.get(Pair.of(from, to)); Preconditions.checkState(nullableMode != null, - "cannot find nullable mode for cast from " + from + " to " + to); + "cannot find nullable node for cast from " + from + " to " + to); fn = new Function(new FunctionName(getFnName(type)), Lists.newArrayList(e.type), type, false, true, nullableMode); } else { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/check/CheckCast.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/check/CheckCast.java index e375c86c06..361b5f38f5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/check/CheckCast.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/check/CheckCast.java @@ -22,7 +22,6 @@ import org.apache.doris.nereids.rules.expression.AbstractExpressionRewriteRule; import org.apache.doris.nereids.rules.expression.ExpressionRewriteContext; import org.apache.doris.nereids.trees.expressions.Cast; import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.types.AggStateType; import org.apache.doris.nereids.types.ArrayType; import org.apache.doris.nereids.types.DataType; @@ -47,8 +46,6 @@ public class CheckCast extends AbstractExpressionRewriteRule { private boolean check(DataType originalType, DataType targetType) { if (originalType.isArrayType() && targetType.isArrayType()) { return check(((ArrayType) originalType).getItemType(), ((ArrayType) targetType).getItemType()); - } else if (originalType.isAggStateType() && targetType.isAggStateType()) { - return AggStateType.canCastTo(((AggStateType) originalType), ((AggStateType) targetType)); } else if (originalType.isMapType()) { // TODO support map cast check when we support map return false; diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/AggStateType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/AggStateType.java index 54e5e23eb3..a999512d1b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/AggStateType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/AggStateType.java @@ -67,13 +67,6 @@ public class AggStateType extends DataType { return result; } - /** - * check the left agg state type can be cast to the right. - */ - public static boolean canCastTo(AggStateType lhs, AggStateType rhs) { - throw new UnsupportedOperationException("currently cast for agg_state type is unsupported"); - } - @Override public Type toCatalogDataType() { List types = subTypes.stream().map(t -> t.toCatalogDataType()).collect(Collectors.toList()); diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index fb3eb8c62a..fab0da3b09 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -615,7 +615,7 @@ public class SessionVariable implements Serializable, Writable { public boolean extractWideRangeExpr = true; @VariableMgr.VarAttr(name = ENABLE_NEREIDS_DML) - public boolean enableNereidsDML = true; + public boolean enableNereidsDML = false; @VariableMgr.VarAttr(name = ENABLE_VECTORIZED_ENGINE, expType = ExperimentalType.EXPERIMENTAL_ONLINE) public boolean enableVectorizedEngine = true; diff --git a/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy b/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy index 450dbcab77..b31070b01c 100644 --- a/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy +++ b/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy @@ -55,20 +55,15 @@ suite("test_agg_state_nereids") { properties("replication_num" = "1"); """ - // fall back to original planner because cast for agg state in Nereids is unsupported yet. - sql "set enable_fallback_to_original_planner=true" sql "insert into a_table select 1,max_by_state(1,3);" sql "insert into a_table select 1,max_by_state(2,2);" sql "insert into a_table select 1,max_by_state(3,1);" - sql "set enable_fallback_to_original_planner=false" qt_length1 """select k1,length(k2) from a_table order by k1;""" qt_group1 """select k1,max_by_merge(k2) from a_table group by k1 order by k1;""" qt_merge1 """select max_by_merge(k2) from a_table;""" - - sql "set enable_fallback_to_original_planner=true" + sql "insert into a_table select k1+1, max_by_state(k2,k1+10) from d_table;" - sql "set enable_fallback_to_original_planner=false" qt_length2 """select k1,length(k2) from a_table order by k1;""" qt_group2 """select k1,max_by_merge(k2) from a_table group by k1 order by k1;""" diff --git a/regression-test/suites/nereids_p0/delete/delete_using.groovy b/regression-test/suites/nereids_p0/delete/delete_using.groovy index e92478075f..ff1b1e0336 100644 --- a/regression-test/suites/nereids_p0/delete/delete_using.groovy +++ b/regression-test/suites/nereids_p0/delete/delete_using.groovy @@ -18,6 +18,7 @@ suite('nereids_delete_using') { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' sql 'insert into t1(id, c1, c2, c3) select id, c1 * 2, c2, c3 from t1' sql 'insert into t2(id, c1, c2, c3) select id, c1, c2 * 2, c3 from t2' diff --git a/regression-test/suites/nereids_p0/insert_into_table/aggregate.groovy b/regression-test/suites/nereids_p0/insert_into_table/aggregate.groovy index 36797e00bc..9665e5520d 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/aggregate.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/aggregate.groovy @@ -21,6 +21,8 @@ suite("nereids_insert_aggregate") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into nereids_insert_into_table_test.agg_t select * except(kaint) from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/complex_insert.groovy b/regression-test/suites/nereids_p0/insert_into_table/complex_insert.groovy index 4977587f03..458ae6cb3f 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/complex_insert.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/complex_insert.groovy @@ -20,6 +20,8 @@ import org.codehaus.groovy.runtime.IOGroovyMethods suite('complex_insert') { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql 'use nereids_insert_into_table_test' diff --git a/regression-test/suites/nereids_p0/insert_into_table/duplicate.groovy b/regression-test/suites/nereids_p0/insert_into_table/duplicate.groovy index 67ea0cc7f0..167952190c 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/duplicate.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/duplicate.groovy @@ -21,6 +21,8 @@ suite("nereids_insert_duplicate") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into dup_t select * except(kaint) from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/no_partition.groovy b/regression-test/suites/nereids_p0/insert_into_table/no_partition.groovy index 73b85c787a..e7d5873d36 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/no_partition.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/no_partition.groovy @@ -21,6 +21,8 @@ suite('nereids_insert_no_partition') { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into agg_nop_t select * except(kaint) from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/type_cast_aggregate.groovy b/regression-test/suites/nereids_p0/insert_into_table/type_cast_aggregate.groovy index 34dc2dc8da..b5ac0ba12f 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/type_cast_aggregate.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/type_cast_aggregate.groovy @@ -21,6 +21,8 @@ suite("nereids_insert_aggregate_type_cast") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into agg_t_type_cast select id, ktint, ksint, kint, kbint, kdtv2, kdtm, kdbl from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/type_cast_duplicate.groovy b/regression-test/suites/nereids_p0/insert_into_table/type_cast_duplicate.groovy index e39ed5de3a..3124c7570b 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/type_cast_duplicate.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/type_cast_duplicate.groovy @@ -21,6 +21,8 @@ suite("nereids_insert_duplicate") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into dup_t_type_cast select id, ktint, ksint, kint, kbint, kdtv2, kdtm, kdbl from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/type_cast_unique.groovy b/regression-test/suites/nereids_p0/insert_into_table/type_cast_unique.groovy index d091c843c0..a0edf47b46 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/type_cast_unique.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/type_cast_unique.groovy @@ -21,6 +21,8 @@ suite("nereids_insert_unique_type_cast") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into uni_t_type_cast select id, ktint, ksint, kint, kbint, kdtv2, kdtm, kdbl from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/unique.groovy b/regression-test/suites/nereids_p0/insert_into_table/unique.groovy index 0f9ade6cac..f79332709a 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/unique.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/unique.groovy @@ -21,6 +21,8 @@ suite("nereids_insert_unique") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' sql '''insert into uni_t select * except(kaint) from src''' diff --git a/regression-test/suites/nereids_p0/insert_into_table/unsupport_type.groovy b/regression-test/suites/nereids_p0/insert_into_table/unsupport_type.groovy index 392cb0e82b..75bc38f594 100644 --- a/regression-test/suites/nereids_p0/insert_into_table/unsupport_type.groovy +++ b/regression-test/suites/nereids_p0/insert_into_table/unsupport_type.groovy @@ -20,6 +20,8 @@ suite("nereids_insert_array_type") { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' + sql 'set parallel_fragment_exec_instance_num=13' test { sql 'insert into arr_t select id, kaint from src' diff --git a/regression-test/suites/nereids_p0/update/update_unique_table.groovy b/regression-test/suites/nereids_p0/update/update_unique_table.groovy index 70149a80f3..358a3bb9cf 100644 --- a/regression-test/suites/nereids_p0/update/update_unique_table.groovy +++ b/regression-test/suites/nereids_p0/update/update_unique_table.groovy @@ -18,6 +18,7 @@ suite('update_unique_table') { sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' + sql 'set enable_nereids_dml=true' sql 'update t1 set c1 = 5 where id = 3'