This is an automated email from the ASF dual-hosted git repository. morrysnow pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
from 859b03dfdf [Improvement](topn) prevent memory usage of key topn increasing unlimited (#19978) add 970efdc1cb [Feature](Nereids) support advanced materialized view (#19650) No new revisions were added by this update. Summary of changes: .../doris/analysis/CreateMaterializedViewStmt.java | 6 + .../glue/translator/PhysicalPlanTranslator.java | 10 +- .../doris/nereids/jobs/batch/NereidsRewriter.java | 9 +- .../nereids/properties/LogicalProperties.java | 11 +- .../nereids/rules/analysis/CheckAfterRewrite.java | 3 +- .../LogicalOlapScanToPhysicalOlapScan.java | 26 + .../mv/AbstractSelectMaterializedIndexRule.java | 314 +++++++- .../mv/SelectMaterializedIndexWithAggregate.java | 865 +++++++++++++-------- .../SelectMaterializedIndexWithoutAggregate.java | 130 ++-- .../nereids/trees/expressions/SlotReference.java | 6 + .../doris/nereids/trees/plans/AbstractPlan.java | 5 - .../apache/doris/nereids/trees/plans/FakePlan.java | 7 - .../org/apache/doris/nereids/trees/plans/Plan.java | 6 - .../nereids/trees/plans/commands/Command.java | 5 - .../trees/plans/logical/AbstractLogicalPlan.java | 2 +- .../nereids/trees/plans/logical/LogicalFilter.java | 4 + .../trees/plans/logical/LogicalOlapScan.java | 83 +- .../nereids/trees/plans/logical/LogicalRepeat.java | 4 + .../trees/plans/physical/PhysicalOlapScan.java | 23 +- .../translator/PhysicalPlanTranslatorTest.java | 3 +- .../postprocess/MergeProjectPostProcessTest.java | 3 +- .../doris/nereids/rules/mv/SelectMvIndexTest.java | 138 ++-- .../nereids/rules/mv/SelectRollupIndexTest.java | 22 +- .../doris/nereids/trees/plans/PlanEqualsTest.java | 6 +- .../data/nereids_syntax_p0/advance_mv.out | 19 + .../mv/newMv/aggHaveDupBase.out} | 0 .../mv/newMv}/case_ignore.out | 0 .../nereids_syntax_p0/mv/newMv/dup_gb_mv_abs.out | 19 + .../nereids_syntax_p0/mv/newMv/dup_gb_mv_plus.out | 19 + .../data/nereids_syntax_p0/mv/newMv/dup_mv_abs.out | 43 + .../data/nereids_syntax_p0/mv/newMv/dup_mv_bin.out | 43 + .../mv/newMv/dup_mv_bm_hash.out} | 0 .../nereids_syntax_p0/mv/newMv/dup_mv_plus.out | 43 + .../mv/newMv/dup_mv_year.out} | 0 .../mv/newMv/multi_slot1.out} | 0 .../mv/newMv/multi_slot2.out} | 0 .../mv/newMv/multi_slot3.out} | 0 .../mv/newMv/multi_slot4.out} | 0 .../nereids_syntax_p0/mv/newMv/multi_slot5.out | 31 + .../mv/newMv/multi_slot6.out} | 0 .../mv/newMv}/mv_with_view.out | 0 .../mv/newMv}/rollback1.out | 0 .../mv/newMv/single_slot.out} | 0 .../mv/newMv}/sum_devide_count.out | 0 .../mv/ut/MVMultiUsage.out} | 0 .../mv/ut/MVWithAs.out} | 0 .../mv/ut/aggCDInBitmap.out} | 0 .../mv/ut/aggMVCalcAggFun.out} | 0 .../mv/ut/aggOnAggMV1.out} | 0 .../mv/ut/aggOnAggMV10.out} | 0 .../mv/ut/aggOnAggMV11.out} | 0 .../mv/ut/aggOnAggMV2.out} | 0 .../mv/ut/aggOnAggMV3.out} | 0 .../mv/ut/aggOnAggMV5.out} | 0 .../mv/ut/aggOnAggMV6.out} | 0 .../mv/ut/aggOnAggMV7.out} | 0 .../mv/ut/bitmapUnionIn.out} | 0 .../mv/ut/incMVReInSub.out} | 0 .../mv/ut/incRewriteCD.out} | 0 .../mv/ut/joinOnLeftPToJoin.out} | 0 .../mv/ut/onStar.out} | 0 .../mv/ut/orderByOnPView.out} | 0 .../mv/ut/projectMV1.out} | 0 .../mv/ut/projectMV2.out} | 0 .../mv/ut/projectMV3.out} | 0 .../mv/ut/projectMV4.out} | 0 .../data/nereids_syntax_p0/mv/ut/subQuery.out | 7 + .../mv/ut/unionDis.out} | 0 .../data/nereids_syntax_p0/rollup/agg.out | 16 + .../data/nereids_syntax_p0/rollup/agg_date.out | 25 + .../rollup/date.out} | 0 .../data/nereids_syntax_p0/rollup/hll.out | 14 + .../nereids_syntax_p0/rollup/hll_with_light_sc.out | 14 + .../testIncorrectMVRewriteInSubquery.groovy | 2 +- .../suites/nereids_syntax_p0/advance_mv.groovy | 175 +++++ .../mv/newMv/aggHaveDupBase.groovy | 80 ++ .../nereids_syntax_p0/mv/newMv/case_ignore.groovy | 60 ++ .../mv/newMv/dup_gb_mv_abs.groovy | 61 ++ .../mv/newMv/dup_gb_mv_plus.groovy | 61 ++ .../nereids_syntax_p0/mv/newMv/dup_mv_abs.groovy | 85 ++ .../nereids_syntax_p0/mv/newMv/dup_mv_bin.groovy | 85 ++ .../mv/newMv/dup_mv_bm_hash.groovy | 79 ++ .../nereids_syntax_p0/mv/newMv/dup_mv_plus.groovy | 102 +++ .../nereids_syntax_p0/mv/newMv/dup_mv_year.groovy | 76 ++ .../nereids_syntax_p0/mv/newMv/multi_slot1.groovy | 53 ++ .../nereids_syntax_p0/mv/newMv/multi_slot2.groovy | 68 ++ .../nereids_syntax_p0/mv/newMv/multi_slot3.groovy | 54 ++ .../nereids_syntax_p0/mv/newMv/multi_slot4.groovy | 56 ++ .../nereids_syntax_p0/mv/newMv/multi_slot5.groovy | 68 ++ .../nereids_syntax_p0/mv/newMv/multi_slot6.groovy | 86 ++ .../nereids_syntax_p0/mv/newMv/mv_with_view.groovy | 79 ++ .../nereids_syntax_p0/mv/newMv/rollback1.groovy | 58 ++ .../nereids_syntax_p0/mv/newMv/single_slot.groovy | 55 ++ .../mv/newMv/sum_devide_count.groovy | 83 ++ .../nereids_syntax_p0/mv/ut/MVMultiUsage.groovy | 60 ++ .../mv/ut/MVWithAs.groovy} | 32 +- .../nereids_syntax_p0/mv/ut/aggCDInBitmap.groovy | 44 ++ .../nereids_syntax_p0/mv/ut/aggMVCalcAggFun.groovy | 60 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV1.groovy | 61 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV10.groovy | 57 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV11.groovy | 57 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV2.groovy | 62 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV3.groovy | 60 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV5.groovy | 57 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV6.groovy | 57 ++ .../nereids_syntax_p0/mv/ut/aggOnAggMV7.groovy | 57 ++ .../mv/ut/bitmapUnionIn.groovy} | 32 +- .../nereids_syntax_p0/mv/ut/incMVReInSub.groovy | 54 ++ .../mv/ut/incRewriteCD.groovy} | 35 +- .../mv/ut/joinOnLeftPToJoin.groovy | 63 ++ .../suites/nereids_syntax_p0/mv/ut/onStar.groovy | 77 ++ .../nereids_syntax_p0/mv/ut/orderByOnPView.groovy | 61 ++ .../nereids_syntax_p0/mv/ut/projectMV1.groovy | 57 ++ .../nereids_syntax_p0/mv/ut/projectMV2.groovy | 63 ++ .../nereids_syntax_p0/mv/ut/projectMV3.groovy | 65 ++ .../nereids_syntax_p0/mv/ut/projectMV4.groovy | 65 ++ .../suites/nereids_syntax_p0/mv/ut/subQuery.groovy | 61 ++ .../suites/nereids_syntax_p0/mv/ut/unionDis.groovy | 60 ++ .../nereids_syntax_p0/mv/where/k123/k123.groovy | 96 +++ .../suites/nereids_syntax_p0/rollup/agg.groovy | 86 ++ .../nereids_syntax_p0/rollup/agg_date.groovy | 89 +++ .../suites/nereids_syntax_p0/rollup/bitmap.groovy | 68 ++ .../suites/nereids_syntax_p0/rollup/date.groovy | 135 ++++ .../suites/nereids_syntax_p0/rollup/hll.groovy | 68 ++ .../rollup/hll_with_light_sc.groovy | 67 ++ 125 files changed, 4910 insertions(+), 566 deletions(-) create mode 100644 regression-test/data/nereids_syntax_p0/advance_mv.out copy regression-test/data/{mv_p0/agg_have_dup_base/agg_have_dup_base.out => nereids_syntax_p0/mv/newMv/aggHaveDupBase.out} (100%) copy regression-test/data/{mv_p0/case_ignore => nereids_syntax_p0/mv/newMv}/case_ignore.out (100%) create mode 100644 regression-test/data/nereids_syntax_p0/mv/newMv/dup_gb_mv_abs.out create mode 100644 regression-test/data/nereids_syntax_p0/mv/newMv/dup_gb_mv_plus.out create mode 100644 regression-test/data/nereids_syntax_p0/mv/newMv/dup_mv_abs.out create mode 100644 regression-test/data/nereids_syntax_p0/mv/newMv/dup_mv_bin.out copy regression-test/data/{mv_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.out => nereids_syntax_p0/mv/newMv/dup_mv_bm_hash.out} (100%) create mode 100644 regression-test/data/nereids_syntax_p0/mv/newMv/dup_mv_plus.out copy regression-test/data/{mv_p0/test_dup_mv_year/test_dup_mv_year.out => nereids_syntax_p0/mv/newMv/dup_mv_year.out} (100%) copy regression-test/data/{mv_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.out => nereids_syntax_p0/mv/newMv/multi_slot1.out} (100%) copy regression-test/data/{mv_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.out => nereids_syntax_p0/mv/newMv/multi_slot2.out} (100%) copy regression-test/data/{mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out => nereids_syntax_p0/mv/newMv/multi_slot3.out} (100%) copy regression-test/data/{mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out => nereids_syntax_p0/mv/newMv/multi_slot4.out} (100%) create mode 100644 regression-test/data/nereids_syntax_p0/mv/newMv/multi_slot5.out copy regression-test/data/{mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.out => nereids_syntax_p0/mv/newMv/multi_slot6.out} (100%) copy regression-test/data/{mv_p0/mv_with_view => nereids_syntax_p0/mv/newMv}/mv_with_view.out (100%) copy regression-test/data/{mv_p0/join/rollback1 => nereids_syntax_p0/mv/newMv}/rollback1.out (100%) copy regression-test/data/{mv_p0/k1ap2spa/k1ap2spa.out => nereids_syntax_p0/mv/newMv/single_slot.out} (100%) copy regression-test/data/{mv_p0/sum_divede_count => nereids_syntax_p0/mv/newMv}/sum_devide_count.out (100%) copy regression-test/data/{mv_p0/ut/testAggQuqeryOnAggMV5/testAggQuqeryOnAggMV5.out => nereids_syntax_p0/mv/ut/MVMultiUsage.out} (100%) copy regression-test/data/{mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.out => nereids_syntax_p0/mv/ut/MVWithAs.out} (100%) copy regression-test/data/{mv_p0/ut/testAggTableCountDistinctInBitmapType/testAggTableCountDistinctInBitmapType.out => nereids_syntax_p0/mv/ut/aggCDInBitmap.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQuqeryOnAggMV5/testAggQuqeryOnAggMV5.out => nereids_syntax_p0/mv/ut/aggMVCalcAggFun.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQueryOnAggMV1/testAggQueryOnAggMV1.out => nereids_syntax_p0/mv/ut/aggOnAggMV1.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQueryOnAggMV10/testAggQueryOnAggMV10.out => nereids_syntax_p0/mv/ut/aggOnAggMV10.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQueryOnAggMV11/testAggQueryOnAggMV11.out => nereids_syntax_p0/mv/ut/aggOnAggMV11.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQueryOnAggMV2/testAggQueryOnAggMV2.out => nereids_syntax_p0/mv/ut/aggOnAggMV2.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQueryOnAggMV3/testAggQueryOnAggMV3.out => nereids_syntax_p0/mv/ut/aggOnAggMV3.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQuqeryOnAggMV5/testAggQuqeryOnAggMV5.out => nereids_syntax_p0/mv/ut/aggOnAggMV5.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQuqeryOnAggMV5/testAggQuqeryOnAggMV5.out => nereids_syntax_p0/mv/ut/aggOnAggMV6.out} (100%) copy regression-test/data/{mv_p0/ut/testAggQuqeryOnAggMV5/testAggQuqeryOnAggMV5.out => nereids_syntax_p0/mv/ut/aggOnAggMV7.out} (100%) copy regression-test/data/{mv_p0/ut/testBitmapUnionInQuery/testBitmapUnionInQuery.out => nereids_syntax_p0/mv/ut/bitmapUnionIn.out} (100%) copy regression-test/data/{mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.out => nereids_syntax_p0/mv/ut/incMVReInSub.out} (100%) copy regression-test/data/{mv_p0/ut/testIncorrectRewriteCountDistinct/testIncorrectRewriteCountDistinct.out => nereids_syntax_p0/mv/ut/incRewriteCD.out} (100%) copy regression-test/data/{mv_p0/ut/testJoinOnLeftProjectToJoin/testJoinOnLeftProjectToJoin.out => nereids_syntax_p0/mv/ut/joinOnLeftPToJoin.out} (100%) copy regression-test/data/{mv_p0/ut/testQueryOnStar/testQueryOnStar.out => nereids_syntax_p0/mv/ut/onStar.out} (100%) copy regression-test/data/{mv_p0/ut/testOrderByQueryOnProjectView/testOrderByQueryOnProjectView.out => nereids_syntax_p0/mv/ut/orderByOnPView.out} (100%) copy regression-test/data/{mv_p0/ut/testProjectionMV1/testProjectionMV1.out => nereids_syntax_p0/mv/ut/projectMV1.out} (100%) copy regression-test/data/{mv_p0/ut/testProjectionMV2/testProjectionMV2.out => nereids_syntax_p0/mv/ut/projectMV2.out} (100%) copy regression-test/data/{mv_p0/ut/testProjectionMV3/testProjectionMV3.out => nereids_syntax_p0/mv/ut/projectMV3.out} (100%) copy regression-test/data/{mv_p0/ut/testProjectionMV4/testProjectionMV4.out => nereids_syntax_p0/mv/ut/projectMV4.out} (100%) create mode 100644 regression-test/data/nereids_syntax_p0/mv/ut/subQuery.out copy regression-test/data/{mv_p0/ut/testUnionDistinct/testUnionDistinct.out => nereids_syntax_p0/mv/ut/unionDis.out} (100%) create mode 100644 regression-test/data/nereids_syntax_p0/rollup/agg.out create mode 100644 regression-test/data/nereids_syntax_p0/rollup/agg_date.out copy regression-test/data/{rollup/test_materialized_view_date.out => nereids_syntax_p0/rollup/date.out} (100%) create mode 100644 regression-test/data/nereids_syntax_p0/rollup/hll.out create mode 100644 regression-test/data/nereids_syntax_p0/rollup/hll_with_light_sc.out create mode 100644 regression-test/suites/nereids_syntax_p0/advance_mv.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/aggHaveDupBase.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/case_ignore.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_gb_mv_abs.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_gb_mv_plus.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_mv_abs.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_mv_bin.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_mv_bm_hash.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_mv_plus.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/dup_mv_year.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot1.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot2.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot3.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot4.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot5.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot6.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/mv_with_view.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/rollback1.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/single_slot.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/newMv/sum_devide_count.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/MVMultiUsage.groovy copy regression-test/suites/{mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.groovy => nereids_syntax_p0/mv/ut/MVWithAs.groovy} (50%) create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggCDInBitmap.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggMVCalcAggFun.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV1.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV10.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV11.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV2.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV3.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV5.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV6.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/aggOnAggMV7.groovy copy regression-test/suites/{mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.groovy => nereids_syntax_p0/mv/ut/bitmapUnionIn.groovy} (50%) create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/incMVReInSub.groovy copy regression-test/suites/{mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.groovy => nereids_syntax_p0/mv/ut/incRewriteCD.groovy} (50%) create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/joinOnLeftPToJoin.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/onStar.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/orderByOnPView.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/projectMV1.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/projectMV2.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/projectMV3.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/projectMV4.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/subQuery.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/ut/unionDis.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/mv/where/k123/k123.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/rollup/agg.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/rollup/agg_date.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/rollup/bitmap.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/rollup/date.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/rollup/hll.groovy create mode 100644 regression-test/suites/nereids_syntax_p0/rollup/hll_with_light_sc.groovy --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org