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 9b32d42ee4 [Fix](multi-catalog) fix all nested type test which introduced by #19518(support insert-only transactional table). (#20194) add 72cfe5865a [feat](optimizer) Support CTE reuse (#19934) No new revisions were added by this update. Summary of changes: .../org/apache/doris/nereids/CascadesContext.java | 112 + .../org/apache/doris/nereids/StatementContext.java | 7 + .../apache/doris/nereids/analyzer/CTEContext.java | 61 +- .../glue/translator/PhysicalPlanTranslator.java | 119 + .../glue/translator/PlanTranslatorContext.java | 14 + .../java/org/apache/doris/nereids/jobs/Job.java | 5 + .../doris/nereids/jobs/batch/NereidsRewriter.java | 219 +- .../doris/nereids/jobs/cascades/ApplyRuleJob.java | 2 + .../nereids/jobs/cascades/CostAndEnforcerJob.java | 1 + .../nereids/jobs/cascades/DeriveStatsJob.java | 25 +- .../doris/nereids/parser/LogicalPlanBuilder.java | 2 +- .../properties/ChildOutputPropertyDeriver.java | 25 + .../org/apache/doris/nereids/rules/RuleSet.java | 10 +- .../org/apache/doris/nereids/rules/RuleType.java | 14 + .../nereids/rules/analysis/BindExpression.java | 14 + .../doris/nereids/rules/analysis/BindRelation.java | 18 +- .../doris/nereids/rules/analysis/RegisterCTE.java | 54 +- .../nereids/rules/analysis/SubExprAnalyzer.java | 4 +- .../LogicalCTEAnchorToPhysicalCTEAnchor.java | 37 + .../LogicalCTEConsumeToPhysicalCTEConsume.java | 38 + .../LogicalCTEProduceToPhysicalCTEProduce.java | 37 + .../rules/rewrite/CollectFilterAboveConsumer.java | 52 + .../rules/rewrite/CollectProjectAboveConsumer.java | 81 + .../logical/BuildCTEAnchorAndCTEProducer.java | 65 + .../rules/rewrite/logical/CTEProducerRewrite.java | 123 + .../rules/rewrite/logical/ColumnPruning.java | 9 + .../nereids/rules/rewrite/logical/InlineCTE.java | 73 + .../logical/PushdownFilterThroughCTEAnchor.java | 40 + .../logical/PushdownProjectThroughCTEAnchor.java | 40 + .../doris/nereids/stats/StatsCalculator.java | 98 +- .../doris/nereids/trees/expressions/CTEId.java | 69 + .../expressions/StatementScopeIdGenerator.java | 8 + .../apache/doris/nereids/trees/plans/PlanType.java | 8 + .../nereids/trees/plans/logical/LogicalCTE.java | 54 +- .../trees/plans/logical/LogicalCTEAnchor.java | 94 + .../trees/plans/logical/LogicalCTEConsumer.java | 174 + .../trees/plans/logical/LogicalCTEProducer.java | 143 + .../trees/plans/logical/LogicalSubQueryAlias.java | 26 +- .../trees/plans/physical/PhysicalCTEAnchor.java | 135 + .../trees/plans/physical/PhysicalCTEConsumer.java | 167 + .../trees/plans/physical/PhysicalCTEProducer.java | 135 + .../nereids/trees/plans/visitor/PlanVisitor.java | 32 + .../apache/doris/nereids/util/ExpressionUtils.java | 6 +- .../apache/doris/planner/MultiCastDataSink.java | 80 + .../doris/planner/MultiCastPlanFragment.java | 44 + .../org/apache/doris/planner/PlanFragment.java | 4 +- .../apache/doris/planner/TableFunctionNode.java | 12 +- .../main/java/org/apache/doris/qe/Coordinator.java | 45 + .../java/org/apache/doris/qe/SessionVariable.java | 14 + .../nereids/rules/analysis/RegisterCTETest.java | 195 +- regression-test/data/cte_reuse/q11.out | 65 + regression-test/data/cte_reuse/q14.out | 161 + regression-test/data/cte_reuse/q23.out | 98 + regression-test/data/cte_reuse/q24.out | 54 + regression-test/data/cte_reuse/q31.out | 74 + regression-test/data/cte_reuse/q4.out | 97 + regression-test/data/cte_reuse/q47.out | 49 + regression-test/data/cte_reuse/q57.out | 49 + regression-test/data/cte_reuse/q59.out | 45 + regression-test/data/cte_reuse/q64.out | 115 + regression-test/data/cte_reuse/q74.out | 64 + .../nereids_tpcds_shape_sf100_p0/shape/query1.out | 21 +- .../nereids_tpcds_shape_sf100_p0/shape/query11.out | 278 +- .../nereids_tpcds_shape_sf100_p0/shape/query14.out | 163 +- .../nereids_tpcds_shape_sf100_p0/shape/query2.out | 22 +- .../nereids_tpcds_shape_sf100_p0/shape/query23.out | 108 +- .../nereids_tpcds_shape_sf100_p0/shape/query30.out | 29 +- .../nereids_tpcds_shape_sf100_p0/shape/query31.out | 12 +- .../nereids_tpcds_shape_sf100_p0/shape/query33.out | 2 +- .../nereids_tpcds_shape_sf100_p0/shape/query4.out | 548 +-- .../nereids_tpcds_shape_sf100_p0/shape/query47.out | 6 +- .../nereids_tpcds_shape_sf100_p0/shape/query5.out | 2 +- .../nereids_tpcds_shape_sf100_p0/shape/query51.out | 4 +- .../nereids_tpcds_shape_sf100_p0/shape/query54.out | 49 +- .../nereids_tpcds_shape_sf100_p0/shape/query57.out | 6 +- .../nereids_tpcds_shape_sf100_p0/shape/query58.out | 115 +- .../nereids_tpcds_shape_sf100_p0/shape/query60.out | 6 +- .../nereids_tpcds_shape_sf100_p0/shape/query74.out | 224 +- .../nereids_tpcds_shape_sf100_p0/shape/query75.out | 234 +- .../nereids_tpcds_shape_sf100_p0/shape/query77.out | 107 +- .../nereids_tpcds_shape_sf100_p0/shape/query78.out | 79 +- .../nereids_tpcds_shape_sf100_p0/shape/query80.out | 4 +- .../nereids_tpcds_shape_sf100_p0/shape/query81.out | 27 +- .../nereids_tpcds_shape_sf100_p0/shape/query83.out | 103 +- .../nereids_tpcds_shape_sf100_p0/shape/query95.out | 4 +- .../nereids_tpcds_shape_sf100_p0/shape/query97.out | 32 +- .../ddl/call_center.sql | 0 .../ddl/catalog_page.sql | 0 .../ddl/catalog_returns.sql | 0 .../ddl/catalog_sales.sql | 0 .../ddl/customer.sql | 0 .../ddl/customer_address.sql | 0 .../ddl/customer_demographics.sql | 0 .../ddl/date_dim.sql | 0 .../ddl/household_demographics.sql | 0 .../ddl/income_band.sql | 0 .../ddl/inventory.sql | 0 .../{tpcds_sf1000_p2 => cte_reuse}/ddl/item.sql | 0 .../ddl/promotion.sql | 0 .../{tpcds_sf1000_p2 => cte_reuse}/ddl/reason.sql | 0 .../ddl/ship_mode.sql | 0 .../{tpcds_sf1000_p2 => cte_reuse}/ddl/store.sql | 0 .../ddl/store_returns.sql | 0 .../ddl/store_sales.sql | 0 .../tpcds_sf1_index => cte_reuse}/ddl/time_dim.sql | 0 .../ddl/warehouse.sql | 0 .../tpcds_sf1_index => cte_reuse}/ddl/web_page.sql | 0 .../ddl/web_returns.sql | 0 .../ddl/web_sales.sql | 0 .../ddl/web_site.sql | 0 regression-test/suites/cte_reuse/load.groovy | 4228 ++++++++++++++++++++ regression-test/suites/cte_reuse/q11.groovy | 108 + regression-test/suites/cte_reuse/q14.groovy | 207 + regression-test/suites/cte_reuse/q23.groovy | 129 + regression-test/suites/cte_reuse/q24.groovy | 88 + regression-test/suites/cte_reuse/q31.groovy | 104 + regression-test/suites/cte_reuse/q4.groovy | 134 + regression-test/suites/cte_reuse/q47.groovy | 103 + regression-test/suites/cte_reuse/q57.groovy | 99 + regression-test/suites/cte_reuse/q59.groovy | 115 + regression-test/suites/cte_reuse/q64.groovy | 149 + regression-test/suites/cte_reuse/q74.groovy | 100 + .../suites/nereids_syntax_p0/cte.groovy | 4 + 123 files changed, 10100 insertions(+), 1368 deletions(-) create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalCTEAnchorToPhysicalCTEAnchor.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalCTEConsumeToPhysicalCTEConsume.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalCTEProduceToPhysicalCTEProduce.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/CollectFilterAboveConsumer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/CollectProjectAboveConsumer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/BuildCTEAnchorAndCTEProducer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/CTEProducerRewrite.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/InlineCTE.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownFilterThroughCTEAnchor.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownProjectThroughCTEAnchor.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/CTEId.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalCTEAnchor.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalCTEConsumer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalCTEProducer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEAnchor.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEConsumer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCTEProducer.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/planner/MultiCastDataSink.java create mode 100644 fe/fe-core/src/main/java/org/apache/doris/planner/MultiCastPlanFragment.java create mode 100644 regression-test/data/cte_reuse/q11.out create mode 100644 regression-test/data/cte_reuse/q14.out create mode 100644 regression-test/data/cte_reuse/q23.out create mode 100644 regression-test/data/cte_reuse/q24.out create mode 100644 regression-test/data/cte_reuse/q31.out create mode 100644 regression-test/data/cte_reuse/q4.out create mode 100644 regression-test/data/cte_reuse/q47.out create mode 100644 regression-test/data/cte_reuse/q57.out create mode 100644 regression-test/data/cte_reuse/q59.out create mode 100644 regression-test/data/cte_reuse/q64.out create mode 100644 regression-test/data/cte_reuse/q74.out copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/call_center.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/catalog_page.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/catalog_returns.sql (100%) copy regression-test/suites/{inverted_index_p1/tpcds_sf1_index => cte_reuse}/ddl/catalog_sales.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/customer.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/customer_address.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/customer_demographics.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/date_dim.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/household_demographics.sql (100%) copy regression-test/suites/{inverted_index_p1/tpcds_sf1_index => cte_reuse}/ddl/income_band.sql (100%) copy regression-test/suites/{inverted_index_p1/tpcds_sf1_index => cte_reuse}/ddl/inventory.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/item.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/promotion.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/reason.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/ship_mode.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/store.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/store_returns.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/store_sales.sql (100%) copy regression-test/suites/{inverted_index_p1/tpcds_sf1_index => cte_reuse}/ddl/time_dim.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/warehouse.sql (100%) copy regression-test/suites/{inverted_index_p1/tpcds_sf1_index => cte_reuse}/ddl/web_page.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/web_returns.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/web_sales.sql (100%) copy regression-test/suites/{tpcds_sf1000_p2 => cte_reuse}/ddl/web_site.sql (100%) create mode 100644 regression-test/suites/cte_reuse/load.groovy create mode 100644 regression-test/suites/cte_reuse/q11.groovy create mode 100644 regression-test/suites/cte_reuse/q14.groovy create mode 100644 regression-test/suites/cte_reuse/q23.groovy create mode 100644 regression-test/suites/cte_reuse/q24.groovy create mode 100644 regression-test/suites/cte_reuse/q31.groovy create mode 100644 regression-test/suites/cte_reuse/q4.groovy create mode 100644 regression-test/suites/cte_reuse/q47.groovy create mode 100644 regression-test/suites/cte_reuse/q57.groovy create mode 100644 regression-test/suites/cte_reuse/q59.groovy create mode 100644 regression-test/suites/cte_reuse/q64.groovy create mode 100644 regression-test/suites/cte_reuse/q74.groovy --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org