This is an automated email from the ASF dual-hosted git repository.

panxiaolei pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


    from 49becf696ca [fix](case)fix unstable parquet join runtime filter case. 
(#59557)
     add c771d079a6a [Feature](cte) support recursive cte (#58916)

No new revisions were added by this update.

Summary of changes:
 be/src/pipeline/exec/exchange_sink_buffer.cpp      |   2 +-
 be/src/pipeline/exec/exchange_sink_buffer.h        |   2 +-
 be/src/pipeline/exec/exchange_source_operator.cpp  |   8 +-
 be/src/pipeline/exec/exchange_source_operator.h    |  19 +
 be/src/pipeline/exec/operator.cpp                  |  10 +
 be/src/pipeline/exec/operator.h                    |   2 +
 .../pipeline/exec/rec_cte_anchor_sink_operator.cpp |  56 ++
 .../pipeline/exec/rec_cte_anchor_sink_operator.h   | 128 +++
 be/src/pipeline/exec/rec_cte_scan_operator.h       |  89 ++
 be/src/pipeline/exec/rec_cte_sink_operator.cpp     |  55 ++
 be/src/pipeline/exec/rec_cte_sink_operator.h       | 100 +++
 be/src/pipeline/exec/rec_cte_source_operator.cpp   |  85 ++
 be/src/pipeline/exec/rec_cte_source_operator.h     | 224 +++++
 be/src/pipeline/exec/scan_operator.cpp             |   1 +
 be/src/pipeline/exec/union_sink_operator.h         |  41 +-
 be/src/pipeline/pipeline.h                         |   2 +-
 be/src/pipeline/pipeline_fragment_context.cpp      | 258 ++++--
 be/src/pipeline/pipeline_fragment_context.h        |  17 +-
 be/src/pipeline/pipeline_task.cpp                  |  24 +-
 be/src/pipeline/rec_cte_shared_state.h             | 180 ++++
 be/src/runtime/fragment_mgr.cpp                    |  58 ++
 be/src/runtime/fragment_mgr.h                      |  11 +
 be/src/runtime/query_context.cpp                   |  47 +
 be/src/runtime/query_context.h                     |  28 +-
 be/src/runtime/runtime_predicate.h                 |   1 +
 be/src/runtime/runtime_state.cpp                   |  16 +-
 be/src/runtime/runtime_state.h                     |  20 +-
 be/src/runtime/task_execution_context.cpp          |  60 ++
 be/src/runtime/task_execution_context.h            |  26 +-
 be/src/runtime_filter/runtime_filter_consumer.h    |  15 +-
 be/src/runtime_filter/runtime_filter_merger.h      |   2 +
 be/src/runtime_filter/runtime_filter_mgr.cpp       |  27 +-
 be/src/runtime_filter/runtime_filter_mgr.h         |  30 +-
 be/src/service/internal_service.cpp                |  51 ++
 be/src/service/internal_service.h                  |  10 +
 be/src/vec/exec/scan/scanner_context.cpp           |   2 +-
 be/src/vec/runtime/vdata_stream_recvr.cpp          |   2 +-
 be/src/vec/sink/vdata_stream_sender.cpp            |   1 -
 .../runtime_filter_consumer_test.cpp               |  20 +-
 be/test/runtime_filter/runtime_filter_mgr_test.cpp |   2 +-
 .../antlr4/org/apache/doris/nereids/DorisLexer.g4  |   1 +
 .../antlr4/org/apache/doris/nereids/DorisParser.g4 |   3 +-
 .../org/apache/doris/analysis/DescriptorTable.java |   5 +
 .../doris/catalog/RecursiveCteTempTable.java       |  35 +
 .../java/org/apache/doris/catalog/TableIf.java     |  19 +-
 .../org/apache/doris/nereids/CascadesContext.java  |  41 +-
 .../glue/translator/PhysicalPlanTranslator.java    | 105 ++-
 .../doris/nereids/parser/LogicalPlanBuilder.java   |  10 +-
 .../apache/doris/nereids/pattern/MemoPatterns.java |  24 +
 .../processor/post/RuntimeFilterPruner.java        |   9 +
 .../processor/pre/PullUpSubqueryAliasToCTE.java    |  16 +-
 .../properties/ChildOutputPropertyDeriver.java     |  20 +
 .../nereids/properties/RequestPropertyDeriver.java |  11 +
 .../org/apache/doris/nereids/rules/RuleSet.java    |   6 +
 .../org/apache/doris/nereids/rules/RuleType.java   |   3 +
 .../doris/nereids/rules/analysis/AnalyzeCTE.java   | 167 +++-
 .../doris/nereids/rules/analysis/BindRelation.java |  36 +-
 .../nereids/rules/analysis/CollectRelation.java    |  11 +-
 .../nereids/rules/analysis/SubExprAnalyzer.java    |   4 +-
 ...eChildToPhysicalRecursiveCteRecursiveChild.java |  37 +
 ...RecursiveCteScanToPhysicalRecursiveCteScan.java |  42 +
 .../LogicalRecursiveCteToPhysicalRecursiveCte.java |  39 +
 .../nereids/rules/rewrite/AdjustNullable.java      |  48 ++
 .../doris/nereids/rules/rewrite/CTEInline.java     |  44 +-
 .../doris/nereids/rules/rewrite/ColumnPruning.java |  55 ++
 .../doris/nereids/stats/StatsCalculator.java       | 109 +++
 .../trees/copier/LogicalPlanDeepCopier.java        |  26 +
 .../apache/doris/nereids/trees/plans/PlanType.java |   6 +
 .../nereids/trees/plans/algebra/RecursiveCte.java  |  36 +
 .../plans/commands/UpdateMvByPartitionCommand.java |   3 +-
 .../worker/job/UnassignedJobBuilder.java           |  13 +
 .../worker/job/UnassignedRecursiveCteScanJob.java  |  65 ++
 .../nereids/trees/plans/logical/LogicalCTE.java    |  27 +-
 .../trees/plans/logical/LogicalRecursiveCte.java   | 284 ++++++
 .../logical/LogicalRecursiveCteRecursiveChild.java | 117 +++
 .../plans/logical/LogicalRecursiveCteScan.java     |  87 ++
 .../trees/plans/logical/LogicalSubQueryAlias.java  |  22 +
 .../trees/plans/physical/PhysicalRecursiveCte.java | 292 +++++++
 .../PhysicalRecursiveCteRecursiveChild.java        | 121 +++
 .../plans/physical/PhysicalRecursiveCteScan.java   |  85 ++
 .../nereids/trees/plans/visitor/PlanVisitor.java   |  22 +
 .../trees/plans/visitor/RelationVisitor.java       |  10 +
 .../org/apache/doris/planner/RecursiveCteNode.java |  86 ++
 .../apache/doris/planner/RecursiveCteScanNode.java | 121 +++
 .../java/org/apache/doris/qe/SessionVariable.java  |   9 +-
 .../doris/qe/runtime/ThriftPlansBuilder.java       | 145 +++-
 .../nereids/postprocess/RuntimeFilterTest.java     |  29 +
 .../nereids/rules/analysis/AnalyzeCTETest.java     | 219 +++++
 .../doris/nereids/rules/rewrite/CTEInlineTest.java |  84 ++
 .../nereids/rules/rewrite/ColumnPruningTest.java   |  30 +
 gensrc/proto/internal_service.proto                |  42 +
 gensrc/thrift/PaloInternalService.thrift           |   6 +-
 gensrc/thrift/PlanNodes.thrift                     |  30 +-
 .../data/rec_cte_p0/rec_cte/rec_cte.out            | 953 +++++++++++++++++++++
 .../rec_cte_from_ck_doc/rec_cte_from_ck_doc.out    |  29 +
 .../rec_cte_from_duckdb_doc.out                    |  30 +
 .../rec_cte_from_mysql_doc.out                     |  42 +
 .../suites/rec_cte_p0/rec_cte/rec_cte.groovy       | 271 ++++++
 .../rec_cte_from_ck_doc/rec_cte_from_ck_doc.groovy | 144 ++++
 .../rec_cte_from_duckdb_doc.groovy                 | 185 ++++
 .../rec_cte_from_mysql_doc.groovy                  | 140 +++
 .../column_attribute_null_test.groovy              |  94 ++
 .../recursive_cte/complex_rec_cte_test.groovy      | 478 +++++++++++
 .../create_and_insert_select_test.groovy           | 140 +++
 .../suites/recursive_cte/mtmv_and_cte_test.groovy  |  88 ++
 .../suites/recursive_cte/mv_and_cte_test.groovy    |  88 ++
 .../suites/recursive_cte/no_data_test.groovy       |  77 ++
 .../recursive_cte/recursive_100_number_test.groovy | 106 +++
 .../recursive_cte_exception_test.groovy            | 216 +++++
 .../same_data_type_recursive_test.groovy           | 430 ++++++++++
 110 files changed, 7945 insertions(+), 215 deletions(-)
 create mode 100644 be/src/pipeline/exec/rec_cte_anchor_sink_operator.cpp
 create mode 100644 be/src/pipeline/exec/rec_cte_anchor_sink_operator.h
 create mode 100644 be/src/pipeline/exec/rec_cte_scan_operator.h
 create mode 100644 be/src/pipeline/exec/rec_cte_sink_operator.cpp
 create mode 100644 be/src/pipeline/exec/rec_cte_sink_operator.h
 create mode 100644 be/src/pipeline/exec/rec_cte_source_operator.cpp
 create mode 100644 be/src/pipeline/exec/rec_cte_source_operator.h
 create mode 100644 be/src/pipeline/rec_cte_shared_state.h
 create mode 100644 be/src/runtime/task_execution_context.cpp
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/catalog/RecursiveCteTempTable.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalRecursiveCteRecursiveChildToPhysicalRecursiveCteRecursiveChild.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalRecursiveCteScanToPhysicalRecursiveCteScan.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalRecursiveCteToPhysicalRecursiveCte.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/RecursiveCte.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/distribute/worker/job/UnassignedRecursiveCteScanJob.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRecursiveCte.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRecursiveCteRecursiveChild.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRecursiveCteScan.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRecursiveCte.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRecursiveCteRecursiveChild.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRecursiveCteScan.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/planner/RecursiveCteNode.java
 create mode 100644 
fe/fe-core/src/main/java/org/apache/doris/planner/RecursiveCteScanNode.java
 create mode 100644 
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/CTEInlineTest.java
 create mode 100644 regression-test/data/rec_cte_p0/rec_cte/rec_cte.out
 create mode 100644 
regression-test/data/rec_cte_p0/rec_cte_from_ck_doc/rec_cte_from_ck_doc.out
 create mode 100644 
regression-test/data/rec_cte_p0/rec_cte_from_duckdb_doc/rec_cte_from_duckdb_doc.out
 create mode 100644 
regression-test/data/rec_cte_p0/rec_cte_from_mysql_doc/rec_cte_from_mysql_doc.out
 create mode 100644 regression-test/suites/rec_cte_p0/rec_cte/rec_cte.groovy
 create mode 100644 
regression-test/suites/rec_cte_p0/rec_cte_from_ck_doc/rec_cte_from_ck_doc.groovy
 create mode 100644 
regression-test/suites/rec_cte_p0/rec_cte_from_duckdb_doc/rec_cte_from_duckdb_doc.groovy
 create mode 100644 
regression-test/suites/rec_cte_p0/rec_cte_from_mysql_doc/rec_cte_from_mysql_doc.groovy
 create mode 100644 
regression-test/suites/recursive_cte/column_attribute_null_test.groovy
 create mode 100644 
regression-test/suites/recursive_cte/complex_rec_cte_test.groovy
 create mode 100644 
regression-test/suites/recursive_cte/create_and_insert_select_test.groovy
 create mode 100644 
regression-test/suites/recursive_cte/mtmv_and_cte_test.groovy
 create mode 100644 regression-test/suites/recursive_cte/mv_and_cte_test.groovy
 create mode 100644 regression-test/suites/recursive_cte/no_data_test.groovy
 create mode 100644 
regression-test/suites/recursive_cte/recursive_100_number_test.groovy
 create mode 100644 
regression-test/suites/recursive_cte/recursive_cte_exception_test.groovy
 create mode 100644 
regression-test/suites/recursive_cte/same_data_type_recursive_test.groovy


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to