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: [email protected]
For additional commands, e-mail: [email protected]