From d25277f12dd0671098fd64bf70fb3ada9c359ab2 Mon Sep 17 00:00:00 2001 From: seawinde <149132972+seawinde@users.noreply.github.com> Date: Wed, 12 Jun 2024 12:03:05 +0800 Subject: [PATCH 1/3] [opt](mtmv) Set query rewrite by materialized view default enable (#35897) Set query rewrite by materialized view default enable As before, if want to use query reweirte by async materialized view, must run: SET enable_materialized_view_rewrite=true After this, not need --- .../java/org/apache/doris/catalog/Env.java | 5 ++ .../mv/AbstractMaterializedViewRule.java | 8 -- .../mv/InitMaterializationContextHook.java | 53 ++++++----- .../org/apache/doris/qe/SessionVariable.java | 8 +- .../hypergraph/CompareOuterJoinTest.java | 1 + .../rules/rewrite/SimplifyAggGroupByTest.java | 19 ++-- .../mv/partition_mv_rewrite.out | 64 -------------- .../aggregate_with_roll_up.groovy | 3 - .../aggregate_without_roll_up.groovy | 4 - .../mv/availability/grace_period.groovy | 3 - .../materialized_view_switch.groovy | 3 - .../mv/dimension/dimension_1.groovy | 3 - .../mv/dimension/dimension_2_3.groovy | 3 - .../mv/dimension/dimension_2_4.groovy | 3 - .../mv/dimension/dimension_2_5.groovy | 3 - .../mv/dimension/dimension_2_6.groovy | 3 - .../mv/dimension/dimension_2_full_join.groovy | 3 - .../dimension/dimension_2_inner_join.groovy | 3 - .../dimension_2_left_anti_join.groovy | 3 - .../mv/dimension/dimension_2_left_join.groovy | 3 - .../dimension_2_left_semi_join.groovy | 3 - .../dimension_2_right_anti_join.groovy | 3 - .../dimension/dimension_2_right_join.groovy | 3 - .../dimension_2_right_semi_join.groovy | 3 - .../mv/dimension/dimension_self_conn.groovy | 3 - .../dimension_2_join_agg.groovy | 3 - .../filter_equal_or_notequal.groovy | 3 - .../join/dphyp_inner/inner_join_dphyp.groovy | 3 - .../join/dphyp_outer/outer_join_dphyp.groovy | 3 - .../mv/join/inner/inner_join.groovy | 3 - .../mv/join/left_outer/outer_join.groovy | 3 - .../mv/negative/negative_test.groovy | 3 - .../mv/nested/nested_materialized_view.groovy | 3 - .../mv/partition_mv_rewrite.groovy | 88 ------------------- .../mv/scan/scan_table.groovy | 3 - .../mv/ssb/mv_ssb_test.groovy | 3 - .../mv/tpch/mv_tpch_test.groovy | 3 - .../partition_curd_union_rewrite.groovy | 3 - .../usercase_union_rewrite.groovy | 4 - 39 files changed, 55 insertions(+), 286 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java index dabe2131c88fbc..ff2af9adfec9e6 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java @@ -1550,6 +1550,11 @@ private void transferToMaster() { SessionVariable.NEREIDS_TIMEOUT_SECOND, "30"); } } + if (journalVersion <= FeMetaVersion.VERSION_133) { + VariableMgr.refreshDefaultSessionVariables("2.0 to 2.1", + SessionVariable.ENABLE_MATERIALIZED_VIEW_REWRITE, + "true"); + } } getPolicyMgr().createDefaultStoragePolicy(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/AbstractMaterializedViewRule.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/AbstractMaterializedViewRule.java index d7d6a634f7a4ce..32d42b420f76ae 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/AbstractMaterializedViewRule.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/AbstractMaterializedViewRule.java @@ -279,14 +279,6 @@ protected List doRewrite(StructInfo queryStructInfo, CascadesContext casca boolean partitionNeedUnion = needUnionRewrite(invalidPartitions, cascadesContext); final Pair>, Map>> finalInvalidPartitions = invalidPartitions; - if (partitionNeedUnion && !sessionVariable.isEnableMaterializedViewUnionRewrite()) { - // if use invalid partition but not enable union rewrite - materializationContext.recordFailReason(queryStructInfo, - "Partition query used is invalid", - () -> String.format("the partition used by query is invalid by materialized view," - + "invalid partition info query used is %s", finalInvalidPartitions)); - continue; - } if (partitionNeedUnion) { MTMV mtmv = ((AsyncMaterializationContext) materializationContext).getMtmv(); Plan originPlanWithFilter = StructInfo.addFilterOnTableScan(queryPlan, invalidPartitions.value(), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/InitMaterializationContextHook.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/InitMaterializationContextHook.java index 077262f0356e66..5d9f6f85689c83 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/InitMaterializationContextHook.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/InitMaterializationContextHook.java @@ -20,7 +20,6 @@ import org.apache.doris.catalog.Env; import org.apache.doris.catalog.MTMV; import org.apache.doris.catalog.TableIf; -import org.apache.doris.common.AnalysisException; import org.apache.doris.mtmv.BaseTableInfo; import org.apache.doris.mtmv.MTMVCache; import org.apache.doris.nereids.CascadesContext; @@ -62,12 +61,18 @@ public void initMaterializationContext(CascadesContext cascadesContext) { if (!cascadesContext.getConnectContext().getSessionVariable().isEnableMaterializedViewRewrite()) { return; } - Plan rewritePlan = cascadesContext.getRewritePlan(); TableCollectorContext collectorContext = new TableCollectorContext(Sets.newHashSet(), true); - // Keep use one connection context when in query, if new connect context, - // the ConnectionContext.get() will change - collectorContext.setConnectContext(cascadesContext.getConnectContext()); - rewritePlan.accept(TableCollector.INSTANCE, collectorContext); + try { + Plan rewritePlan = cascadesContext.getRewritePlan(); + // Keep use one connection context when in query, if new connect context, + // the ConnectionContext.get() will change + collectorContext.setConnectContext(cascadesContext.getConnectContext()); + rewritePlan.accept(TableCollector.INSTANCE, collectorContext); + } catch (Exception e) { + LOG.warn(String.format("MaterializationContext init table collect fail, current queryId is %s", + cascadesContext.getConnectContext().getQueryIdentifier()), e); + return; + } Set collectedTables = collectorContext.getCollectedTables(); if (collectedTables.isEmpty()) { return; @@ -77,30 +82,32 @@ public void initMaterializationContext(CascadesContext cascadesContext) { Set availableMTMVs = Env.getCurrentEnv().getMtmvService().getRelationManager() .getAvailableMTMVs(usedBaseTables, cascadesContext.getConnectContext()); if (availableMTMVs.isEmpty()) { - LOG.warn(String.format("enable materialized view rewrite but availableMTMVs is empty, current queryId " - + "is %s", cascadesContext.getConnectContext().getQueryIdentifier())); + LOG.debug(String.format("Enable materialized view rewrite but availableMTMVs is empty, current queryId " + + "is %s", cascadesContext.getConnectContext().getQueryIdentifier())); return; } for (MTMV materializedView : availableMTMVs) { MTMVCache mtmvCache = null; try { mtmvCache = materializedView.getOrGenerateCache(cascadesContext.getConnectContext()); - } catch (AnalysisException e) { - LOG.warn("MaterializationContext init mv cache generate fail", e); - } - if (mtmvCache == null) { - continue; + if (mtmvCache == null) { + continue; + } + // For async materialization context, the cascades context when construct the struct info maybe + // different from the current cascadesContext + // so regenerate the struct info table bitset + StructInfo mvStructInfo = mtmvCache.getStructInfo(); + BitSet tableBitSetInCurrentCascadesContext = new BitSet(); + mvStructInfo.getRelations().forEach(relation -> tableBitSetInCurrentCascadesContext.set( + cascadesContext.getStatementContext().getTableId(relation.getTable()).asInt())); + cascadesContext.addMaterializationContext(new AsyncMaterializationContext(materializedView, + mtmvCache.getLogicalPlan(), mtmvCache.getOriginalPlan(), ImmutableList.of(), + ImmutableList.of(), cascadesContext, + mtmvCache.getStructInfo().withTableBitSet(tableBitSetInCurrentCascadesContext))); + } catch (Exception e) { + LOG.warn(String.format("MaterializationContext init mv cache generate fail, current queryId is %s", + cascadesContext.getConnectContext().getQueryIdentifier()), e); } - // For async materialization context, the cascades context when construct the struct info maybe - // different from the current cascadesContext - // so regenerate the struct info table bitset - StructInfo mvStructInfo = mtmvCache.getStructInfo(); - BitSet tableBitSetInCurrentCascadesContext = new BitSet(); - mvStructInfo.getRelations().forEach(relation -> tableBitSetInCurrentCascadesContext.set( - cascadesContext.getStatementContext().getTableId(relation.getTable()).asInt())); - cascadesContext.addMaterializationContext(new AsyncMaterializationContext(materializedView, - mtmvCache.getLogicalPlan(), mtmvCache.getOriginalPlan(), ImmutableList.of(), ImmutableList.of(), - cascadesContext, mtmvCache.getStructInfo().withTableBitSet(tableBitSetInCurrentCascadesContext))); } } } 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 d7e5b3a740b000..dfba92093868a9 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 @@ -1709,7 +1709,7 @@ public void setEnableLeftZigZag(boolean enableLeftZigZag) { @VariableMgr.VarAttr(name = ENABLE_MATERIALIZED_VIEW_REWRITE, needForward = true, description = {"是否开启基于结构信息的物化视图透明改写", "Whether to enable materialized view rewriting based on struct info"}) - public boolean enableMaterializedViewRewrite = false; + public boolean enableMaterializedViewRewrite = true; @VariableMgr.VarAttr(name = ALLOW_MODIFY_MATERIALIZED_VIEW_DATA, needForward = true, description = {"是否允许修改物化视图的数据", @@ -1736,7 +1736,7 @@ public void setEnableLeftZigZag(boolean enableLeftZigZag) { description = {"当物化视图不足以提供查询的全部数据时,是否允许基表和物化视图 union 来响应查询", "When the materialized view is not enough to provide all the data for the query, " + "whether to allow the union of the base table and the materialized view to " - + "respond to the query"}) + + "respond to the query"}, varType = VariableAnnotation.REMOVED) public boolean enableMaterializedViewUnionRewrite = true; @VariableMgr.VarAttr(name = ENABLE_MATERIALIZED_VIEW_NEST_REWRITE, needForward = true, @@ -3849,6 +3849,10 @@ public void setEnableMaterializedViewRewrite(boolean enableMaterializedViewRewri this.enableMaterializedViewRewrite = enableMaterializedViewRewrite; } + public void setEnableMaterializedViewRewrite(boolean enableMaterializedViewRewrite) { + this.enableMaterializedViewRewrite = enableMaterializedViewRewrite; + } + public boolean isAllowModifyMaterializedViewData() { return allowModifyMaterializedViewData; } diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/hypergraph/CompareOuterJoinTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/hypergraph/CompareOuterJoinTest.java index 490090a43fbc60..4465fadbbeaebd 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/hypergraph/CompareOuterJoinTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/hypergraph/CompareOuterJoinTest.java @@ -68,6 +68,7 @@ void testStarGraphWithInnerJoin() { @Test void testRandomQuery() { connectContext.getSessionVariable().setDisableNereidsRules("PRUNE_EMPTY_PARTITION"); + connectContext.getSessionVariable().setEnableMaterializedViewRewrite(false); Plan p1 = new HyperGraphBuilder(Sets.newHashSet(JoinType.INNER_JOIN)) .randomBuildPlanWith(3, 3); PlanChecker planChecker = PlanChecker.from(connectContext, p1) diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/SimplifyAggGroupByTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/SimplifyAggGroupByTest.java index 7a6998df151b7f..34c3b012e76a3b 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/SimplifyAggGroupByTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/SimplifyAggGroupByTest.java @@ -32,6 +32,7 @@ import org.apache.doris.nereids.util.MemoTestUtils; import org.apache.doris.nereids.util.PlanChecker; import org.apache.doris.nereids.util.PlanConstructor; +import org.apache.doris.qe.ConnectContext; import com.google.common.collect.ImmutableList; import org.junit.jupiter.api.Test; @@ -60,12 +61,14 @@ void test() { LogicalPlan agg = new LogicalPlanBuilder(scan1) .agg(groupBy, output) .build(); - PlanChecker.from(MemoTestUtils.createConnectContext(), agg) + ConnectContext connectContext = MemoTestUtils.createConnectContext(); + connectContext.getSessionVariable().setEnableMaterializedViewRewrite(false); + PlanChecker.from(connectContext, agg) .applyTopDown(new SimplifyAggGroupBy()) .matchesFromRoot( logicalAggregate().when(a -> a.getGroupByExpressions().size() == 1) ); - PlanChecker.from(MemoTestUtils.createConnectContext(), agg) + PlanChecker.from(connectContext, agg) .analyze() .matchesFromRoot( logicalProject(logicalAggregate().when(a -> a.getGroupByExpressions().size() == 1)) @@ -87,12 +90,14 @@ void testSqrt() { LogicalPlan agg = new LogicalPlanBuilder(scan1) .agg(groupBy, output) .build(); - PlanChecker.from(MemoTestUtils.createConnectContext(), agg) + ConnectContext connectContext = MemoTestUtils.createConnectContext(); + connectContext.getSessionVariable().setEnableMaterializedViewRewrite(false); + PlanChecker.from(connectContext, agg) .applyTopDown(new SimplifyAggGroupBy()) .matchesFromRoot( logicalAggregate().when(a -> a.equals(agg)) ); - PlanChecker.from(MemoTestUtils.createConnectContext(), agg) + PlanChecker.from(connectContext, agg) .analyze() .matchesFromRoot( logicalProject(logicalAggregate().when(a -> a.getGroupByExpressions().size() == 2)) @@ -114,12 +119,14 @@ void testAbs() { LogicalPlan agg = new LogicalPlanBuilder(scan1) .agg(groupBy, output) .build(); - PlanChecker.from(MemoTestUtils.createConnectContext(), agg) + ConnectContext connectContext = MemoTestUtils.createConnectContext(); + connectContext.getSessionVariable().setEnableMaterializedViewRewrite(false); + PlanChecker.from(connectContext, agg) .applyTopDown(new SimplifyAggGroupBy()) .matchesFromRoot( logicalAggregate().when(a -> a.equals(agg)) ); - PlanChecker.from(MemoTestUtils.createConnectContext(), agg) + PlanChecker.from(connectContext, agg) .analyze() .matchesFromRoot( logicalProject(logicalAggregate().when(a -> a.getGroupByExpressions().size() == 2)) diff --git a/regression-test/data/nereids_rules_p0/mv/partition_mv_rewrite.out b/regression-test/data/nereids_rules_p0/mv/partition_mv_rewrite.out index f998aaf593f2ef..1aec66cf42f557 100644 --- a/regression-test/data/nereids_rules_p0/mv/partition_mv_rewrite.out +++ b/regression-test/data/nereids_rules_p0/mv/partition_mv_rewrite.out @@ -1,22 +1,4 @@ -- This file is automatically generated. You should know what you did if you want to edit this --- !query_1_0_before -- -2023-10-17 2023-10-17 2 3 199.00 -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - --- !query_1_0_after -- -2023-10-17 2023-10-17 2 3 199.00 -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - --- !query_2_0_before -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - --- !query_2_0_after -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - -- !query_3_0_before -- 2023-10-17 2023-10-17 2 3 199.00 2023-10-18 2023-10-18 2 3 109.20 @@ -35,26 +17,6 @@ 2023-10-18 2023-10-18 2 3 109.20 2023-10-19 2023-10-19 2 3 99.50 --- !query_5_0_before -- -2023-10-17 2023-10-17 2 3 199.00 -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 -2023-10-21 \N 2 3 \N - --- !query_5_0_after -- -2023-10-17 2023-10-17 2 3 199.00 -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 -2023-10-21 \N 2 3 \N - --- !query_6_0_before -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - --- !query_6_0_after -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - -- !query_7_0_before -- 2023-10-17 2023-10-17 2 3 199.00 2023-10-18 2023-10-18 2 3 109.20 @@ -75,24 +37,6 @@ 2023-10-18 2023-10-18 2 3 109.20 2023-10-19 2023-10-19 2 3 99.50 --- !query_9_0_before -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 -2023-10-21 \N 2 3 \N - --- !query_9_0_after -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 -2023-10-21 \N 2 3 \N - --- !query_10_0_before -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - --- !query_10_0_after -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - -- !query_11_0_before -- 2023-10-18 2023-10-18 2 3 109.20 2023-10-19 2023-10-19 2 3 99.50 @@ -111,14 +55,6 @@ 2023-10-18 2023-10-18 2 3 109.20 2023-10-19 2023-10-19 2 3 99.50 --- !query_14_0_before -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - --- !query_14_0_after -- -2023-10-18 2023-10-18 2 3 109.20 -2023-10-19 2023-10-19 2 3 99.50 - -- !query_16_0_before -- 2023-10-18 2023-10-18 2 3 109.20 2023-10-19 2023-10-19 2 3 99.50 diff --git a/regression-test/suites/nereids_rules_p0/mv/agg_with_roll_up/aggregate_with_roll_up.groovy b/regression-test/suites/nereids_rules_p0/mv/agg_with_roll_up/aggregate_with_roll_up.groovy index ac1e806bd51224..87c582f80c8d84 100644 --- a/regression-test/suites/nereids_rules_p0/mv/agg_with_roll_up/aggregate_with_roll_up.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/agg_with_roll_up/aggregate_with_roll_up.groovy @@ -18,11 +18,8 @@ suite("aggregate_with_roll_up") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/agg_without_roll_up/aggregate_without_roll_up.groovy b/regression-test/suites/nereids_rules_p0/mv/agg_without_roll_up/aggregate_without_roll_up.groovy index b0e82c73d5f449..72a6144bcdaf92 100644 --- a/regression-test/suites/nereids_rules_p0/mv/agg_without_roll_up/aggregate_without_roll_up.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/agg_without_roll_up/aggregate_without_roll_up.groovy @@ -18,12 +18,8 @@ suite("aggregate_without_roll_up") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" - sql "SET enable_nereids_timeout = false" sql "SET enable_agg_state = true" sql """ diff --git a/regression-test/suites/nereids_rules_p0/mv/availability/grace_period.groovy b/regression-test/suites/nereids_rules_p0/mv/availability/grace_period.groovy index c40997f89897a1..f4cfbdc4d9a6d4 100644 --- a/regression-test/suites/nereids_rules_p0/mv/availability/grace_period.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/availability/grace_period.groovy @@ -23,10 +23,7 @@ suite("grace_period") { // if update will not be used to query rewrite String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_partition diff --git a/regression-test/suites/nereids_rules_p0/mv/availability/materialized_view_switch.groovy b/regression-test/suites/nereids_rules_p0/mv/availability/materialized_view_switch.groovy index b4ae8b7bfc544f..4a9784ed04b985 100644 --- a/regression-test/suites/nereids_rules_p0/mv/availability/materialized_view_switch.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/availability/materialized_view_switch.groovy @@ -19,11 +19,8 @@ suite("materialized_view_switch") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_1.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_1.groovy index e7f4f92cd06786..9b5aa76b5baa2b 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_1.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_1.groovy @@ -21,9 +21,6 @@ This suite is a one dimensional test case file. suite("partition_mv_rewrite_dimension_1") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_1 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_3.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_3.groovy index d261e7c4160a81..91b50ecd0d2078 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_3.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_3.groovy @@ -22,9 +22,6 @@ It mainly tests the agg function, etc suite("partition_mv_rewrite_dimension_2_3") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_3 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_4.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_4.groovy index 5215ab75d20be4..9535fc2e4ad4a5 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_4.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_4.groovy @@ -22,9 +22,6 @@ It mainly tests the query partial, view partial, union rewriting, predicate comp suite("partition_mv_rewrite_dimension_2_4") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_4 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_5.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_5.groovy index e392a5178011c6..6f5d4ce42ccb51 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_5.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_5.groovy @@ -22,9 +22,6 @@ It mainly tests the query partial, view partial, union rewriting, predicate comp suite("partition_mv_rewrite_dimension_2_5") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_5 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_6.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_6.groovy index 12c7a23448b374..39c3d13e09b900 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_6.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_6.groovy @@ -22,9 +22,6 @@ It mainly tests the query partial, view partial, union rewriting, predicate comp suite("partition_mv_rewrite_dimension_2_6") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_6 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_full_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_full_join.groovy index a4572bb5e99f96..e38ef749ea8ed6 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_full_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_full_join.groovy @@ -22,9 +22,6 @@ It mainly tests the full join and filter positions. suite("partition_mv_rewrite_dimension_2_full_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_full_join diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_inner_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_inner_join.groovy index 97dcdc279e3264..932f36f9c78bbd 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_inner_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_inner_join.groovy @@ -22,9 +22,6 @@ It mainly tests the inner join and filter positions. suite("partition_mv_rewrite_dimension_2_2") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_2 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_anti_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_anti_join.groovy index f62d24db6a4227..14daf54727d103 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_anti_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_anti_join.groovy @@ -22,9 +22,6 @@ It mainly tests the left anti join and filter positions. suite("partition_mv_rewrite_dimension_2_left_anti_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_left_anti_join diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_join.groovy index d5be7599d222ca..043625335dfaa4 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_join.groovy @@ -22,9 +22,6 @@ It mainly tests the left join and filter positions. suite("partition_mv_rewrite_dimension_2_1") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_1 diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_semi_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_semi_join.groovy index bb7841297e02ec..e5bb974a5b133a 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_semi_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_left_semi_join.groovy @@ -22,9 +22,6 @@ It mainly tests the left semi join and filter positions. suite("partition_mv_rewrite_dimension_2_left_semi_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_left_semi_join diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_anti_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_anti_join.groovy index 2b60e58927c780..957a1b45a080e5 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_anti_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_anti_join.groovy @@ -22,9 +22,6 @@ It mainly tests the right anti join and filter positions. suite("partition_mv_rewrite_dimension_2_right_anti_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_right_anti_join diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_join.groovy index ab12b4eb8c7a7d..83c41fd0fd4ff2 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_join.groovy @@ -22,9 +22,6 @@ It mainly tests the right join and filter positions. suite("partition_mv_rewrite_dimension_2_right_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_right_join diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_semi_join.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_semi_join.groovy index 0d2a199356c8ed..c1307667685fdc 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_semi_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_2_right_semi_join.groovy @@ -22,9 +22,6 @@ It mainly tests the right semi join and filter positions. suite("partition_mv_rewrite_dimension_2_right_semi_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_2_right_semi_join diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_self_conn.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_self_conn.groovy index 4812c98a4a3532..8db90bc40ebaa3 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_self_conn.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension/dimension_self_conn.groovy @@ -21,9 +21,6 @@ This suite test self connection case suite("partition_mv_rewrite_dimension_self_conn") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_self_conn diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension_2_join_agg/dimension_2_join_agg.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension_2_join_agg/dimension_2_join_agg.groovy index f1916220984e7b..4d28ea5f3edd1e 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension_2_join_agg/dimension_2_join_agg.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension_2_join_agg/dimension_2_join_agg.groovy @@ -21,9 +21,6 @@ This file is used specifically to test the presence of AGGs under joins. suite("dimension_2_join_agg_replenish") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/dimension_equal/filter_equal_or_notequal.groovy b/regression-test/suites/nereids_rules_p0/mv/dimension_equal/filter_equal_or_notequal.groovy index bddf6c22d3ba4b..fed1ec06ed7e42 100644 --- a/regression-test/suites/nereids_rules_p0/mv/dimension_equal/filter_equal_or_notequal.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/dimension_equal/filter_equal_or_notequal.groovy @@ -19,9 +19,6 @@ suite("filter_equal_or_notequal_case") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_1 diff --git a/regression-test/suites/nereids_rules_p0/mv/join/dphyp_inner/inner_join_dphyp.groovy b/regression-test/suites/nereids_rules_p0/mv/join/dphyp_inner/inner_join_dphyp.groovy index 2c3eb9fe3dd641..75b5276e442747 100644 --- a/regression-test/suites/nereids_rules_p0/mv/join/dphyp_inner/inner_join_dphyp.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/join/dphyp_inner/inner_join_dphyp.groovy @@ -18,10 +18,7 @@ suite("inner_join_dphyp") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql "SET enable_dphyp_optimizer = true" sql """ diff --git a/regression-test/suites/nereids_rules_p0/mv/join/dphyp_outer/outer_join_dphyp.groovy b/regression-test/suites/nereids_rules_p0/mv/join/dphyp_outer/outer_join_dphyp.groovy index d56888e53a0637..048d802e274b68 100644 --- a/regression-test/suites/nereids_rules_p0/mv/join/dphyp_outer/outer_join_dphyp.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/join/dphyp_outer/outer_join_dphyp.groovy @@ -18,11 +18,8 @@ suite("outer_join_dphyp") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql "SET enable_dphyp_optimizer = true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/join/inner/inner_join.groovy b/regression-test/suites/nereids_rules_p0/mv/join/inner/inner_join.groovy index 29392c4f5aa287..6a990b67b72cd0 100644 --- a/regression-test/suites/nereids_rules_p0/mv/join/inner/inner_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/join/inner/inner_join.groovy @@ -18,10 +18,7 @@ suite("inner_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/join/left_outer/outer_join.groovy b/regression-test/suites/nereids_rules_p0/mv/join/left_outer/outer_join.groovy index 0b48642097d8cc..68e323f1eb9af0 100644 --- a/regression-test/suites/nereids_rules_p0/mv/join/left_outer/outer_join.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/join/left_outer/outer_join.groovy @@ -18,11 +18,8 @@ suite("outer_join") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/negative/negative_test.groovy b/regression-test/suites/nereids_rules_p0/mv/negative/negative_test.groovy index 4b60ee60ccd3ed..c8ef5729d4b704 100644 --- a/regression-test/suites/nereids_rules_p0/mv/negative/negative_test.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/negative/negative_test.groovy @@ -21,9 +21,6 @@ This suite is a one dimensional test case file. suite("negative_partition_mv_rewrite") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_1 diff --git a/regression-test/suites/nereids_rules_p0/mv/nested/nested_materialized_view.groovy b/regression-test/suites/nereids_rules_p0/mv/nested/nested_materialized_view.groovy index 235c6a246cf125..6219cc7313d79e 100644 --- a/regression-test/suites/nereids_rules_p0/mv/nested/nested_materialized_view.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/nested/nested_materialized_view.groovy @@ -98,10 +98,7 @@ suite("nested_materialized_view") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql "SET enable_materialized_view_nest_rewrite = true" def create_mtmv = { db_name, mv_name, mv_sql -> diff --git a/regression-test/suites/nereids_rules_p0/mv/partition_mv_rewrite.groovy b/regression-test/suites/nereids_rules_p0/mv/partition_mv_rewrite.groovy index ec3d2912df96b4..198d98086660e8 100644 --- a/regression-test/suites/nereids_rules_p0/mv/partition_mv_rewrite.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/partition_mv_rewrite.groovy @@ -20,10 +20,7 @@ import java.text.SimpleDateFormat suite("partition_mv_rewrite") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders @@ -167,29 +164,7 @@ suite("partition_mv_rewrite") { """ waitingPartitionIsExpected("${mv_name}", "p_20231017_20231018", false) - sql "SET enable_materialized_view_union_rewrite=false;" - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_1_0_before "${all_partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${all_partition_sql}") - // should rewrite fail when union rewrite disable if sub partition is invalid - notContains("${mv_name}(${mv_name})") - } - order_qt_query_1_0_after "${all_partition_sql}" - - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_2_0_before "${partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${partition_sql}") - // should rewrite successfully when union rewrite disable if doesn't query invalid partition - contains("${mv_name}(${mv_name})") - } - order_qt_query_2_0_after "${partition_sql}" - // enable union rewrite - sql "SET enable_materialized_view_union_rewrite=true" sql "SET enable_materialized_view_rewrite=false" order_qt_query_3_0_before "${all_partition_sql}" sql "SET enable_materialized_view_rewrite=true" @@ -213,37 +188,15 @@ suite("partition_mv_rewrite") { // base table add partition sql "REFRESH MATERIALIZED VIEW ${mv_name} AUTO" - sql "SET enable_materialized_view_union_rewrite=false" waitingMTMVTaskFinished(getJobName(db, mv_name)) sql """ insert into lineitem values (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-21', '2023-10-21', '2023-10-21', 'a', 'b', 'yyyyyyyyy'); """ - waitingPartitionIsExpected("${mv_name}", "p_20231021_20231022", false) - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_5_0_before "${all_partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${all_partition_sql}") - // should rewrite fail when union rewrite disable if base table add new partition - notContains("${mv_name}(${mv_name})") - } - order_qt_query_5_0_after "${all_partition_sql}" - - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_6_0_before "${partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${partition_sql}") - // should rewrite successfully when union rewrite disable if doesn't query new partition - contains("${mv_name}(${mv_name})") - } - order_qt_query_6_0_after "${partition_sql}" // enable union rewrite - sql "SET enable_materialized_view_union_rewrite=true" sql "SET enable_materialized_view_rewrite=false" order_qt_query_7_0_before "${all_partition_sql}" sql "SET enable_materialized_view_rewrite=true" @@ -267,35 +220,13 @@ suite("partition_mv_rewrite") { // base table delete partition test sql "REFRESH MATERIALIZED VIEW ${mv_name} AUTO" - sql "SET enable_materialized_view_union_rewrite=false" waitingMTMVTaskFinished(getJobName(db, mv_name)) sql """ ALTER TABLE lineitem DROP PARTITION IF EXISTS p_20231017 FORCE; """ // show partitions will cause error, tmp comment // waitingPartitionIsExpected("${mv_name}", "p_20231017_20231018", false) - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_9_0_before "${all_partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${all_partition_sql}") - // should rewrite fail when union rewrite disable if base table delete partition - notContains("${mv_name}(${mv_name})") - } - order_qt_query_9_0_after "${all_partition_sql}" - - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_10_0_before "${partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${partition_sql}") - // should rewrite successfully when union rewrite disable if doesn't query deleted partition - contains("${mv_name}(${mv_name})") - } - order_qt_query_10_0_after "${partition_sql}" - // enable union rewrite - sql "SET enable_materialized_view_union_rewrite=true" sql "SET enable_materialized_view_rewrite=false" order_qt_query_11_0_before "${all_partition_sql}" sql "SET enable_materialized_view_rewrite=true" @@ -421,26 +352,7 @@ suite("partition_mv_rewrite") { create_ttl_mtmv(db, ttl_mv_name, ttl_mv_def_sql) // test when mv is ttl - sql "SET enable_materialized_view_union_rewrite=false" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${ttl_all_partition_sql}") - // should rewrite fail when union rewrite disable and mv is ttl - notContains("${ttl_mv_name}(${ttl_mv_name})") - } - - sql "SET enable_materialized_view_rewrite=false" - order_qt_query_14_0_before "${ttl_partition_sql}" - sql "SET enable_materialized_view_rewrite=true" - explain { - sql("${ttl_partition_sql}") - // should rewrite fail when union rewrite disable and query the partition which is not in mv - notContains("${ttl_mv_name}(${ttl_mv_name})") - } - order_qt_query_14_0_after "${ttl_partition_sql}" - // enable union rewrite - sql "SET enable_materialized_view_union_rewrite=true" sql "SET enable_materialized_view_rewrite=true" explain { sql("${ttl_all_partition_sql}") diff --git a/regression-test/suites/nereids_rules_p0/mv/scan/scan_table.groovy b/regression-test/suites/nereids_rules_p0/mv/scan/scan_table.groovy index 27a0292dfe01b0..27c625194a84bf 100644 --- a/regression-test/suites/nereids_rules_p0/mv/scan/scan_table.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/scan/scan_table.groovy @@ -18,10 +18,7 @@ suite("mv_scan_table") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/ssb/mv_ssb_test.groovy b/regression-test/suites/nereids_rules_p0/mv/ssb/mv_ssb_test.groovy index 7bbb8f19da90e4..41e3034234a6cf 100644 --- a/regression-test/suites/nereids_rules_p0/mv/ssb/mv_ssb_test.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/ssb/mv_ssb_test.groovy @@ -86,10 +86,7 @@ suite("mv_ssb_test") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql "SET enable_nereids_timeout = false" def mv1_1 = """ diff --git a/regression-test/suites/nereids_rules_p0/mv/tpch/mv_tpch_test.groovy b/regression-test/suites/nereids_rules_p0/mv/tpch/mv_tpch_test.groovy index 15b9ebf9f23f3a..e033fbebd899fb 100644 --- a/regression-test/suites/nereids_rules_p0/mv/tpch/mv_tpch_test.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/tpch/mv_tpch_test.groovy @@ -84,10 +84,7 @@ suite("mv_tpch_test") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" // mv8 Nereids cost too much time ( > 5s ) sql "SET enable_nereids_timeout=false" diff --git a/regression-test/suites/nereids_rules_p0/mv/union_rewrite/partition_curd_union_rewrite.groovy b/regression-test/suites/nereids_rules_p0/mv/union_rewrite/partition_curd_union_rewrite.groovy index 90d326ed7ec899..2c67a373664089 100644 --- a/regression-test/suites/nereids_rules_p0/mv/union_rewrite/partition_curd_union_rewrite.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/union_rewrite/partition_curd_union_rewrite.groovy @@ -18,10 +18,7 @@ suite ("partition_curd_union_rewrite") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" sql "set runtime_filter_mode=OFF" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders diff --git a/regression-test/suites/nereids_rules_p0/mv/union_rewrite/usercase_union_rewrite.groovy b/regression-test/suites/nereids_rules_p0/mv/union_rewrite/usercase_union_rewrite.groovy index 30597d57e1c415..3b6e51d38a818d 100644 --- a/regression-test/suites/nereids_rules_p0/mv/union_rewrite/usercase_union_rewrite.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/union_rewrite/usercase_union_rewrite.groovy @@ -18,9 +18,6 @@ suite ("usercase_union_rewrite") { String db = context.config.getDbNameByFile(context.file) sql "use ${db}" - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" - sql "SET enable_materialized_view_rewrite=true" sql """ drop table if exists orders_user @@ -163,7 +160,6 @@ suite ("usercase_union_rewrite") { compare_res(query_stmt + " order by 1,2,3,4,5,6,7,8") sql """insert into orders_user values (5, 5, 'k', 99.5, 'a', 'b', 1, 'yy', '2023-10-19');""" - sql "SET enable_materialized_view_union_rewrite=true" sleep(10 * 1000) explain { sql("${query_stmt}") From 921e70b66fc71b28861da7f8e6593be7435298f8 Mon Sep 17 00:00:00 2001 From: seawinde Date: Fri, 5 Jul 2024 15:00:00 +0800 Subject: [PATCH 2/3] modify version for branch-2.1 --- fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java index ff2af9adfec9e6..e1413212fa67d8 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java @@ -1550,7 +1550,7 @@ private void transferToMaster() { SessionVariable.NEREIDS_TIMEOUT_SECOND, "30"); } } - if (journalVersion <= FeMetaVersion.VERSION_133) { + if (journalVersion <= FeMetaVersion.VERSION_129) { VariableMgr.refreshDefaultSessionVariables("2.0 to 2.1", SessionVariable.ENABLE_MATERIALIZED_VIEW_REWRITE, "true"); From 1fa5edc2592e9c7e0917ca1449f9b8e11bae5a66 Mon Sep 17 00:00:00 2001 From: seawinde Date: Fri, 5 Jul 2024 15:05:16 +0800 Subject: [PATCH 3/3] rebase code --- .../src/main/java/org/apache/doris/qe/SessionVariable.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) 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 dfba92093868a9..fe288ea12c957c 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 @@ -1736,7 +1736,7 @@ public void setEnableLeftZigZag(boolean enableLeftZigZag) { description = {"当物化视图不足以提供查询的全部数据时,是否允许基表和物化视图 union 来响应查询", "When the materialized view is not enough to provide all the data for the query, " + "whether to allow the union of the base table and the materialized view to " - + "respond to the query"}, varType = VariableAnnotation.REMOVED) + + "respond to the query"}, varType = VariableAnnotation.DEPRECATED) public boolean enableMaterializedViewUnionRewrite = true; @VariableMgr.VarAttr(name = ENABLE_MATERIALIZED_VIEW_NEST_REWRITE, needForward = true, @@ -3849,10 +3849,6 @@ public void setEnableMaterializedViewRewrite(boolean enableMaterializedViewRewri this.enableMaterializedViewRewrite = enableMaterializedViewRewrite; } - public void setEnableMaterializedViewRewrite(boolean enableMaterializedViewRewrite) { - this.enableMaterializedViewRewrite = enableMaterializedViewRewrite; - } - public boolean isAllowModifyMaterializedViewData() { return allowModifyMaterializedViewData; }