You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ar...@apache.org on 2026/10/07 13:50:59 UTC
(flink) branch master updated: [FLINK-38569][table-planner] Don't record a ReadingMetadata ability without metadata keys
This is an automated email from the ASF dual-hosted git repository.
AHeise pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 8171d96a94e [FLINK-38569][table-planner] Don't record a ReadingMetadata ability without metadata keys
8171d96a94e is described below
commit 8171d96a94efee565afea9dd41223ab51626c77d
Author: Arvid Heise <45...@users.noreply.github.com>
AuthorDate: Tue Oct 6 15:09:18 2026 +0200
[FLINK-38569][table-planner] Don't record a ReadingMetadata ability without metadata keys
Pushing a projection into a source that supports metadata always recorded a ReadingMetadataSpec, even if the query reads no metadata column, so scan digests showed `metadata=[]` and compiled plans carried a no-op ability. ScanReuser did the same when rebuilding reused scans.
PushProjectIntoTableSourceScanRule records the spec only if a metadata key is projected or an earlier ReadingMetadataSpec has to be narrowed, which happens when the table declares metadata columns. ScanReuser starts from a source without metadata and skips the spec if no metadata key is used. Compiled plans that contain the empty spec still restore unchanged.
Generated-by: Claude Code (Claude Opus 5.5)
---
.../docs/sql/reference/utility/explain.md | 6 +-
docs/content/docs/sql/reference/utility/explain.md | 6 +-
.../flink/table/planner/plan/reuse/ScanReuser.java | 3 +-
.../PushProjectIntoTableSourceScanRule.java | 19 +-
.../table/planner/plan/utils/DeltaJoinUtil.java | 2 -
.../testExplainConvertTableToMaterializedTable.out | 4 +-
.../explain/testExplainCreateMaterializedTable.out | 4 +-
.../testExplainCreateOrAlterMaterializedTable.out | 4 +-
.../src/test/resources/explain/testExplainCtas.out | 4 +-
...ExplainCtasWithColumnsInCreateAndQueryParts.out | 4 +-
.../analyze/GroupAggregationAnalyzerTest.xml | 72 +++---
.../analyze/NonDeterministicUpdateAnalyzerTest.xml | 24 +-
.../table/planner/catalog/JavaCatalogTableTest.xml | 6 +-
.../planner/plan/batch/sql/BatchSinkReuseTest.xml | 10 +-
.../table/planner/plan/batch/sql/CalcMergeTest.xml | 12 +-
.../plan/batch/sql/DynamicFunctionPlanTest.xml | 6 +-
.../plan/batch/sql/ForwardHashExchangeTest.xml | 68 ++---
.../table/planner/plan/batch/sql/LimitTest.xml | 10 +-
.../plan/batch/sql/PartitionableSourceTest.xml | 18 +-
.../planner/plan/batch/sql/SubplanReuseTest.xml | 12 +-
.../planner/plan/batch/sql/TableSourceTest.xml | 12 +-
.../planner/plan/batch/sql/TimeTravelTest.xml | 4 +-
.../plan/batch/sql/agg/HashAggregateTest.xml | 12 +-
.../plan/batch/sql/agg/SortAggregateTest.xml | 12 +-
.../batch/sql/join/LateralSnapshotJoinTest.xml | 4 +-
.../planner/plan/batch/sql/join/LookupJoinTest.xml | 2 +-
.../plan/hints/batch/BroadcastJoinHintTest.xml | 142 +++++-----
.../plan/hints/batch/NestLoopJoinHintTest.xml | 142 +++++-----
.../plan/hints/batch/ShuffleHashJoinHintTest.xml | 142 +++++-----
.../plan/hints/batch/ShuffleMergeJoinHintTest.xml | 142 +++++-----
.../plan/hints/stream/EarlyFireJoinHintTest.xml | 28 +-
.../testEarlyFireJsonPlanRoundTrip.out | 12 +-
.../planner/plan/hints/stream/StateTtlHintTest.xml | 30 +--
.../nodes/exec/operator/BatchOperatorNameTest.xml | 84 +++---
.../nodes/exec/operator/StreamOperatorNameTest.xml | 224 ++++++++--------
.../testChainingPythonAsyncFunctions.out | 6 +-
.../testMultiplePythonAsyncFunctions.out | 6 +-
.../testPythonAsyncCalc.out | 6 +-
.../testPythonAsyncFunctionInWhereClause.out | 6 +-
...estPythonAsyncFunctionMixedWithJavaFunction.out | 6 +-
...honAsyncFunctionMixedWithSyncPythonFunction.out | 6 +-
.../testPythonCalc.out | 6 +-
.../testPythonFunctionInWhereClause.out | 6 +-
.../tesPythonAggCallsWithGroupBy.out | 6 +-
.../testProcTimeBoundedNonPartitionedRangeOver.out | 6 +-
.../testProcTimeBoundedPartitionedRangeOver.out | 6 +-
...undedPartitionedRowsOverWithBuiltinProctime.out | 6 +-
.../testProcTimeUnboundedPartitionedRangeOver.out | 6 +-
.../testRowTimeBoundedPartitionedRowsOver.out | 6 +-
.../table/planner/plan/optimize/ScanReuseTest.xml | 90 +++----
.../plan/optimize/ShuffleModePlanOptimizeTest.xml | 48 ++--
.../program/DynamicPartitionPruningProgramTest.xml | 260 +++++++++----------
.../program/FlinkRuntimeFilterProgramTest.xml | 54 ++--
.../logical/ProjectSnapshotTransposeRuleTest.xml | 8 +-
.../PushProjectIntoTableSourceScanRuleTest.xml | 20 +-
...mplifyCoalesceWithEquiJoinConditionRuleTest.xml | 36 +--
.../WrapJsonAggFunctionArgumentsRuleTest.xml | 68 ++---
.../PushLocalAggIntoTableSourceScanRuleTest.xml | 34 +--
.../stream/DuplicateChangesInferRuleTest.xml | 34 +--
.../ExpandWindowTableFunctionTransposeRuleTest.xml | 6 +-
...AssignerChangelogNormalizeTransposeRuleTest.xml | 10 +-
.../planner/plan/stream/sql/CalcMergeTest.xml | 12 +-
.../sql/ChangelogNormalizeOptimizationTest.xml | 20 +-
.../planner/plan/stream/sql/DeltaJoinTest.xml | 78 +++---
.../testCalcBetweenCascadedDeltaJoinJsonPlan.out | 44 +---
.../plan/stream/sql/DynamicFunctionPlanTest.xml | 6 +-
.../plan/stream/sql/LimitableSourceTest.xml | 42 +--
.../plan/stream/sql/MiniBatchIntervalInferTest.xml | 32 +--
.../planner/plan/stream/sql/MultiJoinTest.xml | 288 ++++++++++-----------
.../plan/stream/sql/NonDeterministicDagTest.xml | 134 +++++-----
.../plan/stream/sql/PartitionableSourceTest.xml | 18 +-
.../plan/stream/sql/SourceWatermarkTest.xml | 10 +-
.../plan/stream/sql/StreamSinkReuseTest.xml | 10 +-
.../planner/plan/stream/sql/SubplanReuseTest.xml | 12 +-
.../planner/plan/stream/sql/TableScanTest.xml | 12 +-
.../planner/plan/stream/sql/TableSourceTest.xml | 12 +-
.../table/planner/plan/stream/sql/UnionTest.xml | 4 +-
.../planner/plan/stream/sql/agg/AggregateTest.xml | 4 +-
.../plan/stream/sql/agg/GroupWindowTest.xml | 2 +-
.../plan/stream/sql/agg/WindowAggregateTest.xml | 184 ++++++-------
.../plan/stream/sql/join/IntervalJoinTest.xml | 4 +-
.../planner/plan/stream/sql/join/JoinTest.xml | 22 +-
.../stream/sql/join/LateralSnapshotJoinTest.xml | 2 +-
.../plan/stream/sql/join/TemporalJoinTest.xml | 2 +-
.../plan/stream/sql/join/WindowJoinTest.xml | 100 +++----
.../planner/plan/stream/table/TableSourceTest.xml | 4 +-
86 files changed, 1499 insertions(+), 1597 deletions(-)
diff --git a/docs/content.zh/docs/sql/reference/utility/explain.md b/docs/content.zh/docs/sql/reference/utility/explain.md
index baa69659907..0d225202d4e 100644
--- a/docs/content.zh/docs/sql/reference/utility/explain.md
+++ b/docs/content.zh/docs/sql/reference/utility/explain.md
@@ -417,7 +417,7 @@ Calc(select=[avg_a, cnt, cnt AS cnt_b, min_b, max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
```
@@ -467,13 +467,13 @@ WHERE b > 100;
== Optimized Physical Plan With Advice ==
Sink(table=[default_catalog.default_database.MySink], fields=[a, b, day], upsertMaterialize=[true])
+- Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day], where=[>(b, 100)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
advice[1]: [WARNING] The column(s): day(generated by non-deterministic function: CURRENT_TIMESTAMP ) can not satisfy the determinism requirement for correctly processing update message('UB'/'UA'/'D' in changelogMode, not 'I' only), this usually happens when input node has no upsertKey(upsertKeys=[{}]) or current node outputs non-deterministic update messages. Please consider removing these non-deterministic columns or making them deterministic by using deterministic functions.
related rel plan:
Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), _UTF-16LE'yyMMdd') AS day], where=[>(b, 100)], changelogMode=[I,UB,UA,D])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b], changelogMode=[I,UB,UA,D])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b], changelogMode=[I,UB,UA,D])
```
{{< /tab>}}
diff --git a/docs/content/docs/sql/reference/utility/explain.md b/docs/content/docs/sql/reference/utility/explain.md
index 45defaccced..3bacd310449 100644
--- a/docs/content/docs/sql/reference/utility/explain.md
+++ b/docs/content/docs/sql/reference/utility/explain.md
@@ -411,7 +411,7 @@ Calc(select=[avg_a, cnt, cnt AS cnt_b, min_b, max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
```
@@ -461,13 +461,13 @@ WHERE b > 100;
== Optimized Physical Plan With Advice ==
Sink(table=[default_catalog.default_database.MySink], fields=[a, b, day], upsertMaterialize=[true])
+- Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day], where=[>(b, 100)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
advice[1]: [WARNING] The column(s): day(generated by non-deterministic function: CURRENT_TIMESTAMP ) can not satisfy the determinism requirement for correctly processing update message('UB'/'UA'/'D' in changelogMode, not 'I' only), this usually happens when input node has no upsertKey(upsertKeys=[{}]) or current node outputs non-deterministic update messages. Please consider removing these non-deterministic columns or making them deterministic by using deterministic functions.
related rel plan:
Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), _UTF-16LE'yyMMdd') AS day], where=[>(b, 100)], changelogMode=[I,UB,UA,D])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b], changelogMode=[I,UB,UA,D])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b], changelogMode=[I,UB,UA,D])
```
{{< /tab>}}
diff --git a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/reuse/ScanReuser.java b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/reuse/ScanReuser.java
index 8da14bb06f2..49e3943ac94 100644
--- a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/reuse/ScanReuser.java
+++ b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/reuse/ScanReuser.java
@@ -278,7 +278,8 @@ public class ScanReuser {
sourceAbilitySpecs.add(
new ProjectPushDownSpec(projectedPhysicalFields, newProducedType));
}
- if (supportsReadingMeta) {
+ // The source is created from scratch, so it has not read any metadata before.
+ if (supportsReadingMeta && !usedMetadataNames.isEmpty()) {
sourceAbilitySpecs.add(new ReadingMetadataSpec(usedMetadataNames, newProducedType));
}
return newProducedType;
diff --git a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRule.java b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRule.java
index 4c3ae91a512..d1a71c92f8c 100644
--- a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRule.java
+++ b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRule.java
@@ -113,8 +113,7 @@ public class PushProjectIntoTableSourceScanRule
// The source supports metadata and wants them to be projected even if projection push-down
// (for physical columns) is not supported.
if (supportsMetadata(source)) {
- if (Arrays.stream(sourceTable.abilitySpecs())
- .anyMatch(spec -> spec instanceof ReadingMetadataSpec)) {
+ if (hasReadingMetadataSpec(sourceTable)) {
return false;
}
@@ -196,15 +195,20 @@ public class PushProjectIntoTableSourceScanRule
}
}
- private boolean supportsProjectionPushDown(DynamicTableSource tableSource) {
+ private static boolean supportsProjectionPushDown(DynamicTableSource tableSource) {
return tableSource instanceof SupportsProjectionPushDown;
}
- private boolean supportsMetadata(DynamicTableSource tableSource) {
+ private static boolean hasReadingMetadataSpec(TableSourceTable source) {
+ return Arrays.stream(source.abilitySpecs())
+ .anyMatch(spec -> spec instanceof ReadingMetadataSpec);
+ }
+
+ private static boolean supportsMetadata(DynamicTableSource tableSource) {
return tableSource instanceof SupportsReadingMetadata;
}
- private boolean supportsNestedProjection(DynamicTableSource tableSource) {
+ private static boolean supportsNestedProjection(DynamicTableSource tableSource) {
return supportsProjectionPushDown(tableSource)
&& ((SupportsProjectionPushDown) tableSource).supportsNestedProjection();
}
@@ -348,7 +352,10 @@ public class PushProjectIntoTableSourceScanRule
.map(col -> col.getMetadataKey().orElse(col.getName()))
.collect(Collectors.toList());
- abilitySpecs.add(new ReadingMetadataSpec(projectedMetadataKeys, newProducedType));
+ // An earlier ReadingMetadataSpec must be narrowed even if no metadata is projected.
+ if (!projectedMetadataKeys.isEmpty() || hasReadingMetadataSpec(source)) {
+ abilitySpecs.add(new ReadingMetadataSpec(projectedMetadataKeys, newProducedType));
+ }
}
return newProducedType;
diff --git a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/utils/DeltaJoinUtil.java b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/utils/DeltaJoinUtil.java
index b644800ee28..5eff7137259 100644
--- a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/utils/DeltaJoinUtil.java
+++ b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/utils/DeltaJoinUtil.java
@@ -139,8 +139,6 @@ public class DeltaJoinUtil {
FilterPushDownSpec.class,
ProjectPushDownSpec.class,
PartitionPushDownSpec.class,
- // TODO FLINK-38569 ReadingMetadataSpec should not be generated when there are
- // no metadata keys to be read
ReadingMetadataSpec.class);
private DeltaJoinUtil() {}
diff --git a/flink-table/flink-table-planner/src/test/resources/explain/testExplainConvertTableToMaterializedTable.out b/flink-table/flink-table-planner/src/test/resources/explain/testExplainConvertTableToMaterializedTable.out
index dbce86bc35b..01dc5a1c90e 100644
--- a/flink-table/flink-table-planner/src/test/resources/explain/testExplainConvertTableToMaterializedTable.out
+++ b/flink-table/flink-table-planner/src/test/resources/explain/testExplainConvertTableToMaterializedTable.out
@@ -5,8 +5,8 @@ LogicalSink(table=[default_catalog.default_database.MyConvertTable], fields=[a,
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MyConvertTable], fields=[a, b])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MyConvertTable], fields=[a, b])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
diff --git a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateMaterializedTable.out b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateMaterializedTable.out
index 8440931c02e..2ce2b25ed85 100644
--- a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateMaterializedTable.out
+++ b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateMaterializedTable.out
@@ -5,8 +5,8 @@ LogicalSink(table=[default_catalog.default_database.MyMTTable], fields=[a, b])
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MyMTTable], fields=[a, b])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MyMTTable], fields=[a, b])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
diff --git a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateOrAlterMaterializedTable.out b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateOrAlterMaterializedTable.out
index 3bd4f82b621..81c71e6f33e 100644
--- a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateOrAlterMaterializedTable.out
+++ b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCreateOrAlterMaterializedTable.out
@@ -6,9 +6,9 @@ LogicalSink(table=[default_catalog.default_database.MyMTTable], fields=[b, a])
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MyMTTable], fields=[b, a])
+- Calc(select=[b, CAST(a AS BIGINT) AS a])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, a], metadata=[]]], fields=[b, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, a]]], fields=[b, a])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MyMTTable], fields=[b, a])
+- Calc(select=[b, CAST(a AS BIGINT) AS a])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, a], metadata=[]]], fields=[b, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, a]]], fields=[b, a])
diff --git a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtas.out b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtas.out
index a0dbe7abfd7..a559efd38d0 100644
--- a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtas.out
+++ b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtas.out
@@ -5,8 +5,8 @@ LogicalSink(table=[default_catalog.default_database.MyCtasTable], fields=[a, b])
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MyCtasTable], fields=[a, b])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MyCtasTable], fields=[a, b])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
diff --git a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtasWithColumnsInCreateAndQueryParts.out b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtasWithColumnsInCreateAndQueryParts.out
index c738e804db9..2d9931987a4 100644
--- a/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtasWithColumnsInCreateAndQueryParts.out
+++ b/flink-table/flink-table-planner/src/test/resources/explain/testExplainCtasWithColumnsInCreateAndQueryParts.out
@@ -6,9 +6,9 @@ LogicalSink(table=[default_catalog.default_database.MyCtasTable], fields=[votes,
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MyCtasTable], fields=[votes, a, b, metadata_col])
+- Calc(select=[null:INTEGER AS votes, a, b, null:BIGINT AS metadata_col])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MyCtasTable], fields=[votes, a, b, metadata_col])
+- Calc(select=[null:INTEGER AS votes, a, b, null:BIGINT AS metadata_col])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.xml
index 1f6609695ca..def6f9998a4 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.xml
@@ -34,7 +34,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true').
@@ -59,7 +59,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO', 'table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
@@ -86,7 +86,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- LocalGroupAggregate(select=[AVG(a) AS (sum$0, count$1), COUNT(*) AS count1$2, MIN(b) AS min$3, MAX(c) FILTER $f3 AS max$4])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
No available advice...
@@ -112,7 +112,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
@@ -135,7 +135,7 @@ Calc(select=[avg_a, cnt, cnt AS cnt_b, min_b, max_c])
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true').
@@ -158,7 +158,7 @@ Calc(select=[avg_a, cnt, cnt AS cnt_b, min_b, max_c])
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO', 'table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
@@ -183,7 +183,7 @@ Calc(select=[avg_a, cnt, cnt AS cnt_b, min_b, max_c])
+- LocalGroupAggregate(select=[AVG(a) AS (sum$0, count$1), COUNT(*) AS count1$2, MIN(b) AS min$3, MAX(c) FILTER $f3 AS max$4])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
No available advice...
@@ -207,7 +207,7 @@ Calc(select=[avg_a, cnt, cnt AS cnt_b, min_b, max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
@@ -222,20 +222,20 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a, cnt, cnt_b, min_b, max_c])
+- Calc(select=[CAST(avg_a AS DOUBLE) AS avg_a, CAST(cnt AS BIGINT) AS cnt, CAST(cnt AS BIGINT) AS cnt_b, CAST(min_b AS BIGINT) AS min_b, max_c])
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink3], fields=[b, sum_a, cnt_c])
+- GroupAggregate(advice=[1], groupBy=[b], select=[b, SUM(a) AS sum_a, COUNT(c) AS cnt_c])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true').
@@ -250,20 +250,20 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a, cnt, cnt_b, min_b, max_c])
+- Calc(select=[CAST(avg_a AS DOUBLE) AS avg_a, CAST(cnt AS BIGINT) AS cnt, CAST(cnt AS BIGINT) AS cnt_b, CAST(min_b AS BIGINT) AS min_b, max_c])
+- GroupAggregate(advice=[1], select=[AVG(a) AS avg_a, COUNT(*) AS cnt, MIN(b) AS min_b, MAX(c) FILTER $f3 AS max_c])
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink3], fields=[b, sum_a, cnt_c])
+- GroupAggregate(advice=[1], groupBy=[b], select=[b, SUM(a) AS sum_a, COUNT(c) AS cnt_c])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO', 'table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
@@ -280,7 +280,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- LocalGroupAggregate(select=[AVG(a) AS (sum$0, count$1), COUNT(*) AS count1$2, MIN(b) AS min$3, MAX(c) FILTER $f3 AS max$4])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a, cnt, cnt_b, min_b, max_c])
+- Calc(select=[CAST(avg_a AS DOUBLE) AS avg_a, CAST(cnt AS BIGINT) AS cnt, CAST(cnt AS BIGINT) AS cnt_b, CAST(min_b AS BIGINT) AS min_b, max_c])
@@ -289,7 +289,7 @@ Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a, cnt, cnt_b
+- LocalGroupAggregate(select=[AVG(a) AS (sum$0, count$1), COUNT(*) AS count1$2, MIN(b) AS min$3, MAX(c) FILTER $f3 AS max$4])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink3], fields=[b, sum_a, cnt_c])
+- GlobalGroupAggregate(groupBy=[b], select=[b, SUM(sum$0) AS sum_a, COUNT(count$1) AS cnt_c])
@@ -297,7 +297,7 @@ Sink(table=[default_catalog.default_database.MySink3], fields=[b, sum_a, cnt_c])
+- LocalGroupAggregate(groupBy=[b], select=[b, SUM(a) AS sum$0, COUNT(c) AS count$1])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
+- Calc(select=[b, a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
No available advice...
@@ -313,7 +313,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[avg_a, cnt, cnt_b,
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a, cnt, cnt_b, min_b, max_c])
+- Calc(select=[CAST(avg_a AS DOUBLE) AS avg_a, CAST(cnt AS BIGINT) AS cnt, CAST(cnt AS BIGINT) AS cnt_b, CAST(min_b AS BIGINT) AS min_b, max_c])
@@ -321,14 +321,14 @@ Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a, cnt, cnt_b
+- Exchange(distribution=[single])
+- Calc(select=[a, b, c, IS TRUE(>(a, 1)) AS $f3])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
Sink(table=[default_catalog.default_database.MySink3], fields=[b, sum_a, cnt_c])
+- GroupAggregate(advice=[1], groupBy=[b], select=[b, SUM(a) AS sum_a, COUNT(c) AS cnt_c])
+- Exchange(distribution=[hash[b]])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
+- Calc(select=[b, a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
@@ -347,12 +347,12 @@ Calc(select=[c, a, b, c0, a0, b0])
:- Exchange(distribution=[hash[a]])
: +- GroupAggregate(advice=[1], groupBy=[c], select=[c, SUM(a) AS a, SUM(b) AS b])
: +- Exchange(distribution=[hash[c]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
+- Exchange(distribution=[hash[b0]])
+- Calc(select=[c, a, b, CAST(b AS BIGINT) AS b0], where=[>(a, 1)])
+- GroupAggregate(advice=[1], groupBy=[c], select=[c, SUM(a) AS a, SUM(b) AS b])
+- Exchange(distribution=[hash[c]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true').
@@ -371,12 +371,12 @@ Calc(select=[c, a, b, c0, a0, b0])
:- Exchange(distribution=[hash[a]])
: +- GroupAggregate(advice=[1], groupBy=[c], select=[c, SUM(a) AS a, SUM(b) AS b])
: +- Exchange(distribution=[hash[c]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
+- Exchange(distribution=[hash[b0]])
+- Calc(select=[c, a, b, CAST(b AS BIGINT) AS b0], where=[>(a, 1)])
+- GroupAggregate(advice=[1], groupBy=[c], select=[c, SUM(a) AS a, SUM(b) AS b])
+- Exchange(distribution=[hash[c]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO', 'table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
@@ -397,14 +397,14 @@ Calc(select=[c, a, b, c0, a0, b0])
: +- Exchange(distribution=[hash[c]])
: +- LocalGroupAggregate(groupBy=[c], select=[c, SUM(a) AS sum$0, SUM(b) AS sum$1])
: +- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
+- Exchange(distribution=[hash[b0]])
+- Calc(select=[c, a, b, CAST(b AS BIGINT) AS b0], where=[>(a, 1)])
+- GlobalGroupAggregate(groupBy=[c], select=[c, SUM(sum$0) AS a, SUM(sum$1) AS b])
+- Exchange(distribution=[hash[c]])
+- LocalGroupAggregate(groupBy=[c], select=[c, SUM(a) AS sum$0, SUM(b) AS sum$1])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
No available advice...
@@ -424,13 +424,13 @@ Calc(select=[c, a, b, c0, a0, b0])
: +- GroupAggregate(advice=[1], groupBy=[c], select=[c, SUM(a) AS a, SUM(b) AS b])
: +- Exchange(distribution=[hash[c]])
: +- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
+- Exchange(distribution=[hash[b0]])
+- Calc(select=[c, a, b, CAST(b AS BIGINT) AS b0], where=[>(a, 1)])
+- GroupAggregate(advice=[1], groupBy=[c], select=[c, SUM(a) AS a, SUM(b) AS b])
+- Exchange(distribution=[hash[c]])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
@@ -444,13 +444,13 @@ Sink(table=[default_catalog.default_database.MySink1], fields=[avg_a_1])
+- Calc(select=[CAST(avg_a_1 AS DOUBLE) AS avg_a_1])
+- GroupAggregate(advice=[1], select=[weightedAvg(a, d) AS avg_a_1])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a_1, avg_a_2])
+- Calc(select=[CAST(avg_a_1 AS DOUBLE) AS avg_a_1, CAST(avg_a_2 AS DOUBLE) AS avg_a_2])
+- GroupAggregate(select=[weightedAvg(a, d) AS avg_a_1, weightedAvgWithoutMerge(a, d) AS avg_a_2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true').
@@ -464,13 +464,13 @@ Sink(table=[default_catalog.default_database.MySink1], fields=[avg_a_1])
+- Calc(select=[CAST(avg_a_1 AS DOUBLE) AS avg_a_1])
+- GroupAggregate(advice=[1], select=[weightedAvg(a, d) AS avg_a_1])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a_1, avg_a_2])
+- Calc(select=[CAST(avg_a_1 AS DOUBLE) AS avg_a_1, CAST(avg_a_2 AS DOUBLE) AS avg_a_2])
+- GroupAggregate(select=[weightedAvg(a, d) AS avg_a_1, weightedAvgWithoutMerge(a, d) AS avg_a_2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO', 'table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
@@ -486,14 +486,14 @@ Sink(table=[default_catalog.default_database.MySink1], fields=[avg_a_1])
+- Exchange(distribution=[single])
+- LocalGroupAggregate(select=[weightedAvg(a, d) AS weightedavg$0])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a_1, avg_a_2])
+- Calc(select=[CAST(avg_a_1 AS DOUBLE) AS avg_a_1, CAST(avg_a_2 AS DOUBLE) AS avg_a_2])
+- GroupAggregate(select=[weightedAvg(a, d) AS avg_a_1, weightedAvgWithoutMerge(a, d) AS avg_a_2])
+- Exchange(distribution=[single])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
No available advice...
@@ -508,14 +508,14 @@ Sink(table=[default_catalog.default_database.MySink1], fields=[avg_a_1])
+- GroupAggregate(advice=[1], select=[weightedAvg(a, d) AS avg_a_1])
+- Exchange(distribution=[single])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
Sink(table=[default_catalog.default_database.MySink2], fields=[avg_a_1, avg_a_2])
+- Calc(select=[CAST(avg_a_1 AS DOUBLE) AS avg_a_1, CAST(avg_a_2 AS DOUBLE) AS avg_a_2])
+- GroupAggregate(select=[weightedAvg(a, d) AS avg_a_1, weightedAvgWithoutMerge(a, d) AS avg_a_2])
+- Exchange(distribution=[single])
+- MiniBatchAssigner(interval=[10000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d], metadata=[]]], fields=[a, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, d]]], fields=[a, d])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.optimizer.agg-phase-strategy' to 'AUTO').
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.xml
index 72fc5bbff32..6345bb66006 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.xml
@@ -30,12 +30,12 @@ on t1.a = t2.a and ndFunc(t2.b) > 100]]>
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], where=[>(ndFunc(b), 100)], select=[a, b, c, a], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
advice[1]: [WARNING] There exists non deterministic function: 'ndFunc' in condition: '>(ndFunc($1), 100)' which may cause wrong result in update pipeline.
related rel plan:
LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], where=[>(ndFunc(b), 100)], select=[a, b, c, a], upsertKey=[[0]], changelogMode=[I,UB,UA,D])
-+- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c], changelogMode=[I,UB,UA,D], upsertKeys=[[a]])
++- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c], changelogMode=[I,UB,UA,D], upsertKeys=[[a]])
]]>
@@ -55,7 +55,7 @@ LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[Inner
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, c, a0, b], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c]]], fields=[a, c])
advice[1]: [WARNING] You might want to enable upsert materialization for look up join operator by configuring ('table.optimizer.non-deterministic-update.strategy' to 'TRY_RESOLVE') to resolve the correctness issue caused by 'Non-Deterministic Updates' (NDU) in a changelog pipeline.
@@ -136,14 +136,14 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, cnt, day]
+- GroupAggregate(advice=[1], groupBy=[day, a], select=[day, a, COUNT_RETRACT(*) AS cnt])
+- Exchange(distribution=[hash[day, a]])
+- Calc(select=[DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day, a])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a]]], fields=[a])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
advice[2]: [WARNING] The column(s): day(generated by non-deterministic function: CURRENT_TIMESTAMP ) can not satisfy the determinism requirement for correctly processing update message('UB'/'UA'/'D' in changelogMode, not 'I' only), this usually happens when input node has no upsertKey(upsertKeys=[{}]) or current node outputs non-deterministic update messages. Please consider removing these non-deterministic columns or making them deterministic by using deterministic functions.
related rel plan:
Calc(select=[DATE_FORMAT(CURRENT_TIMESTAMP(), _UTF-16LE'yyMMdd') AS day, a], changelogMode=[I,UB,UA,D], upsertKeys=[[a]])
-+- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a], metadata=[]]], fields=[a], changelogMode=[I,UB,UA,D], upsertKeys=[[a]])
++- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a]]], fields=[a], changelogMode=[I,UB,UA,D], upsertKeys=[[a]])
]]>
@@ -159,26 +159,26 @@ Sink(table=[default_catalog.default_database.sink1], fields=[a, day, EXPR$2, EXP
+- Join(joinType=[InnerJoin], where=[=(a, d)], select=[a, day, b, c, d], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a])
+- Exchange(distribution=[hash[d]])
- +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d], metadata=[]]], fields=[b, c, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d]]], fields=[b, c, d])
Sink(table=[default_catalog.default_database.sink2], fields=[a, day, b, c])
+- Calc(select=[a, day, b, c])
+- Join(joinType=[InnerJoin], where=[=(a, d)], select=[a, day, b, c, d], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a])
+- Exchange(distribution=[hash[d]])
+- Calc(select=[b, c, d], where=[>(b, 100)])
- +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d], metadata=[]]], fields=[b, c, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d]]], fields=[b, c, d])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
advice[2]: [WARNING] The column(s): day(generated by non-deterministic function: CURRENT_TIMESTAMP ) can not satisfy the determinism requirement for correctly processing update message('UB'/'UA'/'D' in changelogMode, not 'I' only), this usually happens when input node has no upsertKey(upsertKeys=[{}]) or current node outputs non-deterministic update messages. Please consider removing these non-deterministic columns or making them deterministic by using deterministic functions.
related rel plan:
Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), _UTF-16LE'yyMMdd') AS day], changelogMode=[I,UB,UA,D])
-+- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a], changelogMode=[I,UB,UA,D])
++- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a], changelogMode=[I,UB,UA,D])
]]>
@@ -196,13 +196,13 @@ on conflict do deduplicate]]>
<![CDATA[
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, day], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day], where=[>(b, 100)])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, filter=[], project=[a, b]]], fields=[a, b])
advice[1]: [WARNING] The column(s): day(generated by non-deterministic function: CURRENT_TIMESTAMP ) can not satisfy the determinism requirement for correctly processing update message('UB'/'UA'/'D' in changelogMode, not 'I' only), this usually happens when input node has no upsertKey(upsertKeys=[{}]) or current node outputs non-deterministic update messages. Please consider removing these non-deterministic columns or making them deterministic by using deterministic functions.
related rel plan:
Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), _UTF-16LE'yyMMdd') AS day], where=[>(b, 100)], changelogMode=[I,UB,UA,D])
-+- TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, filter=[], project=[a, b], metadata=[]]], fields=[a, b], changelogMode=[I,UB,UA,D])
++- TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, filter=[], project=[a, b]]], fields=[a, b], changelogMode=[I,UB,UA,D])
]]>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.xml
index b4b39fd3742..5f6f21f34b7 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.xml
@@ -37,7 +37,7 @@ GroupWindowAggregate(window=[TumblingGroupWindow('w$, proctime, 600000)], select
+- Calc(select=[proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 5000:INTERVAL SECOND)])
+- Calc(select=[PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[testCatalog, default, testTable, project=[rowtime], metadata=[]]], fields=[rowtime])
+ +- TableSourceScan(table=[[testCatalog, default, testTable, project=[rowtime]]], fields=[rowtime])
]]>
</Resource>
</TestCase>
@@ -81,7 +81,7 @@ LogicalProject(EXPR$0=[$1])
HashWindowAggregate(window=[TumblingGroupWindow('w$, rowtime, 600000)], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
+- LocalHashWindowAggregate(window=[TumblingGroupWindow('w$, rowtime, 600000)], select=[Partial_COUNT(*) AS count1$0])
- +- TableSourceScan(table=[[testCatalog, default, testTable, project=[rowtime], metadata=[]]], fields=[rowtime])
+ +- TableSourceScan(table=[[testCatalog, default, testTable, project=[rowtime]]], fields=[rowtime])
]]>
</Resource>
</TestCase>
@@ -105,7 +105,7 @@ LogicalProject(EXPR$0=[$1])
GroupWindowAggregate(window=[TumblingGroupWindow('w$, rowtime, 600000)], select=[COUNT(*) AS EXPR$0])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 5000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[testCatalog, default, testTable, project=[rowtime], metadata=[]]], fields=[rowtime])
+ +- TableSourceScan(table=[[testCatalog, default, testTable, project=[rowtime]]], fields=[rowtime])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/BatchSinkReuseTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/BatchSinkReuseTest.xml
index a1f60012f63..30fb7ca63c3 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/BatchSinkReuseTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/BatchSinkReuseTest.xml
@@ -166,14 +166,14 @@ LogicalSink(table=[default_catalog.default_database.sink1], targetColumns=[[0]],
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, source1, project=[x, y], metadata=[]]], fields=[x, y])(reuse_id=[1])
+TableSourceScan(table=[[default_catalog, default_database, source1, project=[x, y]]], fields=[x, y])(reuse_id=[1])
Sink(table=[default_catalog.default_database.sink1], targetColumns=[[0]], fields=[x, EXPR$1])
+- Union(all=[true], union=[x, EXPR$1])
:- Calc(select=[x, null:BIGINT AS EXPR$1])
: +- Reused(reference_id=[1])
+- Calc(select=[x, null:BIGINT AS EXPR$1])
- +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[x], metadata=[]]], fields=[x])
+ +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[x]]], fields=[x])
Sink(table=[default_catalog.default_database.sink1], targetColumns=[[1]], fields=[EXPR$0, y])
+- Calc(select=[null:BIGINT AS EXPR$0, y])
@@ -206,13 +206,13 @@ LogicalSink(table=[default_catalog.default_database.partitionedSink], fields=[x,
Sink(table=[default_catalog.default_database.partitionedSink], fields=[EXPR$0, y])
+- Union(all=[true], union=[EXPR$0, y])
:- Calc(select=[1 AS EXPR$0, y])
- : +- TableSourceScan(table=[[default_catalog, default_database, source1, project=[y], metadata=[]]], fields=[y])
+ : +- TableSourceScan(table=[[default_catalog, default_database, source1, project=[y]]], fields=[y])
+- Calc(select=[1 AS EXPR$0, y])
- +- TableSourceScan(table=[[default_catalog, default_database, source2, project=[y], metadata=[]]], fields=[y])
+ +- TableSourceScan(table=[[default_catalog, default_database, source2, project=[y]]], fields=[y])
Sink(table=[default_catalog.default_database.partitionedSink], fields=[EXPR$0, y])
+- Calc(select=[2 AS EXPR$0, y])
- +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[y], metadata=[]]], fields=[y])
+ +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[y]]], fields=[y])
Sink(table=[default_catalog.default_database.partitionedSink], fields=[x, y])
+- Sort(orderBy=[x ASC])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.xml
index b6bc21cd326..3abd97743c7 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.xml
@@ -89,7 +89,7 @@ LogicalProject(a=[$0], a1=[$1])
<![CDATA[
Calc(select=[a, a1], where=[(a1 > 10)])
+- Calc(select=[a, random_udf(a) AS a1])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -108,7 +108,7 @@ LogicalProject(a2=[random_udf($0)])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[random_udf(random_udf(a)) AS a2], where=[(b > 10)])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -128,7 +128,7 @@ LogicalProject(a=[$0], a1=[$1])
<![CDATA[
Calc(select=[a, a1], where=[(a1 > '10')])
+- Calc(select=[a, SUBSTR(CAST(random_udf(a) AS VARCHAR(2147483647)), 1, 2) AS a1])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -148,7 +148,7 @@ LogicalProject(a=[$0], b=[$1])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[a, b], where=[(a = b)])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -168,7 +168,7 @@ LogicalProject(a2=[random_udf($0)], a3=[random_udf($0)])
<![CDATA[
Calc(select=[random_udf(a1) AS a2, random_udf(a1) AS a3])
+- Calc(select=[random_udf(a) AS a1, b], where=[(b > 10)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -187,7 +187,7 @@ LogicalProject(a=[$0], c=[$2])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[a, c], where=[(CAST(c AS BIGINT) > 10)])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, c], metadata=[]]], fields=[a, c])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.xml
index 7e420a5ab0d..edf6cde1ef3 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.xml
@@ -38,7 +38,7 @@ Calc(select=[cat, CAST(CURRENT_DATE() AS DATE) AS gmt_date, EXPR$2, EXPR$3])
+- HashAggregate(isMerge=[false], groupBy=[cat], select=[cat, SUM(cnt) AS EXPR$2, COUNT(*) AS EXPR$3])
+- Exchange(distribution=[hash[cat]])
+- Calc(select=[cat, cnt], where=[(gmt_date = CURRENT_DATE())])
- +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt], metadata=[]]], fields=[cat, gmt_date, cnt])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt]]], fields=[cat, gmt_date, cnt])
]]>
</Resource>
</TestCase>
@@ -65,7 +65,7 @@ Calc(select=[cat, SUBSTR(CAST(LOCALTIME() AS VARCHAR(2147483647)), 1, 2) AS hh,
+- HashAggregate(isMerge=[false], groupBy=[cat], select=[cat, SUM(cnt) AS EXPR$2, COUNT(*) AS EXPR$3])
+- Exchange(distribution=[hash[cat]])
+- Calc(select=[cat, cnt], where=[(SUBSTR(CAST(ts AS VARCHAR(2147483647)), 1, 2) = SUBSTR(CAST(LOCALTIME() AS VARCHAR(2147483647)), 1, 2))])
- +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, cnt, ts], metadata=[]]], fields=[cat, cnt, ts])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, cnt, ts]]], fields=[cat, cnt, ts])
]]>
</Resource>
</TestCase>
@@ -94,7 +94,7 @@ Calc(select=[gmt_date, CAST(CURRENT_TIME() AS TIME(0)) AS ts, 'fruit' AS cat, SU
+- Exchange(distribution=[hash[gmt_date]])
+- LocalHashAggregate(groupBy=[gmt_date], select=[gmt_date, Partial_SUM(cnt) AS sum$0])
+- Calc(select=[gmt_date, cnt], where=[((gmt_date = CURRENT_DATE()) AND (cat = 'fruit') AND (ts = CURRENT_TIME()))])
- +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt, ts], metadata=[]]], fields=[cat, gmt_date, cnt, ts])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt, ts]]], fields=[cat, gmt_date, cnt, ts])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.xml
index 1bfef026b40..e4b4bb4ac6b 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.xml
@@ -43,9 +43,9 @@ Calc(select=[EXPR$0])
+- SortMergeJoin(joinType=[InnerJoin], where=[(a1 = a2)], select=[a1, b1, a2])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[LIKE(c1, 'He%')])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1], metadata=[]]], fields=[a1, b1, c1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1]]], fields=[a1, b1, c1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -76,9 +76,9 @@ Calc(select=[EXPR$0])
+- HashJoin(joinType=[InnerJoin], where=[(a1 = a2)], select=[a1, b1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[LIKE(c1, 'He%')])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1], metadata=[]]], fields=[a1, b1, c1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1]]], fields=[a1, b1, c1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -104,9 +104,9 @@ HashAggregate(isMerge=[false], select=[SUM(b1) AS EXPR$0])
+- Calc(select=[b1])
+- NestedLoopJoin(joinType=[FullOuterJoin], where=[true], select=[b1, a2], build=[left])
:- Exchange(distribution=[single])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[b1], metadata=[]]], fields=[b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[b1]]], fields=[b1])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -140,16 +140,16 @@ HashJoin(joinType=[InnerJoin], where=[(a = d2)], select=[a, d2], build=[left])
: +- Exchange(distribution=[keep_input_as_is[hash[a1]]])
: +- HashJoin(joinType=[InnerJoin], where=[(a = a1)], select=[a1, a], build=[left])
: :- Exchange(distribution=[hash[a1]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
: +- Exchange(distribution=[hash[a]])(reuse_id=[1])
-: +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a], metadata=[]]], fields=[a])
+: +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a]]], fields=[a])
+- Exchange(distribution=[keep_input_as_is[hash[d2]]])
+- Calc(select=[d2])
+- Exchange(distribution=[keep_input_as_is[hash[a]]])
+- HashJoin(joinType=[InnerJoin], where=[(d2 = a)], select=[a, d2], build=[left])
:- Reused(reference_id=[1])
+- Exchange(distribution=[hash[d2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[d2], metadata=[]]], fields=[d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[d2]]], fields=[d2])
]]>
</Resource>
</TestCase>
@@ -218,10 +218,10 @@ LogicalUnion(all=[true])
MultipleInput(readOrder=[1,1,0,0], members=[\nUnion(all=[true], union=[b, sd, sy, sz])\n:- Calc(select=[b0 AS b, sd, sy, sz])\n: +- HashJoin(joinType=[LeftOuterJoin], where=[(b = b0)], select=[b, sd, sy, sz, b0], build=[left])\n: :- HashAggregate(isMerge=[true], groupBy=[b], select=[b, Final_SUM(sum$0) AS sd, Final_SUM(sum$1) AS sy, Final_SUM(sum$2) AS sz])\n: : +- [#3] Exchange(distribution=[hash[b]])\n: +- [#1] Exchange(distribution=[hash[b]])\n+- Calc(select=[e, sd, sy, [...]
:- Exchange(distribution=[hash[b]])
: +- Calc(select=[b])
-: +- TableSourceScan(table=[[default_catalog, default_database, t, project=[a, b], metadata=[]]], fields=[a, b])(reuse_id=[2])
+: +- TableSourceScan(table=[[default_catalog, default_database, t, project=[a, b]]], fields=[a, b])(reuse_id=[2])
:- Exchange(distribution=[hash[e]])
: +- Calc(select=[e])
-: +- TableSourceScan(table=[[default_catalog, default_database, y, project=[d, e, ny], metadata=[]]], fields=[d, e, ny])(reuse_id=[1])
+: +- TableSourceScan(table=[[default_catalog, default_database, y, project=[d, e, ny]]], fields=[d, e, ny])(reuse_id=[1])
:- Exchange(distribution=[hash[b]])
: +- LocalHashAggregate(groupBy=[b], select=[b, Partial_SUM(d) AS sum$0, Partial_SUM(ny) AS sum$1, Partial_SUM(nz) AS sum$2])
: +- Calc(select=[b, d, ny, nz])
@@ -232,9 +232,9 @@ MultipleInput(readOrder=[1,1,0,0], members=[\nUnion(all=[true], union=[b, sd, sy
: :- Exchange(distribution=[keep_input_as_is[hash[a]]])
: : +- MultipleInput(readOrder=[0,0,1], members=[\nHashJoin(joinType=[LeftOuterJoin], where=[(a = nz)], select=[a, ny, nz], build=[right])\n:- HashJoin(joinType=[LeftOuterJoin], where=[(a = ny)], select=[a, ny], build=[left])\n: :- [#2] Exchange(distribution=[hash[a]])\n: +- [#3] Exchange(distribution=[hash[ny]])\n+- [#1] Exchange(distribution=[hash[nz]])\n])(reuse_id=[4])
: : :- Exchange(distribution=[hash[nz]])
-: : : +- TableSourceScan(table=[[default_catalog, default_database, z, project=[nz], metadata=[]]], fields=[nz])
+: : : +- TableSourceScan(table=[[default_catalog, default_database, z, project=[nz]]], fields=[nz])
: : :- Exchange(distribution=[hash[a]])
-: : : +- TableSourceScan(table=[[default_catalog, default_database, x, project=[a], metadata=[]]], fields=[a])
+: : : +- TableSourceScan(table=[[default_catalog, default_database, x, project=[a]]], fields=[a])
: : +- Exchange(distribution=[hash[ny]])
: : +- Calc(select=[ny])
: : +- Reused(reference_id=[1])
@@ -278,9 +278,9 @@ Calc(select=[EXPR$0])
+- SortMergeJoin(joinType=[InnerJoin], where=[(a1 = a2)], select=[a1, b1, a2])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[LIKE(c1, 'He%')])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1], metadata=[]]], fields=[a1, b1, c1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1]]], fields=[a1, b1, c1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -305,7 +305,7 @@ OverAggregate(orderBy=[b ASC], window#0=[RANK(*) AS w0$o0 RANGE BETWEEN UNBOUNDE
+- HashAggregate(isMerge=[true], select=[Final_SUM(sum$0) AS b])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_SUM(b) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b], metadata=[]]], fields=[b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b]]], fields=[b])
]]>
</Resource>
</TestCase>
@@ -337,7 +337,7 @@ Calc(select=[sum_b, (CASE((w0$o0 > 0), w0$o1, null:BIGINT) / w0$o0) AS avg_b, w1
+- HashAggregate(isMerge=[true], groupBy=[c], select=[c, Final_SUM(sum$0) AS sum_b])
+- Exchange(distribution=[hash[c]])
+- LocalHashAggregate(groupBy=[c], select=[c, Partial_SUM(b) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[c, b], metadata=[]]], fields=[c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[c, b]]], fields=[c, b])
]]>
</Resource>
</TestCase>
@@ -362,7 +362,7 @@ OverAggregate(orderBy=[b ASC], window#0=[RANK(*) AS w0$o0 RANGE BETWEEN UNBOUNDE
+- SortAggregate(isMerge=[true], select=[Final_SUM(sum$0) AS b])
+- Exchange(distribution=[single])
+- LocalSortAggregate(select=[Partial_SUM(b) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b], metadata=[]]], fields=[b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b]]], fields=[b])
]]>
</Resource>
</TestCase>
@@ -396,7 +396,7 @@ Calc(select=[sum_b, (CASE((w0$o0 > 0), w0$o1, null:BIGINT) / w0$o0) AS avg_b, w1
+- LocalSortAggregate(groupBy=[c], select=[c, Partial_SUM(b) AS sum$0])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[c ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[c, b], metadata=[]]], fields=[c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[c, b]]], fields=[c, b])
]]>
</Resource>
</TestCase>
@@ -427,7 +427,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[], order
+- HashAggregate(isMerge=[true], select=[Final_SUM(sum$0) AS b])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_SUM(b) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b], metadata=[]]], fields=[b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b]]], fields=[b])
]]>
</Resource>
</TestCase>
@@ -458,7 +458,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[a], orde
+- HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_SUM(sum$0) AS b])
+- Exchange(distribution=[hash[a]])
+- LocalHashAggregate(groupBy=[a], select=[a, Partial_SUM(b) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -488,7 +488,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[], order
+- Exchange(distribution=[forward])
+- SortAggregate(isMerge=[false], select=[SUM(b) AS b])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b], metadata=[]]], fields=[b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b]]], fields=[b])
]]>
</Resource>
</TestCase>
@@ -520,7 +520,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[a], orde
+- Exchange(distribution=[forward])
+- Sort(orderBy=[a ASC])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -551,7 +551,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[], order
+- SortAggregate(isMerge=[true], select=[Final_SUM(sum$0) AS b])
+- Exchange(distribution=[single])
+- LocalSortAggregate(select=[Partial_SUM(b) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b], metadata=[]]], fields=[b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[b]]], fields=[b])
]]>
</Resource>
</TestCase>
@@ -586,7 +586,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[a], orde
+- LocalSortAggregate(groupBy=[a], select=[a, Partial_SUM(b) AS sum$0])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[a ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -611,7 +611,7 @@ Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[a], orde
+- Rank(rankType=[RANK], rankRange=[rankStart=1, rankEnd=10], partitionBy=[a], orderBy=[b ASC], global=[false], select=[a, b])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[a ASC, b ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -637,9 +637,9 @@ SortAggregate(isMerge=[false], select=[SUM(b1) AS EXPR$0])
+- Calc(select=[b1])
+- NestedLoopJoin(joinType=[FullOuterJoin], where=[true], select=[b1, a2], build=[left])
:- Exchange(distribution=[single])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[b1], metadata=[]]], fields=[b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[b1]]], fields=[b1])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -663,7 +663,7 @@ SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_SUM(sum$0) AS b])
+- LocalSortAggregate(groupBy=[a], select=[a, Partial_SUM(b) AS sum$0])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[a ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -697,16 +697,16 @@ SortMergeJoin(joinType=[InnerJoin], where=[(a = d2)], select=[a, d2])
: +- Exchange(distribution=[keep_input_as_is[hash[a1]]])
: +- SortMergeJoin(joinType=[InnerJoin], where=[(a = a1)], select=[a1, a])
: :- Exchange(distribution=[hash[a1]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
: +- Exchange(distribution=[hash[a]])(reuse_id=[1])
-: +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a], metadata=[]]], fields=[a])
+: +- TableSourceScan(table=[[default_catalog, default_database, T, project=[a]]], fields=[a])
+- Exchange(distribution=[keep_input_as_is[hash[d2]]])
+- Calc(select=[d2])
+- Exchange(distribution=[keep_input_as_is[hash[a]]])
+- SortMergeJoin(joinType=[InnerJoin], where=[(d2 = a)], select=[a, d2])
:- Reused(reference_id=[1])
+- Exchange(distribution=[hash[d2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[d2], metadata=[]]], fields=[d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[d2]]], fields=[d2])
]]>
</Resource>
</TestCase>
@@ -741,9 +741,9 @@ Calc(select=[EXPR$0])
+- SortMergeJoin(joinType=[InnerJoin], where=[(a1 = a2)], select=[a1, b1, a2])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[LIKE(c1, 'He%')])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1], metadata=[]]], fields=[a1, b1, c1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1, c1]]], fields=[a1, b1, c1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/LimitTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/LimitTest.xml
index 53f6fdbada5..5bbfdce436e 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/LimitTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/LimitTest.xml
@@ -49,7 +49,7 @@ LogicalSort(fetch=[10])
Limit(offset=[0], fetch=[10], global=[true])
+- Exchange(distribution=[single])
+- Limit(offset=[0], fetch=[10], global=[false])
- +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], metadata=[], limit=[10]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], limit=[10]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -90,7 +90,7 @@ LogicalSort(offset=[10], fetch=[10])
Limit(offset=[10], fetch=[10], global=[true])
+- Exchange(distribution=[single])
+- Limit(offset=[0], fetch=[20], global=[false])
- +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], metadata=[], limit=[20]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], limit=[20]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -182,7 +182,7 @@ LogicalSort(fetch=[10])
Limit(offset=[0], fetch=[10], global=[true])
+- Exchange(distribution=[single])
+- Limit(offset=[0], fetch=[10], global=[false])
- +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], metadata=[], limit=[10]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], limit=[10]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -244,7 +244,7 @@ LogicalSort(offset=[1], fetch=[10])
Limit(offset=[1], fetch=[10], global=[true])
+- Exchange(distribution=[single])
+- Limit(offset=[0], fetch=[11], global=[false])
- +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], metadata=[], limit=[11]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], limit=[11]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -304,7 +304,7 @@ LogicalSort(sort0=[$1], dir0=[ASC-nulls-first], fetch=[10])
SortLimit(orderBy=[c ASC], offset=[0], fetch=[10], global=[true])
+- Exchange(distribution=[single])
+- SortLimit(orderBy=[c ASC], offset=[0], fetch=[10], global=[false])
- +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, LimitTable, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.xml
index a1dfe843c6a..f9a787e23ae 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.xml
@@ -141,7 +141,7 @@ LogicalProject(name=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name], metadata=[]]], fields=[name])
+TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name]]], fields=[name])
]]>
</Resource>
</TestCase>
@@ -159,7 +159,7 @@ LogicalProject(name=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name], metadata=[]]], fields=[name])
+TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name]]], fields=[name])
]]>
</Resource>
</TestCase>
@@ -177,7 +177,7 @@ LogicalProject(name=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name], metadata=[]]], fields=[name])
+TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name]]], fields=[name])
]]>
</Resource>
</TestCase>
@@ -196,7 +196,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -215,7 +215,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -234,7 +234,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -253,7 +253,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -272,7 +272,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -291,7 +291,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[default_catalog, default_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[default_catalog, default_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.xml
index ce0755cf213..2120efbd43b 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.xml
@@ -166,18 +166,18 @@ HashJoin(joinType=[InnerJoin], where=[(b = e0)], select=[a, b, d, e, a0, b0, d0,
: +- HashJoin(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], build=[left])
: :- Exchange(distribution=[hash[a]])
: : +- Calc(select=[a, b], where=[(a < 10)])
-: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b]]], fields=[a, b])
: +- Exchange(distribution=[hash[d]])
: +- Calc(select=[d, e], where=[(d < 10)])
-: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e], metadata=[]]], fields=[d, e])
+: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e]]], fields=[d, e])
+- Exchange(distribution=[hash[e]])
+- HashJoin(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b], where=[(a > 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b]]], fields=[a, b])
+- Exchange(distribution=[hash[d]])
+- Calc(select=[d, e], where=[(d > 5)])
- +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e], metadata=[]]], fields=[d, e])
+ +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e]]], fields=[d, e])
]]>
</Resource>
</TestCase>
@@ -261,10 +261,10 @@ HashJoin(joinType=[InnerJoin], where=[(b = e0)], select=[a, b, d, e, a0, b0, d0,
: +- HashJoin(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], build=[left])
: :- Exchange(distribution=[hash[a]])
: : +- Calc(select=[a, b], where=[(a < 10)])
-: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b], metadata=[]]], fields=[a, b])(reuse_id=[1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b]]], fields=[a, b])(reuse_id=[1])
: +- Exchange(distribution=[hash[d]])
: +- Calc(select=[d, e], where=[(d < 10)])
-: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e], metadata=[]]], fields=[d, e])(reuse_id=[2])
+: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e]]], fields=[d, e])(reuse_id=[2])
+- Exchange(distribution=[hash[e]])
+- HashJoin(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], build=[left])
:- Exchange(distribution=[hash[a]])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.xml
index 988018a2f3f..54b8be4a1a9 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.xml
@@ -30,7 +30,7 @@ LogicalProject(a=[$0])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[a], where=[(IFNULL(a, 1) = 1)])
-+- TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, filter=[], project=[a], metadata=[]]], fields=[a])
++- TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, filter=[], project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -77,7 +77,7 @@ LogicalProject(id=[$0], nestedName=[$1.nested1.name], nestedValue=[$2.value], ne
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, deepNested_nested1_name AS nestedName, nested_value AS nestedValue, deepNested_nested2_flag AS nestedFlag, deepNested_nested2_num AS nestedNum])
-+- TableSourceScan(table=[[default_catalog, default_database, NestedTable, project=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value], metadata=[]]], fields=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value])
++- TableSourceScan(table=[[default_catalog, default_database, NestedTable, project=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value]]], fields=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value])
]]>
</Resource>
</TestCase>
@@ -99,7 +99,7 @@ LogicalProject(EXPR$0=[ITEM($2.data_arr, $0).value], EXPR$1=[ITEM($2.data_map, _
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[ITEM(result_data_arr, id).value AS EXPR$0, ITEM(result_data_map, 'item').value AS EXPR$1])
-+- TableSourceScan(table=[[default_catalog, default_database, NestedItemTable, project=[result_data_arr, result_data_map, id], metadata=[]]], fields=[result_data_arr, result_data_map, id])
++- TableSourceScan(table=[[default_catalog, default_database, NestedItemTable, project=[result_data_arr, result_data_map, id]]], fields=[result_data_arr, result_data_map, id])
]]>
</Resource>
</TestCase>
@@ -117,7 +117,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, project=[a], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, project=[a], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
]]>
</Resource>
</TestCase>
@@ -133,7 +133,7 @@ LogicalProject(a=[$0], c=[$2])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, project=[a, c], metadata=[]]], fields=[a, c])
+TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -150,7 +150,7 @@ LogicalProject(a=[$0], c=[$2], EXPR$2=[PROCTIME()])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[a, c, PROCTIME_MATERIALIZE(PROCTIME()) AS EXPR$2])
-+- TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, project=[a, c], metadata=[]]], fields=[a, c])
++- TableSourceScan(table=[[default_catalog, default_database, ProjectableTable, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.xml
index 464d05fa638..0e9021dee6d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.xml
@@ -60,7 +60,7 @@ LogicalUnion(all=[true])
<![CDATA[
Union(all=[true], union=[f1])
:- TableSourceScan(table=[[TimeTravelCatalog, default, t1]], fields=[f1], version=[1672534800000])
-+- TableSourceScan(table=[[TimeTravelCatalog, default, t1, project=[f2], metadata=[]]], fields=[f2], version=[1672538400000])
++- TableSourceScan(table=[[TimeTravelCatalog, default, t1, project=[f2]]], fields=[f2], version=[1672538400000])
]]>
</Resource>
</TestCase>
@@ -77,7 +77,7 @@ LogicalProject(f1=[$0], f2=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[TimeTravelCatalog, default, t1, project=[f1, f2], metadata=[]]], fields=[f1, f2], version=[1672542000000])
+TableSourceScan(table=[[TimeTravelCatalog, default, t1, project=[f1, f2]]], fields=[f1, f2], version=[1672542000000])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.xml
index 38ca2c88f5d..316c3cf570c 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.xml
@@ -431,7 +431,7 @@ LogicalFilter(condition=[>($0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
Calc(select=[EXPR$0], where=[>(EXPR$0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
@@ -454,7 +454,7 @@ Calc(select=[EXPR$0], where=[>(EXPR$0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
+- HashAggregate(isMerge=[false], select=[COUNT(*) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(INTEGER $f0)]
+- Calc(select=[0 AS $f0]), rowType=[RecordType(INTEGER $f0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
]]>
</Resource>
</TestCase>
@@ -476,7 +476,7 @@ LogicalFilter(condition=[>($0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
Calc(select=[EXPR$0], where=[>(EXPR$0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
@@ -494,7 +494,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()]), rowType=[RecordType(BIGINT EXPR$
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
@@ -513,7 +513,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()]), rowType=[RecordType(BIGINT EXPR$
HashAggregate(isMerge=[false], select=[COUNT(*) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(INTEGER $f0)]
+- Calc(select=[0 AS $f0]), rowType=[RecordType(INTEGER $f0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
]]>
</Resource>
</TestCase>
@@ -531,7 +531,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()]), rowType=[RecordType(BIGINT EXPR$
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.xml
index 2c2fe00b538..f222d217222 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.xml
@@ -554,7 +554,7 @@ LogicalFilter(condition=[>($0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
Calc(select=[EXPR$0], where=[>(EXPR$0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
+- SortAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
@@ -577,7 +577,7 @@ Calc(select=[EXPR$0], where=[>(EXPR$0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
+- SortAggregate(isMerge=[false], select=[COUNT(*) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(INTEGER $f0)]
+- Calc(select=[0 AS $f0]), rowType=[RecordType(INTEGER $f0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
]]>
</Resource>
</TestCase>
@@ -599,7 +599,7 @@ LogicalFilter(condition=[>($0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
Calc(select=[EXPR$0], where=[>(EXPR$0, 1)]), rowType=[RecordType(BIGINT EXPR$0)]
+- SortAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
@@ -617,7 +617,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()]), rowType=[RecordType(BIGINT EXPR$
<![CDATA[
SortAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
@@ -636,7 +636,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()]), rowType=[RecordType(BIGINT EXPR$
SortAggregate(isMerge=[false], select=[COUNT(*) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(INTEGER $f0)]
+- Calc(select=[0 AS $f0]), rowType=[RecordType(INTEGER $f0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id]]], fields=[id]), rowType=[RecordType(VARCHAR(2147483647) id)]
]]>
</Resource>
</TestCase>
@@ -654,7 +654,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()]), rowType=[RecordType(BIGINT EXPR$
<![CDATA[
SortAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0]), rowType=[RecordType(BIGINT EXPR$0)]
+- Exchange(distribution=[single]), rowType=[RecordType(BIGINT count1$0)]
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0]), rowType=[RecordType(BIGINT count1$0)]
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LateralSnapshotJoinTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LateralSnapshotJoinTest.xml
index 8abf54d79f8..3f2e196ab54 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LateralSnapshotJoinTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LateralSnapshotJoinTest.xml
@@ -35,7 +35,7 @@ LogicalProject(pk=[$0], bk=[$3], bv=[$4], pt=[$5])
<![CDATA[
HashJoin(joinType=[InnerJoin], where=[=(pk, bk)], select=[pk, bk, bv, pt], build=[right])
:- Exchange(distribution=[hash[pk]])
-: +- TableSourceScan(table=[[default_catalog, default_database, probe, project=[pk], metadata=[]]], fields=[pk])
+: +- TableSourceScan(table=[[default_catalog, default_database, probe, project=[pk]]], fields=[pk])
+- Calc(select=[bk, bv, PROCTIME_MATERIALIZE(PROCTIME()) AS pt])
+- Exchange(distribution=[hash[bk]])
+- TableSourceScan(table=[[default_catalog, default_database, b_proctime]], fields=[bk, bv])
@@ -157,7 +157,7 @@ LogicalProject(pk=[$0], pv=[$1], bv=[$4])
Calc(select=[pk, pv, bv])
+- HashJoin(joinType=[InnerJoin], where=[=(pk, bk)], select=[pk, pv, bk, bv], build=[right])
:- Exchange(distribution=[hash[pk]])
- : +- TableSourceScan(table=[[default_catalog, default_database, probe, project=[pk, pv], metadata=[]]], fields=[pk, pv])
+ : +- TableSourceScan(table=[[default_catalog, default_database, probe, project=[pk, pv]]], fields=[pk, pv])
+- Exchange(distribution=[hash[bk]])
+- Calc(select=[bk, bv])
+- TableSourceScan(table=[[default_catalog, default_database, b]], fields=[bk, bv, bts])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.xml
index 9195b47ebee..9d6214d54ab 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.xml
@@ -639,7 +639,7 @@ FlinkLogicalAggregate(group=[{0}], EXPR$1=[COUNT($1)], EXPR$2=[SUM($2)], EXPR$3=
: +- FlinkLogicalDataStreamTableScan(table=[[default_catalog, default_database, T1]], fields=[a, b, c, d])
+- FlinkLogicalSnapshot(period=[$cor0.proctime])
+- FlinkLogicalCalc(select=[id], where=[>(age, 10)])
- +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id, age], metadata=[]]], fields=[id, age])
+ +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id, age]]], fields=[id, age])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.xml
index e27a64aecca..05afa89a6e9 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.xml
@@ -41,16 +41,16 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[right])
- : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[broadcast])
: +- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
: :- Exchange(distribution=[broadcast])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -78,8 +78,8 @@ Calc(select=[a3, b3])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -102,7 +102,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -125,7 +125,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -147,7 +147,7 @@ Calc(select=[b1, CAST(a1 AS INTEGER) AS EXPR$1])
+- HashJoin(joinType=[InnerJoin], where=[=(b1, b2)], select=[a1, b1, b2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -339,8 +339,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, EXPR$0)], select=[a1, b1], build=
+- LocalHashAggregate(groupBy=[a1], select=[a1, Partial_COUNT(a2) AS count$0])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -370,8 +370,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -396,7 +396,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -406,14 +406,14 @@ Calc(select=[a1, b1])
:- Calc(select=[a2])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], isBroadcast=[true], build=[left])
: :- Exchange(distribution=[broadcast])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -446,8 +446,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], isBroadcas
+- SortLimit(orderBy=[a1 ASC], offset=[0], fetch=[10], global=[false])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -475,7 +475,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -485,19 +485,19 @@ Calc(select=[a1, b1])
:- Calc(select=[a2])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], isBroadcast=[true], build=[left])
: :- Exchange(distribution=[broadcast])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Calc(select=[a3])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Exchange(distribution=[hash[a3]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -526,8 +526,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -838,7 +838,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -862,7 +862,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -888,7 +888,7 @@ HashAggregate(isMerge=[true], groupBy=[b1], select=[b1, Final_SUM(sum$0) AS EXPR
+- HashJoin(joinType=[InnerJoin], where=[=(b1, b2)], select=[a1, b1, b2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -917,16 +917,16 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[right])
- : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[broadcast])
: +- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
: :- Exchange(distribution=[broadcast])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -955,16 +955,16 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[right])
- : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[broadcast])
: +- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
: :- Exchange(distribution=[broadcast])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -987,15 +987,15 @@ LogicalProject(a1=[$0], b1=[$1])
<![CDATA[
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[right])
- :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1041,14 +1041,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1080,7 +1080,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
: : +- Calc(select=[a1], where=[=(b1, 'abc')])
: : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
@@ -1088,9 +1088,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a3)], select=[a1, a3], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1116,13 +1116,13 @@ LogicalProject(a1=[$0])
Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, a10], build=[right])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Union(all=[true], union=[a1])
- :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1155,9 +1155,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
:- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- Calc(select=[*(EXPR$0, EXPR$00) AS $f2])
+- NestedLoopJoin(joinType=[InnerJoin], where=[true], select=[EXPR$0, EXPR$00], build=[left], singleRowJoin=[true])
@@ -1166,7 +1166,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
: +- Exchange(distribution=[single])
: +- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
: +- Calc(select=[a1], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
@@ -1175,9 +1175,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
+- LocalHashAggregate(groupBy=[a3], select=[a3])
+- Union(all=[true], union=[a3])
:- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a3, 1)])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1201,7 +1201,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1227,7 +1227,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1251,14 +1251,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1282,7 +1282,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1308,7 +1308,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1391,7 +1391,7 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, b1, a2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
@@ -1404,7 +1404,7 @@ Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, b1, a2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1438,29 +1438,29 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
+- Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[right])
:- Calc(select=[a1, b1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a2], where=[>(a2, 2)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a2], where=[>(a2, 5)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1538,8 +1538,8 @@ LogicalProject(EXPR$0=[+($0, 1)], EXPR$1=[*($0, 10)])
Calc(select=[+(a1, 1) AS EXPR$0, *(a1, 10) AS EXPR$1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], isBroadcast=[true], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.xml
index a742cb4f343..b339a6d251d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.xml
@@ -41,16 +41,16 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
- : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[broadcast])
: +- Calc(select=[a1])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[broadcast])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -78,8 +78,8 @@ Calc(select=[a3, b3])
+- Calc(select=[a1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -102,7 +102,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -125,7 +125,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -147,7 +147,7 @@ Calc(select=[b1, CAST(a1 AS INTEGER) AS EXPR$1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(b1, b2)], select=[a1, b1, b2], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -339,8 +339,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, EXPR$0)], select=[a1, b1], build=
+- LocalHashAggregate(groupBy=[a1], select=[a1, Partial_COUNT(a2) AS count$0])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -370,8 +370,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -396,7 +396,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -407,13 +407,13 @@ Calc(select=[a1, b1])
: +- Calc(select=[a2])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[broadcast])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -446,8 +446,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], isBroadcas
+- SortLimit(orderBy=[a1 ASC], offset=[0], fetch=[10], global=[false])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -475,7 +475,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -486,18 +486,18 @@ Calc(select=[a1, b1])
: +- Calc(select=[a2])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[broadcast])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Calc(select=[a3])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Exchange(distribution=[hash[a3]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -526,8 +526,8 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -835,7 +835,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -859,7 +859,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -885,7 +885,7 @@ HashAggregate(isMerge=[true], groupBy=[b1], select=[b1, Final_SUM(sum$0) AS EXPR
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(b1, b2)], select=[a1, b1, b2], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -914,16 +914,16 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
- : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[broadcast])
: +- Calc(select=[a1])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[broadcast])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -952,16 +952,16 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
- : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[broadcast])
: +- Calc(select=[a1])
: +- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[broadcast])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -984,15 +984,15 @@ LogicalProject(a1=[$0], b1=[$1])
<![CDATA[
Calc(select=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
- :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1038,14 +1038,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1077,7 +1077,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
: : +- Calc(select=[a1], where=[=(b1, 'abc')])
: : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
@@ -1085,9 +1085,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a3)], select=[a1, a3], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1113,13 +1113,13 @@ LogicalProject(a1=[$0])
Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, a10], build=[right])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Union(all=[true], union=[a1])
- :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1152,9 +1152,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
:- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- Calc(select=[*(EXPR$0, EXPR$00) AS $f2])
+- NestedLoopJoin(joinType=[InnerJoin], where=[true], select=[EXPR$0, EXPR$00], build=[left], singleRowJoin=[true])
@@ -1163,7 +1163,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
: +- Exchange(distribution=[single])
: +- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
: +- Calc(select=[a1], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
@@ -1172,9 +1172,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
+- LocalHashAggregate(groupBy=[a3], select=[a3])
+- Union(all=[true], union=[a3])
:- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a3, 1)])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1198,7 +1198,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1224,7 +1224,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1248,14 +1248,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1279,7 +1279,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1305,7 +1305,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1388,7 +1388,7 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, b1, a2], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
@@ -1401,7 +1401,7 @@ Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, b1, a2], build=[left])
:- Exchange(distribution=[broadcast])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1435,29 +1435,29 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
+- Calc(select=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
:- Calc(select=[a1, b1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
+- Calc(select=[a1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a2], where=[>(a2, 2)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[left])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1, b1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[a1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a2], where=[>(a2, 5)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1534,8 +1534,8 @@ LogicalProject(EXPR$0=[+($0, 1)], EXPR$1=[*($0, 10)])
Calc(select=[+(a1, 1) AS EXPR$0, *(a1, 10) AS EXPR$1])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[broadcast])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.xml
index e13fa7b305a..dbef988bf78 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.xml
@@ -41,17 +41,17 @@ Calc(select=[a1, b1])
:- Calc(select=[a1, b1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
: :- Exchange(distribution=[hash[a1]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -79,9 +79,9 @@ Calc(select=[a3, b3])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -104,7 +104,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -127,7 +127,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -150,7 +150,7 @@ Calc(select=[b1, CAST(a1 AS INTEGER) AS EXPR$1])
:- Exchange(distribution=[hash[b1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[b2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -344,9 +344,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, EXPR$0)], select=[a1, b1], build=
+- HashAggregate(isMerge=[false], groupBy=[a1], select=[a1, COUNT(a2) AS EXPR$0])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1], build=[left])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -375,9 +375,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -402,7 +402,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -412,15 +412,15 @@ Calc(select=[a1, b1])
:- Calc(select=[a2])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Exchange(distribution=[hash[a3]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -453,9 +453,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], isBroadcas
+- SortLimit(orderBy=[a1 ASC], offset=[0], fetch=[10], global=[false])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1], build=[left])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -483,7 +483,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -493,19 +493,19 @@ Calc(select=[a1, b1])
:- Calc(select=[a2])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Calc(select=[a3])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Exchange(distribution=[hash[a3]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -533,9 +533,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -857,7 +857,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -881,7 +881,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -906,7 +906,7 @@ HashAggregate(isMerge=[false], groupBy=[b1], select=[b1, SUM(a1) AS EXPR$1])
:- Exchange(distribution=[hash[b1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[b2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -935,17 +935,17 @@ Calc(select=[a1, b1])
:- Calc(select=[a1, b1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
: :- Exchange(distribution=[hash[a1]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -974,17 +974,17 @@ Calc(select=[a1, b1])
:- Calc(select=[a1, b1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
: :- Exchange(distribution=[hash[a1]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -1008,14 +1008,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1062,14 +1062,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1101,7 +1101,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
: : +- Calc(select=[a1], where=[=(b1, 'abc')])
: : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
@@ -1109,9 +1109,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a3)], select=[a1, a3], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1137,13 +1137,13 @@ LogicalProject(a1=[$0])
Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, a10], build=[right])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Union(all=[true], union=[a1])
- :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1176,9 +1176,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
:- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- Calc(select=[*(EXPR$0, EXPR$00) AS $f2])
+- NestedLoopJoin(joinType=[InnerJoin], where=[true], select=[EXPR$0, EXPR$00], build=[left], singleRowJoin=[true])
@@ -1187,7 +1187,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
: +- Exchange(distribution=[single])
: +- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
: +- Calc(select=[a1], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
@@ -1196,9 +1196,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
+- LocalHashAggregate(groupBy=[a3], select=[a3])
+- Union(all=[true], union=[a3])
:- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a3, 1)])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1222,7 +1222,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1248,7 +1248,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1272,14 +1272,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1303,7 +1303,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1329,7 +1329,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1415,7 +1415,7 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
@@ -1430,7 +1430,7 @@ Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1465,30 +1465,30 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[right])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
+- Calc(select=[a2], where=[>(a2, 2)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
+- Calc(select=[a2], where=[>(a2, 5)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1566,9 +1566,9 @@ LogicalProject(EXPR$0=[+($0, 1)], EXPR$1=[*($0, 10)])
Calc(select=[+(a1, 1) AS EXPR$0, *(a1, 10) AS EXPR$1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.xml
index 0a109d76f95..fb360f1377d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.xml
@@ -41,17 +41,17 @@ Calc(select=[a1, b1])
:- Calc(select=[a1, b1])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
: :- Exchange(distribution=[hash[a1]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Calc(select=[a1])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
: :- Exchange(distribution=[hash[a1]])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -79,9 +79,9 @@ Calc(select=[a3, b3])
+- Calc(select=[a1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -104,7 +104,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -127,7 +127,7 @@ LogicalProject(a2=[$0])
NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(a1), IS NULL(a2), =(a1, a2))], select=[a1, b1], build=[right])
:- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[broadcast])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -150,7 +150,7 @@ Calc(select=[b1, CAST(a1 AS INTEGER) AS EXPR$1])
:- Exchange(distribution=[hash[b1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[b2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -344,9 +344,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, EXPR$0)], select=[a1, b1], build=
+- SortAggregate(isMerge=[false], groupBy=[a1], select=[a1, COUNT(a2) AS EXPR$0])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -375,9 +375,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -402,7 +402,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -412,15 +412,15 @@ Calc(select=[a1, b1])
:- Calc(select=[a2])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Exchange(distribution=[hash[a3]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -453,9 +453,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], isBroadcas
+- SortLimit(orderBy=[a1 ASC], offset=[0], fetch=[10], global=[false])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a2, a1)], select=[a2, a1])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
]]>
</Resource>
</TestCase>
@@ -483,7 +483,7 @@ LogicalProject(EXPR$0=[+($0, $cor0.a1)])
Calc(select=[a1, b1])
+- HashJoin(joinType=[InnerJoin], where=[AND(IS NOT DISTINCT FROM(a1, a10), =(a1, EXPR$0))], select=[a1, b1, EXPR$0, a10], build=[left])
:- Exchange(distribution=[hash[a1, a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1, EXPR$0]])
+- HashAggregate(isMerge=[true], groupBy=[EXPR$0, a1], select=[EXPR$0, a1])
+- Exchange(distribution=[hash[EXPR$0, a1]])
@@ -493,19 +493,19 @@ Calc(select=[a1, b1])
:- Calc(select=[a2])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Calc(select=[a3])
: +- HashJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3], build=[left])
: :- Exchange(distribution=[hash[a2]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
: +- Exchange(distribution=[hash[a3]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -533,9 +533,9 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
+- Calc(select=[a2])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a2, a3)], select=[a2, a3])
:- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -857,7 +857,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -881,7 +881,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(a1, a2)], select=[a1, b1], build=[rig
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2], hints=[[[ALIAS options:[T2]]]])
]]>
</Resource>
</TestCase>
@@ -906,7 +906,7 @@ SortAggregate(isMerge=[false], groupBy=[b1], select=[b1, SUM(a1) AS EXPR$1])
:- Exchange(distribution=[hash[b1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[b2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -935,17 +935,17 @@ Calc(select=[a1, b1])
:- Calc(select=[a1, b1])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
: :- Exchange(distribution=[hash[a1]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Calc(select=[a1])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
: :- Exchange(distribution=[hash[a1]])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -974,17 +974,17 @@ Calc(select=[a1, b1])
:- Calc(select=[a1, b1])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
: :- Exchange(distribution=[hash[a1]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Calc(select=[a1])
: +- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
: :- Exchange(distribution=[hash[a1]])
: : +- Calc(select=[a1])
- : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
]]>
</Resource>
</TestCase>
@@ -1008,14 +1008,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1062,14 +1062,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1101,7 +1101,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
: : +- Calc(select=[a1], where=[=(b1, 'abc')])
: : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
@@ -1109,9 +1109,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, EXPR$0], buil
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a3)], select=[a1, a3], build=[left])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Exchange(distribution=[hash[a3]])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1137,13 +1137,13 @@ LogicalProject(a1=[$0])
Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, a10], build=[right])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- HashAggregate(isMerge=[true], groupBy=[a1], select=[a1])
+- Exchange(distribution=[hash[a1]])
+- LocalHashAggregate(groupBy=[a1], select=[a1])
+- Union(all=[true], union=[a1])
- :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ :- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1176,9 +1176,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
:- Calc(select=[a1])
: +- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
: :- Exchange(distribution=[hash[a1]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
: +- Exchange(distribution=[hash[a2]])
-: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+: +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
+- Exchange(distribution=[broadcast])
+- Calc(select=[*(EXPR$0, EXPR$00) AS $f2])
+- NestedLoopJoin(joinType=[InnerJoin], where=[true], select=[EXPR$0, EXPR$00], build=[left], singleRowJoin=[true])
@@ -1187,7 +1187,7 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
: +- Exchange(distribution=[single])
: +- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
: +- Calc(select=[a1], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_COUNT(*) AS count1$0])
@@ -1196,9 +1196,9 @@ NestedLoopJoin(joinType=[LeftOuterJoin], where=[true], select=[a1, $f2], build=[
+- LocalHashAggregate(groupBy=[a3], select=[a3])
+- Union(all=[true], union=[a3])
:- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a1, 1)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1], metadata=[]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1]]], fields=[a1], hints=[[[ALIAS options:[T1]]]])
+- Calc(select=[CAST(1 AS BIGINT) AS a3], where=[=(a3, 1)])
- +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3], metadata=[]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, T3, filter=[], project=[a3]]], fields=[a3], hints=[[[ALIAS options:[T3]]]])
]]>
</Resource>
</TestCase>
@@ -1222,7 +1222,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1248,7 +1248,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1272,14 +1272,14 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- HashJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], build=[left])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1303,7 +1303,7 @@ Calc(select=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1329,7 +1329,7 @@ Calc(select=[a1, CAST('abc' AS VARCHAR(2147483647)) AS b1])
: +- Calc(select=[a1], where=[=(b1, 'abc')])
: +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1415,7 +1415,7 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
@@ -1430,7 +1430,7 @@ Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1465,30 +1465,30 @@ Sink(table=[default_catalog.default_database.S1], fields=[a1, b1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1], where=[>(a1, 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
+- Calc(select=[a2], where=[>(a2, 2)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
Sink(table=[default_catalog.default_database.S2], fields=[a1, b1])
+- Calc(select=[a1, b1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1, b1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Calc(select=[a1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1], where=[>(a1, 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, filter=[], project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
+- Calc(select=[a2], where=[>(a2, 5)])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, filter=[], project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -1566,9 +1566,9 @@ LogicalProject(EXPR$0=[+($0, 1)], EXPR$1=[*($0, 10)])
Calc(select=[+(a1, 1) AS EXPR$0, *(a1, 10) AS EXPR$1])
+- SortMergeJoin(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest.xml
index f3866cd3062..cd6635a1f6d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest.xml
@@ -41,10 +41,10 @@ Calc(select=[a, b])
+- IntervalJoin(joinType=[LeftOuterJoin], windowBounds=[isRowTime=true, leftLowerBound=-10000, leftUpperBound=3600000, leftTimeIndex=1, rightTimeIndex=2], where=[((a = a0) AND (rowtime >= (rowtime0 - 10000:INTERVAL SECOND)) AND (rowtime <= (rowtime0 + 3600000:INTERVAL HOUR)))], select=[a, rowtime, a0, b, rowtime0], earlyFireDelay=[5000], earlyFireTimeMode=[ROWTIME])
:- Exchange(distribution=[hash[a]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime])
]]>
</Resource>
</TestCase>
@@ -73,10 +73,10 @@ Calc(select=[a, b], changelogMode=[I])
+- IntervalJoin(joinType=[InnerJoin], windowBounds=[isRowTime=true, leftLowerBound=-10000, leftUpperBound=3600000, leftTimeIndex=1, rightTimeIndex=2], where=[AND(=(a, a0), >=(rowtime, -(rowtime0, 10000:INTERVAL SECOND)), <=(rowtime, +(rowtime0, 3600000:INTERVAL HOUR)))], select=[a, rowtime, a0, b, rowtime0], earlyFireDelay=[5000], earlyFireTimeMode=[ROWTIME], changelogMode=[I])
:- Exchange(distribution=[hash[a]], changelogMode=[I])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime], changelogMode=[I])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime], changelogMode=[I])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime], changelogMode=[I])
+- Exchange(distribution=[hash[a]], changelogMode=[I])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime], changelogMode=[I])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime], changelogMode=[I])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime], changelogMode=[I])
]]>
</Resource>
</TestCase>
@@ -105,10 +105,10 @@ Calc(select=[a, b])
+- IntervalJoin(joinType=[LeftOuterJoin], windowBounds=[isRowTime=true, leftLowerBound=-10000, leftUpperBound=3600000, leftTimeIndex=1, rightTimeIndex=2], where=[((a = a0) AND (rowtime >= (rowtime0 - 10000:INTERVAL SECOND)) AND (rowtime <= (rowtime0 + 3600000:INTERVAL HOUR)))], select=[a, rowtime, a0, b, rowtime0], earlyFireDelay=[5000], earlyFireTimeMode=[ROWTIME])
:- Exchange(distribution=[hash[a]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime])
]]>
</Resource>
</TestCase>
@@ -137,10 +137,10 @@ Calc(select=[a, b], changelogMode=[I])
+- IntervalJoin(joinType=[LeftOuterJoin], windowBounds=[isRowTime=true, leftLowerBound=10000, leftUpperBound=5000, leftTimeIndex=1, rightTimeIndex=2], where=[AND(=(a, a0), >=(rowtime, +(rowtime0, 10000:INTERVAL SECOND)), <=(rowtime, +(rowtime0, 5000:INTERVAL SECOND)))], select=[a, rowtime, a0, b, rowtime0], earlyFireDelay=[5000], earlyFireTimeMode=[ROWTIME], changelogMode=[I])
:- Exchange(distribution=[hash[a]], changelogMode=[I])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime], changelogMode=[I])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime], changelogMode=[I])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime], changelogMode=[I])
+- Exchange(distribution=[hash[a]], changelogMode=[I])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime], changelogMode=[I])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime], changelogMode=[I])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime], changelogMode=[I])
]]>
</Resource>
</TestCase>
@@ -171,12 +171,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime])
]]>
</Resource>
</TestCase>
@@ -205,10 +205,10 @@ Calc(select=[a, b])
+- IntervalJoin(joinType=[LeftOuterJoin], windowBounds=[isRowTime=true, leftLowerBound=-10000, leftUpperBound=3600000, leftTimeIndex=1, rightTimeIndex=2], where=[((a = a0) AND (rowtime >= (rowtime0 - 10000:INTERVAL SECOND)) AND (rowtime <= (rowtime0 + 3600000:INTERVAL HOUR)))], select=[a, rowtime, a0, b, rowtime0], earlyFireDelay=[5000], earlyFireTimeMode=[ROWTIME])
:- Exchange(distribution=[hash[a]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime])
]]>
</Resource>
</TestCase>
@@ -237,10 +237,10 @@ Calc(select=[a, b], changelogMode=[I,UA])
+- IntervalJoin(joinType=[LeftOuterJoin], windowBounds=[isRowTime=true, leftLowerBound=-10000, leftUpperBound=3600000, leftTimeIndex=1, rightTimeIndex=2], where=[AND(=(a, a0), >=(rowtime, -(rowtime0, 10000:INTERVAL SECOND)), <=(rowtime, +(rowtime0, 3600000:INTERVAL HOUR)))], select=[a, rowtime, a0, b, rowtime0], earlyFireDelay=[5000], earlyFireTimeMode=[ROWTIME], changelogMode=[I,UA])
:- Exchange(distribution=[hash[a]], changelogMode=[I])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime], changelogMode=[I])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime], changelogMode=[I])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime], changelogMode=[I])
+- Exchange(distribution=[hash[a]], changelogMode=[I])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime], changelogMode=[I])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime], changelogMode=[I])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime], changelogMode=[I])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest_jsonplan/testEarlyFireJsonPlanRoundTrip.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest_jsonplan/testEarlyFireJsonPlanRoundTrip.out
index 8b6af42a64e..47a34f93427 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest_jsonplan/testEarlyFireJsonPlanRoundTrip.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest_jsonplan/testEarlyFireJsonPlanRoundTrip.out
@@ -63,14 +63,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 3 ] ],
"producedType" : "ROW<`a` INT, `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` INT, `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`a` INT, `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime]]], fields=[a, rowtime])"
}, {
"id" : 2,
"type" : "stream-exec-watermark-assigner_1",
@@ -191,14 +187,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ], [ 3 ] ],
"producedType" : "ROW<`a` INT, `b` VARCHAR(2147483647), `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` INT, `b` VARCHAR(2147483647), `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`a` INT, `b` VARCHAR(2147483647), `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, b, rowtime]]], fields=[a, b, rowtime])"
}, {
"id" : 5,
"type" : "stream-exec-watermark-assigner_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/StateTtlHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/StateTtlHintTest.xml
index 91f28026eae..d182f9b87a4 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/StateTtlHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hints/stream/StateTtlHintTest.xml
@@ -112,7 +112,7 @@ Calc(select=[EXPR$0])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -140,7 +140,7 @@ Calc(select=[EXPR$0])
:- Exchange(distribution=[hash[a1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -217,15 +217,15 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- Join(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey], stateTtlHints=[[[STATE_TTL options:{LEFT=1d}]]])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
+- Join(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -249,15 +249,15 @@ LogicalProject(a1=[$0], b1=[$1])
Calc(select=[a1, b1])
+- Join(joinType=[InnerJoin], where=[=(a1, a10)], select=[a1, b1, a10], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a1]])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a1]])
+- Calc(select=[a1])
+- Join(joinType=[InnerJoin], where=[=(a1, a2)], select=[a1, a2], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey], stateTtlHints=[[[STATE_TTL options:{LEFT=2d}]]])
:- Exchange(distribution=[hash[a1]])
: +- Calc(select=[a1])
- : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1], metadata=[]]], fields=[a1, b1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1, b1]]], fields=[a1, b1])
+- Exchange(distribution=[hash[a2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2], metadata=[]]], fields=[a2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[a2]]], fields=[a2])
]]>
</Resource>
</TestCase>
@@ -305,7 +305,7 @@ GroupAggregate(groupBy=[b1], select=[b1, SUM(a1) AS EXPR$1])
:- Exchange(distribution=[hash[b1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[b2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -400,7 +400,7 @@ LogicalProject(EXPR$0=[$1])
Calc(select=[EXPR$0])
+- GroupAggregate(groupBy=[a1], select=[a1, COUNT(*) AS EXPR$0], stateTtlHints=[[[STATE_TTL options:[2d]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
]]>
</Resource>
</TestCase>
@@ -421,7 +421,7 @@ LogicalProject(EXPR$0=[$1])
Calc(select=[EXPR$0])
+- GroupAggregate(groupBy=[a1], select=[a1, COUNT(*) AS EXPR$0], stateTtlHints=[[[STATE_TTL options:[2d]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
]]>
</Resource>
</TestCase>
@@ -464,7 +464,7 @@ LogicalProject(EXPR$0=[$1])
Calc(select=[EXPR$0])
+- GroupAggregate(groupBy=[a1], select=[a1, COUNT(*) AS EXPR$0], stateTtlHints=[[[STATE_TTL options:[8d]]]])
+- Exchange(distribution=[hash[a1]])
- +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1], metadata=[]]], fields=[a1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T1, project=[a1]]], fields=[a1])
]]>
</Resource>
</TestCase>
@@ -490,7 +490,7 @@ GroupAggregate(groupBy=[b1], select=[b1, SUM(a1) AS EXPR$1])
:- Exchange(distribution=[hash[b1]])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[a1, b1])
+- Exchange(distribution=[hash[b2]])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2], metadata=[]]], fields=[b2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[b2]]], fields=[b2])
]]>
</Resource>
</TestCase>
@@ -529,7 +529,7 @@ Calc(select=[a, b, c])
+- Calc(select=[b], where=[IS NOT NULL(b)])
+- WatermarkAssigner(rowtime=[d], watermark=[-(d, 5000:INTERVAL SECOND)])
+- Calc(select=[b, +(c.c1, 5000:INTERVAL SECOND) AS d])
- +- TableSourceScan(table=[[default_catalog, default_database, tableWithWatermark2, project=[b, c], metadata=[]]], fields=[b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, tableWithWatermark2, project=[b, c]]], fields=[b, c])
]]>
</Resource>
</TestCase>
@@ -568,7 +568,7 @@ Calc(select=[a, b, c])
+- Calc(select=[b], where=[IS NOT NULL(b)])
+- WatermarkAssigner(rowtime=[d], watermark=[-(d, 5000:INTERVAL SECOND)])
+- Calc(select=[b, +(c.c1, 5000:INTERVAL SECOND) AS d])
- +- TableSourceScan(table=[[default_catalog, default_database, tableWithWatermark2, project=[b, c], metadata=[]]], fields=[b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, tableWithWatermark2, project=[b, c]]], fields=[b, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.xml
index 4d9a3dd5b90..8d7f98fe823 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.xml
@@ -204,22 +204,22 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- HashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Final_COUNT(count1$0) AS EXPR$2])
+- Exchange(distribution=[hash[b]])
+- LocalHashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Partial_COUNT(*) AS count1$0])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w$end AS window_end, EXPR$2])
+- HashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Final_COUNT(count1$0) AS EXPR$2])
+- Exchange(distribution=[hash[b]])
+- LocalHashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Partial_COUNT(*) AS count1$0])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -272,14 +272,14 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- HashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Final_COUNT(count1$0) AS EXPR$2])
+- Exchange(distribution=[hash[b]])
+- LocalHashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Partial_COUNT(*) AS count1$0])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w$end AS window_end, EXPR$2])
+- HashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Final_COUNT(count1$0) AS EXPR$2])
+- Exchange(distribution=[hash[b]])
+- LocalHashWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, Partial_COUNT(*) AS count1$0])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Physical Execution Plan ==
{
@@ -287,7 +287,7 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -340,7 +340,7 @@ HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- HashAggregate(isMerge=[true], groupBy=[a, b], select=[a, b])
+- Exchange(distribution=[hash[a, b]])
+- LocalHashAggregate(groupBy=[a, b], select=[a, b])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b])
@@ -349,15 +349,15 @@ HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- HashAggregate(isMerge=[true], groupBy=[a, b], select=[a, b])
+- Exchange(distribution=[hash[a, b]])
+- LocalHashAggregate(groupBy=[a, b], select=[a, b])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -421,7 +421,7 @@ HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- HashAggregate(isMerge=[true], groupBy=[a, b], select=[a, b])
+- Exchange(distribution=[hash[a, b]])
+- LocalHashAggregate(groupBy=[a, b], select=[a, b])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b])
@@ -430,7 +430,7 @@ HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- HashAggregate(isMerge=[true], groupBy=[a, b], select=[a, b])
+- Exchange(distribution=[hash[a, b]])
+- LocalHashAggregate(groupBy=[a, b], select=[a, b])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
@@ -438,7 +438,7 @@ HashAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -1216,7 +1216,7 @@ Calc(select=[b, w0$o0 AS $1])
+- OverAggregate(partitionBy=[b], orderBy=[rowtime ASC], window#0=[COUNT(a) AS w0$o0 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW], select=[a, b, rowtime, w0$o0])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w0$o0 AS $1])
@@ -1224,15 +1224,15 @@ Calc(select=[b, w0$o0 AS $1])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1283,7 +1283,7 @@ Calc(select=[b, w0$o0 AS $1])
+- OverAggregate(partitionBy=[b], orderBy=[rowtime ASC], window#0=[COUNT(a) AS w0$o0 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW], select=[a, b, rowtime, w0$o0])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w0$o0 AS $1])
@@ -1291,7 +1291,7 @@ Calc(select=[b, w0$o0 AS $1])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
@@ -1299,7 +1299,7 @@ Calc(select=[b, w0$o0 AS $1])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1351,7 +1351,7 @@ Calc(select=[a, w0$o0], where=[<=(w0$o0, a)])
+- OverAggregate(partitionBy=[b], orderBy=[a ASC], window#0=[ROW_NUMBER(*) AS w0$o0 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW], select=[a, b, w0$o0])
+- Sort(orderBy=[b ASC, a ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
Calc(select=[a, w0$o0], where=[(w0$o0 <= a)])
@@ -1359,15 +1359,15 @@ Calc(select=[a, w0$o0], where=[(w0$o0 <= a)])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[b ASC, a ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -1419,7 +1419,7 @@ Calc(select=[a, w0$o0], where=[<=(w0$o0, a)])
+- OverAggregate(partitionBy=[b], orderBy=[a ASC], window#0=[ROW_NUMBER(*) AS w0$o0 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW], select=[a, b, w0$o0])
+- Sort(orderBy=[b ASC, a ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
Calc(select=[a, w0$o0], where=[(w0$o0 <= a)])
@@ -1427,7 +1427,7 @@ Calc(select=[a, w0$o0], where=[(w0$o0 <= a)])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[b ASC, a ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
@@ -1435,7 +1435,7 @@ Calc(select=[a, w0$o0], where=[(w0$o0 <= a)])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -1492,7 +1492,7 @@ SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- Exchange(distribution=[hash[a, b]])
+- LocalSortAggregate(groupBy=[a, b], select=[a, b])
+- Sort(orderBy=[a ASC, b ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b])
@@ -1509,15 +1509,15 @@ SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- LocalSortAggregate(groupBy=[a, b], select=[a, b])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[a ASC, b ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -1629,7 +1629,7 @@ SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- Exchange(distribution=[hash[a, b]])
+- LocalSortAggregate(groupBy=[a, b], select=[a, b])
+- Sort(orderBy=[a ASC, b ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b])
@@ -1646,7 +1646,7 @@ SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
+- LocalSortAggregate(groupBy=[a, b], select=[a, b])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[a ASC, b ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
@@ -1654,7 +1654,7 @@ SortAggregate(isMerge=[true], groupBy=[a], select=[a, Final_COUNT(count$0) AS b]
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -1980,7 +1980,7 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- SortWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, FIRST_VALUE(a) AS EXPR$2])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])
== Optimized Execution Plan ==
Calc(select=[b, w$end AS window_end, EXPR$2])
@@ -1988,15 +1988,15 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])",
"parallelism" : 1
}, {
"id" : ,
@@ -2049,7 +2049,7 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- SortWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime], select=[b, FIRST_VALUE(a) AS EXPR$2])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])
== Optimized Execution Plan ==
Calc(select=[b, w$end AS window_end, EXPR$2])
@@ -2057,7 +2057,7 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- Exchange(distribution=[forward])
+- Sort(orderBy=[b ASC, rowtime ASC])
+- Exchange(distribution=[hash[b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])
== Physical Execution Plan ==
{
@@ -2065,7 +2065,7 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime, a]]], fields=[b, rowtime, a])",
"parallelism" : 1
}, {
"id" : ,
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.xml
index 598dc4fd3da..16b96bdcf6b 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.xml
@@ -27,21 +27,21 @@ LogicalSink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- ChangelogNormalize(key=[a, b])
+- Exchange(distribution=[hash[a, b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- ChangelogNormalize(key=[a, b])
+- Exchange(distribution=[hash[a, b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -102,13 +102,13 @@ LogicalSink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- ChangelogNormalize(key=[a, b])
+- Exchange(distribution=[hash[a, b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- ChangelogNormalize(key=[a, b])
+- Exchange(distribution=[hash[a, b]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Physical Execution Plan ==
{
@@ -116,7 +116,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b], upsertMa
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -470,20 +470,20 @@ LogicalSink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -532,12 +532,12 @@ LogicalSink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
== Optimized Physical Plan ==
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Optimized Execution Plan ==
Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])
== Physical Execution Plan ==
{
@@ -545,7 +545,7 @@ Sink(table=[default_catalog.default_database.MySink], fields=[c, a, b])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b], metadata=[]]], fields=[c, a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, b]]], fields=[c, a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -594,20 +594,20 @@ LogicalAggregate(group=[{0}], b=[MAX($1)])
== Optimized Physical Plan ==
GroupAggregate(groupBy=[a], select=[a, MAX(b) AS b])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
GroupAggregate(groupBy=[a], select=[a, MAX(b) AS b])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -634,12 +634,12 @@ LogicalAggregate(group=[{0}], b=[MAX($1)])
== Optimized Physical Plan ==
GroupAggregate(groupBy=[a], select=[a, MAX(b) AS b])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
GroupAggregate(groupBy=[a], select=[a, MAX(b) AS b])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
@@ -647,7 +647,7 @@ GroupAggregate(groupBy=[a], select=[a, MAX(b) AS b])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -679,22 +679,22 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(*) AS EXPR$2, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w$end AS window_end, EXPR$2])
+- GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(*) AS EXPR$2, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -748,14 +748,14 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
+- GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(*) AS EXPR$2, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w$end AS window_end, EXPR$2])
+- GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 900000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(*) AS EXPR$2, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])
== Physical Execution Plan ==
{
@@ -763,7 +763,7 @@ Calc(select=[b, w$end AS window_end, EXPR$2])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime], metadata=[]]], fields=[b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, rowtime]]], fields=[b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -817,7 +817,7 @@ GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(cou
+- LocalGroupAggregate(groupBy=[a, $f2], partialFinalType=[PARTIAL], select=[a, $f2, COUNT(distinct$0 b) AS count$0, DISTINCT(b) AS distinct$0])
+- Calc(select=[a, b, MOD(HASH_CODE(b), 1024) AS $f2])
+- MiniBatchAssigner(interval=[1000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(count$0) AS $f1])
@@ -827,15 +827,15 @@ GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(cou
+- LocalGroupAggregate(groupBy=[a, $f2], partialFinalType=[PARTIAL], select=[a, $f2, COUNT(distinct$0 b) AS count$0, DISTINCT(b) AS distinct$0])
+- Calc(select=[a, b, MOD(HASH_CODE(b), 1024) AS $f2])
+- MiniBatchAssigner(interval=[1000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -911,7 +911,7 @@ GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(cou
+- LocalGroupAggregate(groupBy=[a, $f2], partialFinalType=[PARTIAL], select=[a, $f2, COUNT(distinct$0 b) AS count$0, DISTINCT(b) AS distinct$0])
+- Calc(select=[a, b, MOD(HASH_CODE(b), 1024) AS $f2])
+- MiniBatchAssigner(interval=[1000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Optimized Execution Plan ==
GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(count$0) AS $f1])
@@ -921,7 +921,7 @@ GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(cou
+- LocalGroupAggregate(groupBy=[a, $f2], partialFinalType=[PARTIAL], select=[a, $f2, COUNT(distinct$0 b) AS count$0, DISTINCT(b) AS distinct$0])
+- Calc(select=[a, b, MOD(HASH_CODE(b), 1024) AS $f2])
+- MiniBatchAssigner(interval=[1000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])
== Physical Execution Plan ==
{
@@ -929,7 +929,7 @@ GlobalGroupAggregate(groupBy=[a], partialFinalType=[FINAL], select=[a, $SUM0(cou
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])",
"parallelism" : 1
}, {
"id" : ,
@@ -1009,12 +1009,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[a, b])
@@ -1023,20 +1023,20 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1073,9 +1073,9 @@ Calc(select=[a, b])
} ]
}, {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1170,12 +1170,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[a, b])
@@ -1184,12 +1184,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
@@ -1197,7 +1197,7 @@ Calc(select=[a, b])
"id" : ,
"type" : "Source: A[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1236,7 +1236,7 @@ Calc(select=[a, b])
"id" : ,
"type" : "Source: B[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1331,12 +1331,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[a, b])
@@ -1345,20 +1345,20 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1395,9 +1395,9 @@ Calc(select=[a, b])
} ]
}, {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1481,12 +1481,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[a, b])
@@ -1495,12 +1495,12 @@ Calc(select=[a, b])
: +- Calc(select=[a, proctime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
: +- Calc(select=[a, PROCTIME() AS proctime, rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, proctime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
+- Calc(select=[a, b, PROCTIME() AS proctime, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
@@ -1508,7 +1508,7 @@ Calc(select=[a, b])
"id" : ,
"type" : "Source: A[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, A, project=[a, rowtime]]], fields=[a, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1547,7 +1547,7 @@ Calc(select=[a, b])
"id" : ,
"type" : "Source: B[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, B, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1742,7 +1742,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- LocalWindowAggregate(groupBy=[b], window=[TUMBLE(time_col=[rowtime], size=[5 s])], select=[b, COUNT(*) AS count1$0, SUM(a) AS sum$1, slice_end('w$) AS $slice_end])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
@@ -1751,15 +1751,15 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- LocalWindowAggregate(groupBy=[b], window=[TUMBLE(time_col=[rowtime], size=[5 s])], select=[b, COUNT(*) AS count1$0, SUM(a) AS sum$1, slice_end('w$) AS $slice_end])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -1838,7 +1838,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- LocalWindowAggregate(groupBy=[b], window=[TUMBLE(time_col=[rowtime], size=[5 s])], select=[b, COUNT(*) AS count1$0, SUM(a) AS sum$1, slice_end('w$) AS $slice_end])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
@@ -1847,7 +1847,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- LocalWindowAggregate(groupBy=[b], window=[TUMBLE(time_col=[rowtime], size=[5 s])], select=[b, COUNT(*) AS count1$0, SUM(a) AS sum$1, slice_end('w$) AS $slice_end])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
@@ -1855,7 +1855,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -2229,22 +2229,22 @@ Calc(select=[b, w0$o0 AS $1])
+- OverAggregate(partitionBy=[b], orderBy=[rowtime ASC], window=[ ROWS BETWEEN 2 PRECEDING AND CURRENT ROW], select=[a, b, rowtime, COUNT(a) AS w0$o0])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w0$o0 AS $1])
+- OverAggregate(partitionBy=[b], orderBy=[rowtime ASC], window=[ ROWS BETWEEN 2 PRECEDING AND CURRENT ROW], select=[a, b, rowtime, COUNT(a) AS w0$o0])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -2296,14 +2296,14 @@ Calc(select=[b, w0$o0 AS $1])
+- OverAggregate(partitionBy=[b], orderBy=[rowtime ASC], window=[ ROWS BETWEEN 2 PRECEDING AND CURRENT ROW], select=[a, b, rowtime, COUNT(a) AS w0$o0])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, w0$o0 AS $1])
+- OverAggregate(partitionBy=[b], orderBy=[rowtime ASC], window=[ ROWS BETWEEN 2 PRECEDING AND CURRENT ROW], select=[a, b, rowtime, COUNT(a) AS w0$o0])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
@@ -2311,7 +2311,7 @@ Calc(select=[b, w0$o0 AS $1])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -2797,22 +2797,22 @@ Calc(select=[a])
+- TemporalSort(orderBy=[rowtime ASC, c ASC])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])
== Optimized Execution Plan ==
Calc(select=[a])
+- TemporalSort(orderBy=[rowtime ASC, c ASC])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])",
"parallelism" : 1
}, {
"id" : ,
@@ -2866,14 +2866,14 @@ Calc(select=[a])
+- TemporalSort(orderBy=[rowtime ASC, c ASC])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])
== Optimized Execution Plan ==
Calc(select=[a])
+- TemporalSort(orderBy=[rowtime ASC, c ASC])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])
== Physical Execution Plan ==
{
@@ -2881,7 +2881,7 @@ Calc(select=[a])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c], metadata=[]]], fields=[a, rowtime, c])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, rowtime, c]]], fields=[a, rowtime, c])",
"parallelism" : 1
}, {
"id" : ,
@@ -2936,7 +2936,7 @@ Calc(select=[a])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
+- Calc(select=[a, PROCTIME() AS proctime, c, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Optimized Execution Plan ==
Calc(select=[a])
@@ -2944,15 +2944,15 @@ Calc(select=[a])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
+- Calc(select=[a, PROCTIME() AS proctime, c, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3018,7 +3018,7 @@ Calc(select=[a])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
+- Calc(select=[a, PROCTIME() AS proctime, c, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Optimized Execution Plan ==
Calc(select=[a])
@@ -3026,7 +3026,7 @@ Calc(select=[a])
+- Exchange(distribution=[single])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
+- Calc(select=[a, PROCTIME() AS proctime, c, rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Physical Execution Plan ==
{
@@ -3034,7 +3034,7 @@ Calc(select=[a])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3101,7 +3101,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
@@ -3109,15 +3109,15 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3184,7 +3184,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Optimized Execution Plan ==
Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
@@ -3192,7 +3192,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, a, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])
== Physical Execution Plan ==
{
@@ -3200,7 +3200,7 @@ Calc(select=[b, window_start, window_end, EXPR$3, EXPR$4])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, rowtime]]], fields=[a, b, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3501,14 +3501,14 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
: +- Exchange(distribution=[hash[a]])
: +- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, window_start, window_end, cnt, uv])
+- GlobalWindowAggregate(groupBy=[a], window=[TUMBLE(slice_end=[$slice_end], size=[15 min])], select=[a, COUNT(count1$0) AS cnt, COUNT(distinct$0 count$1) AS uv, start('w$) AS window_start, end('w$) AS window_end, rowtime('w$) AS window_time])
+- Exchange(distribution=[hash[a]])
+- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Optimized Execution Plan ==
Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
@@ -3519,22 +3519,22 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
: +- Exchange(distribution=[hash[a]])
: +- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, window_start, window_end, cnt, uv])
+- GlobalWindowAggregate(groupBy=[a], window=[TUMBLE(slice_end=[$slice_end], size=[15 min])], select=[a, COUNT(count1$0) AS cnt, COUNT(distinct$0 count$1) AS uv, start('w$) AS window_start, end('w$) AS window_end, rowtime('w$) AS window_time])
+- Exchange(distribution=[hash[a]])
+- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Physical Execution Plan ==
{
"nodes" : [ {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3582,9 +3582,9 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
} ]
}, {
"id" : ,
- "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "type" : "Source: TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"pact" : "Data Source",
- "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "contents" : "TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3691,14 +3691,14 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
: +- Exchange(distribution=[hash[a]])
: +- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, window_start, window_end, cnt, uv])
+- GlobalWindowAggregate(groupBy=[a], window=[TUMBLE(slice_end=[$slice_end], size=[15 min])], select=[a, COUNT(count1$0) AS cnt, COUNT(distinct$0 count$1) AS uv, start('w$) AS window_start, end('w$) AS window_end, rowtime('w$) AS window_time])
+- Exchange(distribution=[hash[a]])
+- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Optimized Execution Plan ==
Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
@@ -3709,14 +3709,14 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
: +- Exchange(distribution=[hash[a]])
: +- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, window_start, window_end, cnt, uv])
+- GlobalWindowAggregate(groupBy=[a], window=[TUMBLE(slice_end=[$slice_end], size=[15 min])], select=[a, COUNT(count1$0) AS cnt, COUNT(distinct$0 count$1) AS uv, start('w$) AS window_start, end('w$) AS window_end, rowtime('w$) AS window_time])
+- Exchange(distribution=[hash[a]])
+- LocalWindowAggregate(groupBy=[a], window=[TUMBLE(time_col=[rowtime], size=[15 min])], select=[a, COUNT(*) AS count1$0, COUNT(distinct$0 c) AS count$1, DISTINCT(c) AS distinct$0, slice_end('w$) AS $slice_end])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[(rowtime - 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])
== Physical Execution Plan ==
{
@@ -3724,7 +3724,7 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
"id" : ,
"type" : "Source: MyTable[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"parallelism" : 1
}, {
"id" : ,
@@ -3774,7 +3774,7 @@ Calc(select=[a, window_start, window_end, cnt, uv, a0, cnt0, uv0])
"id" : ,
"type" : "Source: MyTable2[]",
"pact" : "Data Source",
- "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])",
+ "contents" : "[]:TableSourceScan(table=[[default_catalog, default_database, MyTable2, project=[a, c, rowtime]]], fields=[a, c, rowtime])",
"parallelism" : 1
}, {
"id" : ,
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testChainingPythonAsyncFunctions.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testChainingPythonAsyncFunctions.out
index 0bfb511f339..9aa13acf137 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testChainingPythonAsyncFunctions.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testChainingPythonAsyncFunctions.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testMultiplePythonAsyncFunctions.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testMultiplePythonAsyncFunctions.out
index 2122f1b8917..218491eaba8 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testMultiplePythonAsyncFunctions.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testMultiplePythonAsyncFunctions.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncCalc.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncCalc.out
index 8d63feefe0e..9d78c28b2a0 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncCalc.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncCalc.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-python-async-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionInWhereClause.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionInWhereClause.out
index 1eba5bfd689..fa06e984135 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionInWhereClause.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionInWhereClause.out
@@ -35,14 +35,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithJavaFunction.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithJavaFunction.out
index 20e54791a34..5c2c8975562 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithJavaFunction.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithJavaFunction.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-python-async-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithSyncPythonFunction.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithSyncPythonFunction.out
index 16cb93ff195..24132fd44e3 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithSyncPythonFunction.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonAsyncCalcJsonPlanTest_jsonplan/testPythonAsyncFunctionMixedWithSyncPythonFunction.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonCalc.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonCalc.out
index 989225dbed2..678e83a5047 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonCalc.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonCalc.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-python-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonFunctionInWhereClause.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonFunctionInWhereClause.out
index 11a1628fbca..3def935ce82 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonFunctionInWhereClause.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest_jsonplan/testPythonFunctionInWhereClause.out
@@ -35,14 +35,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 1 ] ],
"producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` BIGINT, `b` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`a` BIGINT, `b` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest_jsonplan/tesPythonAggCallsWithGroupBy.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest_jsonplan/tesPythonAggCallsWithGroupBy.out
index fd7538d2991..635bf68e2ba 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest_jsonplan/tesPythonAggCallsWithGroupBy.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest_jsonplan/tesPythonAggCallsWithGroupBy.out
@@ -32,14 +32,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 0 ], [ 2 ] ],
"producedType" : "ROW<`b` INT NOT NULL, `a` INT NOT NULL, `c` INT NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`b` INT NOT NULL, `a` INT NOT NULL, `c` INT NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`b` INT NOT NULL, `a` INT NOT NULL, `c` INT NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, a, c], metadata=[]]], fields=[b, a, c])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, a, c]]], fields=[b, a, c])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedNonPartitionedRangeOver.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedNonPartitionedRangeOver.out
index 670a374ed8d..3123a0b24e7 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedNonPartitionedRangeOver.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedNonPartitionedRangeOver.out
@@ -63,14 +63,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 2 ], [ 0 ], [ 3 ] ],
"producedType" : "ROW<`c` INT NOT NULL, `a` INT, `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`c` INT NOT NULL, `a` INT, `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`c` INT NOT NULL, `a` INT, `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, rowtime], metadata=[]]], fields=[c, a, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, a, rowtime]]], fields=[c, a, rowtime])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRangeOver.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRangeOver.out
index 6cd81cf7c4b..4c9c7c85363 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRangeOver.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRangeOver.out
@@ -63,14 +63,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 2 ], [ 3 ] ],
"producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime.out
index 87db9c2ee91..10af7f242d9 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime.out
@@ -63,14 +63,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 2 ], [ 3 ] ],
"producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])"
}, {
"id" : 2,
"type" : "stream-exec-watermark-assigner_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeUnboundedPartitionedRangeOver.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeUnboundedPartitionedRangeOver.out
index 52a537df698..60095e85c8f 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeUnboundedPartitionedRangeOver.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testProcTimeUnboundedPartitionedRangeOver.out
@@ -63,14 +63,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 2 ], [ 3 ] ],
"producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])"
}, {
"id" : 2,
"type" : "stream-exec-calc_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testRowTimeBoundedPartitionedRowsOver.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testRowTimeBoundedPartitionedRowsOver.out
index b38d92f5b80..11c297a5600 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testRowTimeBoundedPartitionedRowsOver.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest_jsonplan/testRowTimeBoundedPartitionedRowsOver.out
@@ -63,14 +63,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 0 ], [ 2 ], [ 3 ] ],
"producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)> NOT NULL"
} ]
},
"outputType" : "ROW<`a` INT, `c` INT NOT NULL, `rowtime` TIMESTAMP(3)>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, rowtime]]], fields=[a, c, rowtime])"
}, {
"id" : 2,
"type" : "stream-exec-watermark-assigner_1",
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.xml
index aa0a43e59b2..8126119b1a6 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.xml
@@ -36,7 +36,7 @@ LogicalProject(a=[$0], b=[$1], c=[$2], c0=[$9])
Calc(select=[a, b, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, c, a0, c0], build=[right])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
+- Reused(reference_id=[1])
@@ -66,7 +66,7 @@ Calc(select=[a, b, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
+- Reused(reference_id=[1])
@@ -94,7 +94,7 @@ Calc(select=[a, b, c])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, a0, c], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
+- Reused(reference_id=[1])
@@ -124,7 +124,7 @@ Calc(select=[a, b, c])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, a0, c], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
+- Reused(reference_id=[1])
@@ -154,7 +154,7 @@ Calc(select=[a, nested_i AS i, nested_j AS j])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, nested_i, a0, nested_j], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, nested_i])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested_i, nested_j], metadata=[]]], fields=[a, nested_i, nested_j])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested_i, nested_j]]], fields=[a, nested_i, nested_j])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, nested_j])
+- Reused(reference_id=[1])
@@ -186,7 +186,7 @@ Calc(select=[a, i, j])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, i, a0, j], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, nested.i AS i])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, c], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested.s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, nested, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, c], watermark=[-(TO_TIMESTAMP(c, nested.s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, nested, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, nested.j AS j])
+- Reused(reference_id=[1])
@@ -215,7 +215,7 @@ LogicalProject(a=[$0], i=[$1], i0=[$3])
Calc(select=[a, nested_i AS i, nested_i0 AS i0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, nested_i, a0, nested_i0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested_i], metadata=[]]], fields=[a, nested_i])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested_i]]], fields=[a, nested_i])(reuse_id=[1])
+- Exchange(distribution=[hash[a]], shuffle_mode=[BATCH])
+- Reused(reference_id=[1])
]]>
@@ -246,7 +246,7 @@ Calc(select=[a, i, i0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, i, a0, i0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])(reuse_id=[1])
: +- Calc(select=[a, nested.i AS i])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, c], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested.s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, nested, c])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, c], watermark=[-(TO_TIMESTAMP(c, nested.s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, nested, c])
+- Reused(reference_id=[1])
]]>
</Resource>
@@ -273,7 +273,7 @@ LogicalProject(a=[$0], i=[$1], a0=[$2], nested=[$3])
HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, nested_i, a0, nested], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, nested_i])
-: +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, nested_i], metadata=[]]], fields=[a, nested, nested_i])(reuse_id=[1])
+: +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, nested_i]]], fields=[a, nested, nested_i])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, nested])
+- Reused(reference_id=[1])
@@ -304,7 +304,7 @@ LogicalProject(a=[$0], i=[$1], a0=[$2], nested=[$3])
Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, i, a0, nested], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, nested.i AS i])
-: +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, c], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested.s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, nested, c])(reuse_id=[1])
+: +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, nested, c], watermark=[-(TO_TIMESTAMP(c, nested.s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, nested, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, nested])
+- Reused(reference_id=[1])
@@ -335,7 +335,7 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[=(b, 1:BIGINT)], project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{filterable-fields=b}]]])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[=(b, 1:BIGINT)], project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{filterable-fields=b}]]])(reuse_id=[1])
+- Exchange(distribution=[hash[a]], shuffle_mode=[BATCH])
+- Reused(reference_id=[1])
]]>
@@ -368,7 +368,7 @@ Calc(select=[a, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])(reuse_id=[1])
: +- Calc(select=[a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[=(b, 1:BIGINT)]]], fields=[a, b, c, nested_s], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[=(b, 1:BIGINT)]]], fields=[a, b, c, nested_s], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+- Reused(reference_id=[1])
]]>
</Resource>
@@ -393,7 +393,7 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])(reuse_id=[1])
+- Exchange(distribution=[hash[a]], shuffle_mode=[BATCH])
+- Reused(reference_id=[1])
]]>
@@ -422,7 +422,7 @@ Calc(select=[a, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])(reuse_id=[1])
: +- Calc(select=[a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+- Reused(reference_id=[1])
]]>
</Resource>
@@ -520,7 +520,7 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, CAST('1' AS VARCHAR(2147483647)) AS c, CAST('1' AS VARCHAR(2147483647)) AS c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, a0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, partitions=[{c=1}], project=[a], metadata=[]]], fields=[a], hints=[[[OPTIONS options:{partition-list=c:1;c:2}]]])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, partitions=[{c=1}], project=[a]]], fields=[a], hints=[[[OPTIONS options:{partition-list=c:1;c:2}]]])(reuse_id=[1])
+- Exchange(distribution=[hash[a]], shuffle_mode=[BATCH])
+- Reused(reference_id=[1])
]]>
@@ -555,7 +555,7 @@ Calc(select=[a, c, b])
: +- GroupWindowAggregate(window=[TumblingGroupWindow('w$, rtime, 10000)], select=[MIN(a) AS a, MIN(c) AS c])
: +- Exchange(distribution=[single])
: +- Calc(select=[rtime, a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, W_T, project=[a, b, c, rtime], metadata=[], watermark=[-(rtime, 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, rtime])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, W_T, project=[a, b, c, rtime], watermark=[-(rtime, 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, rtime])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- GroupWindowAggregate(window=[TumblingGroupWindow('w$, rtime, 10000)], select=[MIN(a) AS a, MIN(b) AS b])
+- Exchange(distribution=[single])
@@ -584,9 +584,9 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=10}]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=10}]]])
]]>
</Resource>
</TestCase>
@@ -613,10 +613,10 @@ Calc(select=[a, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=10}]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=10}]]])
]]>
</Resource>
</TestCase>
@@ -642,7 +642,7 @@ Calc(select=[a, b, c])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, a0, c], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, (b + 1) AS b])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
+- Reused(reference_id=[1])
@@ -673,7 +673,7 @@ Calc(select=[a, b, c])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, a0, c], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, (b + 1) AS b])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
+- Reused(reference_id=[1])
@@ -704,9 +704,9 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[=(b, 2:BIGINT)], project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[=(b, 2:BIGINT)], project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[=(b, 1:BIGINT)], project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[=(b, 1:BIGINT)], project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{filterable-fields=b}]]])
]]>
</Resource>
</TestCase>
@@ -737,10 +737,10 @@ Calc(select=[a, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[=(b, 2:BIGINT)]]], fields=[a, b, c, nested_s], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[=(b, 2:BIGINT)]]], fields=[a, b, c, nested_s], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[=(b, 1:BIGINT)]]], fields=[a, b, c, nested_s], hints=[[[OPTIONS options:{filterable-fields=b}]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[=(b, 1:BIGINT)]]], fields=[a, b, c, nested_s], hints=[[[OPTIONS options:{filterable-fields=b}]]])
]]>
</Resource>
</TestCase>
@@ -769,7 +769,7 @@ Calc(select=[a, CAST(2 AS BIGINT) AS b, c])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, a0, c], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a], where=[(b = 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c], where=[(b = 3)])
+- Reused(reference_id=[1])
@@ -803,7 +803,7 @@ Calc(select=[a, CAST(2 AS BIGINT) AS b, c])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, a0, c], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a], where=[(b = 2)])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic], filter=[]]], fields=[a, b, c, nested_s])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c], where=[(b = 3)])
+- Reused(reference_id=[1])
@@ -830,9 +830,9 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -859,10 +859,10 @@ Calc(select=[a, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s], hints=[[[OPTIONS options:{source.num-element-to-skip=1}]]])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s])
]]>
</Resource>
</TestCase>
@@ -962,7 +962,7 @@ Calc(select=[a, b, metadata_1, metadata_2, c, metadata_20])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, metadata_2, a0, c, metadata_20], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1, metadata_2])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1, metadata_2], metadata=[]]], fields=[a, b, c, metadata_1, metadata_2])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1, metadata_2]]], fields=[a, b, c, metadata_1, metadata_2])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_2])
+- Reused(reference_id=[1])
@@ -992,7 +992,7 @@ Calc(select=[a, b, metadata_1, metadata_2, c, metadata_20])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, metadata_2, a0, c, metadata_20], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1, metadata_2])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1, metadata_2], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1, metadata_2])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1, metadata_2], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1, metadata_2])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_2])
+- Reused(reference_id=[1])
@@ -1020,7 +1020,7 @@ Calc(select=[a, b, metadata_1, c, metadata_2])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, a0, c, metadata_2], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1, metadata_2], metadata=[]]], fields=[a, b, c, metadata_1, metadata_2])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1, metadata_2]]], fields=[a, b, c, metadata_1, metadata_2])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_2])
+- Reused(reference_id=[1])
@@ -1050,7 +1050,7 @@ Calc(select=[a, b, metadata_1, c, metadata_2])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, a0, c, metadata_2], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1, metadata_2], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1, metadata_2])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1, metadata_2], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1, metadata_2])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_2])
+- Reused(reference_id=[1])
@@ -1078,7 +1078,7 @@ Calc(select=[a, b, metadata_1, c, metadata_10])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, a0, c, metadata_10], build=[left])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1], metadata=[]]], fields=[a, b, c, metadata_1])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1]]], fields=[a, b, c, metadata_1])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_1])
+- Reused(reference_id=[1])
@@ -1108,7 +1108,7 @@ Calc(select=[a, b, metadata_1, c, metadata_10])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, a0, c, metadata_10], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_1])
+- Reused(reference_id=[1])
@@ -1136,7 +1136,7 @@ Calc(select=[a, b, metadata_1, compute_metadata, c, metadata_2])
+- MultipleInput(readOrder=[1,0], members=[\nHashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, compute_metadata, a0, c, metadata_2], build=[left])\n:- Calc(select=[a, b, metadata_1, (metadata_1 * 2) AS compute_metadata])\n: +- [#2] Exchange(distribution=[hash[a]])\n+- [#1] Exchange(distribution=[hash[a]])\n])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, c, metadata_2])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1, metadata_2], metadata=[]]], fields=[a, b, c, metadata_1, metadata_2])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, metadata_1, metadata_2]]], fields=[a, b, c, metadata_1, metadata_2])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, metadata_1])
+- Reused(reference_id=[1])
@@ -1166,7 +1166,7 @@ Calc(select=[a, b, metadata_1, compute_metadata, c, metadata_2])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, b, metadata_1, compute_metadata, a0, c, metadata_2], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, metadata_1, (metadata_1 * 2) AS compute_metadata])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1, metadata_2], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1, metadata_2])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, nested_s, metadata_1, metadata_2], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, c, nested_s, metadata_1, metadata_2])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, metadata_2])
+- Reused(reference_id=[1])
@@ -1197,9 +1197,9 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, CAST('1' AS VARCHAR(2147483647)) AS c, CAST('2' AS VARCHAR(2147483647)) AS c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, a0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, partitions=[{c=1}], project=[a], metadata=[]]], fields=[a], hints=[[[OPTIONS options:{partition-list=c:1;c:2}]]])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, partitions=[{c=1}], project=[a]]], fields=[a], hints=[[[OPTIONS options:{partition-list=c:1;c:2}]]])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, partitions=[{c=2}], project=[a], metadata=[]]], fields=[a], hints=[[[OPTIONS options:{partition-list=c:1;c:2}]]])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, partitions=[{c=2}], project=[a]]], fields=[a], hints=[[[OPTIONS options:{partition-list=c:1;c:2}]]])
]]>
</Resource>
</TestCase>
@@ -1223,7 +1223,7 @@ LogicalProject(a=[$0], c=[$2], c0=[$9])
Calc(select=[a, c, c0])
+- HashJoin(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], build=[left])
:- Exchange(distribution=[hash[a]])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]], shuffle_mode=[BATCH])
+- Reused(reference_id=[1])
]]>
@@ -1252,7 +1252,7 @@ Calc(select=[a, c, c0])
+- Join(joinType=[InnerJoin], where=[(a = a0)], select=[a, c, a0, c0], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])(reuse_id=[1])
: +- Calc(select=[a, c])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], metadata=[], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c, nested_s], watermark=[-(TO_TIMESTAMP(c, nested_s), 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, c, nested_s])
+- Reused(reference_id=[1])
]]>
</Resource>
@@ -1393,7 +1393,7 @@ LogicalSink(table=[default_catalog.default_database.MySinkTs], fields=[a, ts])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, MyTableWatermark, project=[a, b, ts_ltz], metadata=[], watermark=[-(ts_ltz, 600000:INTERVAL MINUTE)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, ts_ltz])(reuse_id=[1])
+TableSourceScan(table=[[default_catalog, default_database, MyTableWatermark, project=[a, b, ts_ltz], watermark=[-(ts_ltz, 600000:INTERVAL MINUTE)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, ts_ltz])(reuse_id=[1])
Sink(table=[default_catalog.default_database.MySinkTs], fields=[a, ts_ltz])
+- Calc(select=[a, ts_ltz])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ShuffleModePlanOptimizeTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ShuffleModePlanOptimizeTest.xml
index 8f7d724122e..4c4b2d1057f 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ShuffleModePlanOptimizeTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/ShuffleModePlanOptimizeTest.xml
@@ -52,12 +52,12 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- Calc(select=[0 AS $f0])
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[right])
: :- Exchange(distribution=[hash[fact_date_sk]])
-: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
: : :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : : +- Calc(select=[dim_date_sk], where=[(price < 400)])(reuse_id=[1])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])(reuse_id=[2])
-: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[price, dim_date_sk]]], fields=[price, dim_date_sk])(reuse_id=[2])
+: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- Reused(reference_id=[1])
:- Exchange(distribution=[broadcast])
@@ -68,7 +68,7 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[left])
: :- Exchange(distribution=[hash[fact_date_sk]])
: : +- Calc(select=[fact_date_sk], where=[(price < 100)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- Calc(select=[dim_date_sk])
: +- Reused(reference_id=[2])
@@ -78,12 +78,12 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[right])
:- Exchange(distribution=[hash[fact_date_sk]])
- : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+ : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
: :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- Calc(select=[dim_date_sk], where=[(price < 200)])(reuse_id=[3])
: : +- Reused(reference_id=[2])
- : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+ : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Reused(reference_id=[3])
]]>
@@ -125,12 +125,12 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- Calc(select=[0 AS $f0])
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[right])
: :- Exchange(distribution=[hash[fact_date_sk]])
-: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
: : :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : : +- Calc(select=[dim_date_sk], where=[(price < 400)])(reuse_id=[1])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])(reuse_id=[2])
-: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[price, dim_date_sk]]], fields=[price, dim_date_sk])(reuse_id=[2])
+: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]], shuffle_mode=[BATCH])
: +- Reused(reference_id=[1])
:- Exchange(distribution=[broadcast])
@@ -141,7 +141,7 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[left])
: :- Exchange(distribution=[hash[fact_date_sk]])
: : +- Calc(select=[fact_date_sk], where=[(price < 100)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- Calc(select=[dim_date_sk])
: +- Exchange(distribution=[any], shuffle_mode=[BATCH])
@@ -152,12 +152,12 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[right])
:- Exchange(distribution=[hash[fact_date_sk]])
- : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+ : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
: :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- Calc(select=[dim_date_sk], where=[(price < 200)])(reuse_id=[3])
: : +- Reused(reference_id=[2])
- : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+ : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]], shuffle_mode=[BATCH])
+- Reused(reference_id=[3])
]]>
@@ -199,12 +199,12 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- Calc(select=[0 AS $f0])
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[right])
: :- Exchange(distribution=[hash[fact_date_sk]])
-: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
: : :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : : +- Calc(select=[dim_date_sk], where=[(price < 400)])(reuse_id=[1])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])(reuse_id=[2])
-: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[price, dim_date_sk]]], fields=[price, dim_date_sk])(reuse_id=[2])
+: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]], shuffle_mode=[BATCH])
: +- Reused(reference_id=[1])
:- Exchange(distribution=[broadcast])
@@ -215,7 +215,7 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[left])
: :- Exchange(distribution=[hash[fact_date_sk]])
: : +- Calc(select=[fact_date_sk], where=[(price < 100)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- Calc(select=[dim_date_sk])
: +- Exchange(distribution=[any], shuffle_mode=[BATCH])
@@ -226,12 +226,12 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
+- Calc(select=[0 AS $f0])
+- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[right])
:- Exchange(distribution=[hash[fact_date_sk]])
- : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+ : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
: :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- Calc(select=[dim_date_sk], where=[(price < 200)])(reuse_id=[3])
: : +- Reused(reference_id=[2])
- : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+ : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk]]], fields=[fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]], shuffle_mode=[BATCH])
+- Reused(reference_id=[3])
]]>
@@ -274,9 +274,9 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[left])
: :- Exchange(distribution=[hash[fact_date_sk]])
: : +- Calc(select=[fact_date_sk], where=[(price < 400)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])(reuse_id=[1])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])(reuse_id=[1])
: +- Exchange(distribution=[hash[dim_date_sk]])(reuse_id=[2])
-: +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[dim_date_sk], metadata=[]]], fields=[dim_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[dim_date_sk]]], fields=[dim_date_sk])
:- Exchange(distribution=[broadcast])
: +- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS c1])
: +- Exchange(distribution=[single])
@@ -336,9 +336,9 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[left])
: :- Exchange(distribution=[hash[fact_date_sk]])
: : +- Calc(select=[fact_date_sk], where=[(price < 400)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])(reuse_id=[1])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])(reuse_id=[1])
: +- Exchange(distribution=[hash[dim_date_sk]])(reuse_id=[2])
-: +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[dim_date_sk], metadata=[]]], fields=[dim_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[dim_date_sk]]], fields=[dim_date_sk])
:- Exchange(distribution=[broadcast])
: +- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS c1])
: +- Exchange(distribution=[single])
@@ -398,9 +398,9 @@ MultipleInput(readOrder=[0,0,1], members=[\nNestedLoopJoin(joinType=[InnerJoin],
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[fact_date_sk, dim_date_sk], build=[left])
: :- Exchange(distribution=[hash[fact_date_sk]])
: : +- Calc(select=[fact_date_sk], where=[(price < 400)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])(reuse_id=[1])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])(reuse_id=[1])
: +- Exchange(distribution=[hash[dim_date_sk]])(reuse_id=[2])
-: +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[dim_date_sk], metadata=[]]], fields=[dim_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[dim_date_sk]]], fields=[dim_date_sk])
:- Exchange(distribution=[broadcast])
: +- HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS c1])
: +- Exchange(distribution=[single])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.xml
index 6888a71d7e1..c41077ca0dc 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.xml
@@ -40,7 +40,7 @@ NestedLoopJoin(joinType=[LeftAntiJoin], where=[$f0], select=[id, name, amount, p
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_MIN(i) AS min$0])
+- Calc(select=[true AS i], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price], metadata=[]]], fields=[price])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price]]], fields=[price])
]]>
</Resource>
</TestCase>
@@ -65,7 +65,7 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk1, dim_date_sk)], select=[id
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
+- Exchange(distribution=[hash[fact_date_sk1]])
+- Calc(select=[fact_date_sk AS fact_date_sk1, +(price, 1) AS price1], where=[>(+(price, 1), 200)])
- +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])
+ +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])
+- DynamicFilteringDataCollector(fields=[dim_date_sk])
+- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
+- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
@@ -97,12 +97,12 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- LocalHashAggregate(groupBy=[dim_date_sk], select=[dim_date_sk, Partial_SUM(price) AS sum$0])
: +- Calc(select=[price, dim_date_sk], where=[<(price, 500)])
-: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
+- HashAggregate(isMerge=[true], groupBy=[dim_date_sk], select=[dim_date_sk, Final_SUM(sum$0) AS EXPR$1])
+- Exchange(distribution=[hash[dim_date_sk]])
+- LocalHashAggregate(groupBy=[dim_date_sk], select=[dim_date_sk, Partial_SUM(price) AS sum$0])
+- Calc(select=[price, dim_date_sk], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
</TestCase>
@@ -168,12 +168,12 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part]], fields=[id, name, amount, price, fact_date_sk])
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- Calc(select=[+(dim_date_sk, 1) AS dim_date_sk, price], where=[SEARCH(price, Sarg[(300..500)])])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- Exchange(distribution=[hash[id]])
: +- TableSourceScan(table=[[testCatalog, test_database, item]], fields=[id, amount, price])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[+(dim_date_sk, 1) AS dim_date_sk, price], where=[SEARCH(price, Sarg[(300..500)])])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
</TestCase>
@@ -200,7 +200,7 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[fac
: +- HashJoin(joinType=[InnerJoin], where=[=(id, id0)], select=[fact_date_sk, id, id0, amount, price], build=[left])
: :- Exchange(distribution=[hash[id]])
: : +- Calc(select=[+(fact_date_sk, 1) AS fact_date_sk, id])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk, id], metadata=[]]], fields=[fact_date_sk, id])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk, id]]], fields=[fact_date_sk, id])
: +- Exchange(distribution=[hash[id]])
: +- TableSourceScan(table=[[testCatalog, test_database, item]], fields=[id, amount, price])
+- Exchange(distribution=[hash[dim_date_sk]])
@@ -265,20 +265,20 @@ LogicalProject(id=[$0], price=[$1], amount=[$2])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, price, amount])
-+- MultipleInput(readOrder=[0,0,0,1,0,1], members=[\nHashJoin(joinType=[InnerJoin], where=[(amount = id0)], select=[id, price, amount, id0], isBroadcast=[true], build=[right])\n:- Calc(select=[id, price, amount])\n: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[id, price, amount, fact_date_sk, dim_date_sk], isBroadcast=[true], build=[right])\n: :- Union(all=[true], union=[id, price, amount, fact_date_sk])\n: : :- OrderEnforcer\n: : : :- [ [...]
++- MultipleInput(readOrder=[0,0,0,1,0,1], members=[\nHashJoin(joinType=[InnerJoin], where=[(amount = id0)], select=[id, price, amount, id0], isBroadcast=[true], build=[right])\n:- Calc(select=[id, price, amount])\n: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[id, price, amount, fact_date_sk, dim_date_sk], isBroadcast=[true], build=[right])\n: :- Union(all=[true], union=[id, price, amount, fact_date_sk])\n: : :- OrderEnforcer\n: : : :- [ [...]
:- Exchange(distribution=[broadcast])
: +- Calc(select=[id], where=[(amount < 10)])(reuse_id=[2])
- : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[id, amount, price, dim_date_sk], metadata=[]]], fields=[id, amount, price, dim_date_sk])(reuse_id=[1])
+ : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[id, amount, price, dim_date_sk]]], fields=[id, amount, price, dim_date_sk])(reuse_id=[1])
:- Exchange(distribution=[broadcast])
: +- Calc(select=[dim_date_sk], where=[SEARCH(price, Sarg[(300..500)])])
: +- Reused(reference_id=[1])
:- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: +- DynamicFilteringDataCollector(fields=[id])(reuse_id=[3])
: +- Reused(reference_id=[2])
- :- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, price, amount, fact_date_sk], metadata=[]]], fields=[id, price, amount, fact_date_sk])
+ :- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, price, amount, fact_date_sk]]], fields=[id, price, amount, fact_date_sk])
:- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: +- Reused(reference_id=[3])
- +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part2, project=[id, price, amount, fact_date_sk], metadata=[]]], fields=[id, price, amount, fact_date_sk])
+ +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part2, project=[id, price, amount, fact_date_sk]]], fields=[id, price, amount, fact_date_sk])
]]>
</Resource>
</TestCase>
@@ -408,15 +408,15 @@ Union(all=[true], union=[id, price, amount])
:- Calc(select=[id, price, amount])
: +- HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[id, amount, price, fact_date_sk, dim_date_sk], build=[right])
: :- Exchange(distribution=[hash[fact_date_sk]])
-: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])\n])
+: : +- MultipleInput(members=[\nOrderEnforcer\n:- [#1] Exchange(distribution=[broadcast], shuffle_mode=[BATCH])\n+- [#2] DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])\n])
: : :- Exchange(distribution=[broadcast], shuffle_mode=[BATCH])
: : : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : : +- Calc(select=[dim_date_sk], where=[(price < 500)])(reuse_id=[1])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
-: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
+: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- Reused(reference_id=[1])
-+- TableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, price, amount], metadata=[]]], fields=[id, price, amount])
++- TableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, price, amount]]], fields=[id, price, amount])
]]>
</Resource>
</TestCase>
@@ -447,7 +447,7 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk1, dim_date_sk)], select=[id
: +- Calc(select=[id, name, amount, price, price0, fact_date_sk])
: +- HashJoin(joinType=[InnerJoin], where=[=(id, id0)], select=[id, name, price, fact_date_sk, id0, amount, price0], build=[right])
: :- Exchange(distribution=[hash[id]])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, name, price, fact_date_sk], metadata=[]]], fields=[id, name, price, fact_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, name, price, fact_date_sk]]], fields=[id, name, price, fact_date_sk])
: +- Exchange(distribution=[hash[id]])
: +- TableSourceScan(table=[[testCatalog, test_database, item]], fields=[id, amount, price])
+- Exchange(distribution=[hash[dim_date_sk]])
@@ -483,12 +483,12 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[fac
: +- Calc(select=[fact_date_sk, amount, price])
: +- HashJoin(joinType=[InnerJoin], where=[=(id, id0)], select=[id, price, fact_date_sk, id0, amount], build=[right])
: :- Exchange(distribution=[hash[id]])
-: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, price, fact_date_sk], metadata=[]]], fields=[id, price, fact_date_sk])
+: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[id, price, fact_date_sk]]], fields=[id, price, fact_date_sk])
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- Calc(select=[id, male, amount, price, dim_date_sk], where=[SEARCH(price, Sarg[(300..500)])])
: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
: +- Exchange(distribution=[hash[id]])
-: +- TableSourceScan(table=[[testCatalog, test_database, item, project=[id, amount], metadata=[]]], fields=[id, amount])
+: +- TableSourceScan(table=[[testCatalog, test_database, item, project=[id, amount]]], fields=[id, amount])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[id, male, amount, price, dim_date_sk], where=[SEARCH(price, Sarg[(300..500)])])
+- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
@@ -590,35 +590,35 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- HashJoin(joinType=[LeftSemiJoin], where=[=(price, price0)], select=[id, male, amount, price, dim_date_sk], build=[right])
: : :- Exchange(distribution=[hash[price]])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk], metadata=[]]], fields=[id, male, amount, price, dim_date_sk])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk]]], fields=[id, male, amount, price, dim_date_sk])
: : +- Exchange(distribution=[hash[price]])
: : +- Calc(select=[price])
: : +- NestedLoopJoin(joinType=[InnerJoin], where=[=(amount, $f0)], select=[amount, price, $f0], build=[right], singleRowJoin=[true])
: : :- Calc(select=[amount, price])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk], metadata=[]]], fields=[id, male, amount, price, dim_date_sk])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk]]], fields=[id, male, amount, price, dim_date_sk])
: : +- Exchange(distribution=[broadcast])
: : +- HashAggregate(isMerge=[true], select=[Final_SINGLE_VALUE(value$0, count$1) AS $f0])
: : +- Exchange(distribution=[single])
: : +- LocalHashAggregate(select=[Partial_SINGLE_VALUE(amount) AS (value$0, count$1)])
: : +- Calc(select=[CAST(2000 AS BIGINT) AS amount], where=[=(amount, 2000)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk], metadata=[]]], fields=[id, male, amount, price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk]]], fields=[id, male, amount, price, dim_date_sk])
: +- Exchange(distribution=[hash[id]])
: +- TableSourceScan(table=[[testCatalog, test_database, item]], fields=[id, amount, price])
+- Exchange(distribution=[hash[dim_date_sk]])
+- HashJoin(joinType=[LeftSemiJoin], where=[=(price, price0)], select=[id, male, amount, price, dim_date_sk], build=[right])
:- Exchange(distribution=[hash[price]])
- : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk], metadata=[]]], fields=[id, male, amount, price, dim_date_sk])
+ : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk]]], fields=[id, male, amount, price, dim_date_sk])
+- Exchange(distribution=[hash[price]])
+- Calc(select=[price])
+- NestedLoopJoin(joinType=[InnerJoin], where=[=(amount, $f0)], select=[amount, price, $f0], build=[right], singleRowJoin=[true])
:- Calc(select=[amount, price])
- : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk], metadata=[]]], fields=[id, male, amount, price, dim_date_sk])
+ : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk]]], fields=[id, male, amount, price, dim_date_sk])
+- Exchange(distribution=[broadcast])
+- HashAggregate(isMerge=[true], select=[Final_SINGLE_VALUE(value$0, count$1) AS $f0])
+- Exchange(distribution=[single])
+- LocalHashAggregate(select=[Partial_SINGLE_VALUE(amount) AS (value$0, count$1)])
+- Calc(select=[CAST(2000 AS BIGINT) AS amount], where=[=(amount, 2000)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk], metadata=[]]], fields=[id, male, amount, price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[id, male, amount, price, dim_date_sk]]], fields=[id, male, amount, price, dim_date_sk])
]]>
</Resource>
</TestCase>
@@ -651,12 +651,12 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: :- Exchange(distribution=[hash[id]])
: : +- Union(all=[true], union=[id, fact_date_sk, amount1])
: : :- Calc(select=[id, fact_date_sk, +(amount, 1) AS amount1], where=[=(price, 1)])
-: : : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])
+: : : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])
: : : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : : +- Calc(select=[id, male, amount, price, dim_date_sk], where=[SEARCH(price, Sarg[(300..500)])])
: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
: : +- Calc(select=[id, fact_date_sk, +(amount, 1) AS EXPR$2], where=[=(price, 2)])
-: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])
+: : +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])
: : +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: : +- Calc(select=[id, male, amount, price, dim_date_sk], where=[SEARCH(price, Sarg[(300..500)])])
: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
@@ -938,7 +938,7 @@ NestedLoopJoin(joinType=[InnerJoin], where=[AND(=(fact_date_sk, dim_date_sk), =(
: +- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
+- Calc(select=[fact_date_sk, +(amount, 1) AS amount])
- +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk, amount], metadata=[]]], fields=[fact_date_sk, amount])
+ +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part, project=[fact_date_sk, amount]]], fields=[fact_date_sk, amount])
+- DynamicFilteringDataCollector(fields=[dim_date_sk])
+- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
+- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
@@ -1756,106 +1756,106 @@ MultipleInput(readOrder=[1,0], members=[\nHashJoin(joinType=[InnerJoin], where=[
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :- Union(all=[true], union=[att, filename])
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :- Union(all=[true], union=[att, filename])
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :- Union(all=[true], union=[att, filename])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :- TableSourceScan(table=[[testCatalog, test_database, table0, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[1])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table1, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[2])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table2, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[3])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table3, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[4])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table4, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[5])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table5, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[6])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table6, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[7])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table7, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[8])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table8, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[9])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table9, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[10])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table10, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[11])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table11, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[12])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table12, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[13])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table13, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[14])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table14, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[15])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table15, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[16])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table16, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[17])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table17, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[18])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table18, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[19])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table19, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[20])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table20, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[21])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table21, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[22])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table22, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[23])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table23, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[24])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table24, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[25])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table25, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[26])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table26, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[27])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table27, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[28])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table28, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[29])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table29, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[30])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table30, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[31])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table31, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[32])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table32, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[33])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table33, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[34])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table34, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[35])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table35, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[36])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table36, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[37])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table37, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[38])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table38, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[39])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table39, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[40])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table40, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[41])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table41, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[42])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table42, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[43])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table43, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[44])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table44, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[45])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table45, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[46])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table46, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[47])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table47, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[48])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table48, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[49])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table49, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[50])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table50, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[51])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table51, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[52])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table52, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[53])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table53, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[54])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table54, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[55])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table55, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[56])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table56, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[57])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table57, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[58])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table58, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[59])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table59, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[60])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table60, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[61])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table61, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[62])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table62, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[63])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table63, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[64])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table64, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[65])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table65, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[66])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table66, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[67])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table67, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[68])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table68, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[69])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table69, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[70])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table70, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[71])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table71, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[72])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table72, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[73])
-: : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table73, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[74])
-: : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table74, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[75])
-: : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table75, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[76])
-: : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table76, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[77])
-: : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table77, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[78])
-: : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table78, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[79])
-: : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table79, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[80])
-: : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table80, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[81])
-: : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table81, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[82])
-: : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table82, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[83])
-: : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table83, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[84])
-: : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table84, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[85])
-: : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table85, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[86])
-: : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table86, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[87])
-: : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table87, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[88])
-: : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table88, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[89])
-: : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table89, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[90])
-: : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table90, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[91])
-: : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table91, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[92])
-: : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table92, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[93])
-: : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table93, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[94])
-: : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table94, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[95])
-: : : : : +- TableSourceScan(table=[[testCatalog, test_database, table95, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[96])
-: : : : +- TableSourceScan(table=[[testCatalog, test_database, table96, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[97])
-: : : +- TableSourceScan(table=[[testCatalog, test_database, table97, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[98])
-: : +- TableSourceScan(table=[[testCatalog, test_database, table98, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[99])
-: +- TableSourceScan(table=[[testCatalog, test_database, table99, project=[att, filename], metadata=[]]], fields=[att, filename])(reuse_id=[100])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :- TableSourceScan(table=[[testCatalog, test_database, table0, project=[att, filename]]], fields=[att, filename])(reuse_id=[1])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table1, project=[att, filename]]], fields=[att, filename])(reuse_id=[2])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table2, project=[att, filename]]], fields=[att, filename])(reuse_id=[3])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table3, project=[att, filename]]], fields=[att, filename])(reuse_id=[4])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table4, project=[att, filename]]], fields=[att, filename])(reuse_id=[5])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table5, project=[att, filename]]], fields=[att, filename])(reuse_id=[6])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table6, project=[att, filename]]], fields=[att, filename])(reuse_id=[7])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table7, project=[att, filename]]], fields=[att, filename])(reuse_id=[8])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table8, project=[att, filename]]], fields=[att, filename])(reuse_id=[9])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table9, project=[att, filename]]], fields=[att, filename])(reuse_id=[10])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table10, project=[att, filename]]], fields=[att, filename])(reuse_id=[11])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table11, project=[att, filename]]], fields=[att, filename])(reuse_id=[12])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table12, project=[att, filename]]], fields=[att, filename])(reuse_id=[13])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table13, project=[att, filename]]], fields=[att, filename])(reuse_id=[14])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table14, project=[att, filename]]], fields=[att, filename])(reuse_id=[15])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table15, project=[att, filename]]], fields=[att, filename])(reuse_id=[16])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table16, project=[att, filename]]], fields=[att, filename])(reuse_id=[17])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table17, project=[att, filename]]], fields=[att, filename])(reuse_id=[18])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table18, project=[att, filename]]], fields=[att, filename])(reuse_id=[19])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table19, project=[att, filename]]], fields=[att, filename])(reuse_id=[20])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table20, project=[att, filename]]], fields=[att, filename])(reuse_id=[21])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table21, project=[att, filename]]], fields=[att, filename])(reuse_id=[22])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table22, project=[att, filename]]], fields=[att, filename])(reuse_id=[23])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table23, project=[att, filename]]], fields=[att, filename])(reuse_id=[24])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table24, project=[att, filename]]], fields=[att, filename])(reuse_id=[25])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table25, project=[att, filename]]], fields=[att, filename])(reuse_id=[26])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table26, project=[att, filename]]], fields=[att, filename])(reuse_id=[27])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table27, project=[att, filename]]], fields=[att, filename])(reuse_id=[28])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table28, project=[att, filename]]], fields=[att, filename])(reuse_id=[29])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table29, project=[att, filename]]], fields=[att, filename])(reuse_id=[30])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table30, project=[att, filename]]], fields=[att, filename])(reuse_id=[31])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table31, project=[att, filename]]], fields=[att, filename])(reuse_id=[32])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table32, project=[att, filename]]], fields=[att, filename])(reuse_id=[33])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table33, project=[att, filename]]], fields=[att, filename])(reuse_id=[34])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table34, project=[att, filename]]], fields=[att, filename])(reuse_id=[35])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table35, project=[att, filename]]], fields=[att, filename])(reuse_id=[36])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table36, project=[att, filename]]], fields=[att, filename])(reuse_id=[37])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table37, project=[att, filename]]], fields=[att, filename])(reuse_id=[38])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table38, project=[att, filename]]], fields=[att, filename])(reuse_id=[39])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table39, project=[att, filename]]], fields=[att, filename])(reuse_id=[40])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table40, project=[att, filename]]], fields=[att, filename])(reuse_id=[41])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table41, project=[att, filename]]], fields=[att, filename])(reuse_id=[42])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table42, project=[att, filename]]], fields=[att, filename])(reuse_id=[43])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table43, project=[att, filename]]], fields=[att, filename])(reuse_id=[44])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table44, project=[att, filename]]], fields=[att, filename])(reuse_id=[45])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table45, project=[att, filename]]], fields=[att, filename])(reuse_id=[46])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table46, project=[att, filename]]], fields=[att, filename])(reuse_id=[47])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table47, project=[att, filename]]], fields=[att, filename])(reuse_id=[48])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table48, project=[att, filename]]], fields=[att, filename])(reuse_id=[49])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table49, project=[att, filename]]], fields=[att, filename])(reuse_id=[50])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table50, project=[att, filename]]], fields=[att, filename])(reuse_id=[51])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table51, project=[att, filename]]], fields=[att, filename])(reuse_id=[52])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table52, project=[att, filename]]], fields=[att, filename])(reuse_id=[53])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table53, project=[att, filename]]], fields=[att, filename])(reuse_id=[54])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table54, project=[att, filename]]], fields=[att, filename])(reuse_id=[55])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table55, project=[att, filename]]], fields=[att, filename])(reuse_id=[56])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table56, project=[att, filename]]], fields=[att, filename])(reuse_id=[57])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table57, project=[att, filename]]], fields=[att, filename])(reuse_id=[58])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table58, project=[att, filename]]], fields=[att, filename])(reuse_id=[59])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table59, project=[att, filename]]], fields=[att, filename])(reuse_id=[60])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table60, project=[att, filename]]], fields=[att, filename])(reuse_id=[61])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table61, project=[att, filename]]], fields=[att, filename])(reuse_id=[62])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table62, project=[att, filename]]], fields=[att, filename])(reuse_id=[63])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table63, project=[att, filename]]], fields=[att, filename])(reuse_id=[64])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table64, project=[att, filename]]], fields=[att, filename])(reuse_id=[65])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table65, project=[att, filename]]], fields=[att, filename])(reuse_id=[66])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table66, project=[att, filename]]], fields=[att, filename])(reuse_id=[67])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table67, project=[att, filename]]], fields=[att, filename])(reuse_id=[68])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table68, project=[att, filename]]], fields=[att, filename])(reuse_id=[69])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table69, project=[att, filename]]], fields=[att, filename])(reuse_id=[70])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table70, project=[att, filename]]], fields=[att, filename])(reuse_id=[71])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table71, project=[att, filename]]], fields=[att, filename])(reuse_id=[72])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table72, project=[att, filename]]], fields=[att, filename])(reuse_id=[73])
+: : : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table73, project=[att, filename]]], fields=[att, filename])(reuse_id=[74])
+: : : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table74, project=[att, filename]]], fields=[att, filename])(reuse_id=[75])
+: : : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table75, project=[att, filename]]], fields=[att, filename])(reuse_id=[76])
+: : : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table76, project=[att, filename]]], fields=[att, filename])(reuse_id=[77])
+: : : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table77, project=[att, filename]]], fields=[att, filename])(reuse_id=[78])
+: : : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table78, project=[att, filename]]], fields=[att, filename])(reuse_id=[79])
+: : : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table79, project=[att, filename]]], fields=[att, filename])(reuse_id=[80])
+: : : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table80, project=[att, filename]]], fields=[att, filename])(reuse_id=[81])
+: : : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table81, project=[att, filename]]], fields=[att, filename])(reuse_id=[82])
+: : : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table82, project=[att, filename]]], fields=[att, filename])(reuse_id=[83])
+: : : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table83, project=[att, filename]]], fields=[att, filename])(reuse_id=[84])
+: : : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table84, project=[att, filename]]], fields=[att, filename])(reuse_id=[85])
+: : : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table85, project=[att, filename]]], fields=[att, filename])(reuse_id=[86])
+: : : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table86, project=[att, filename]]], fields=[att, filename])(reuse_id=[87])
+: : : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table87, project=[att, filename]]], fields=[att, filename])(reuse_id=[88])
+: : : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table88, project=[att, filename]]], fields=[att, filename])(reuse_id=[89])
+: : : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table89, project=[att, filename]]], fields=[att, filename])(reuse_id=[90])
+: : : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table90, project=[att, filename]]], fields=[att, filename])(reuse_id=[91])
+: : : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table91, project=[att, filename]]], fields=[att, filename])(reuse_id=[92])
+: : : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table92, project=[att, filename]]], fields=[att, filename])(reuse_id=[93])
+: : : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table93, project=[att, filename]]], fields=[att, filename])(reuse_id=[94])
+: : : : : : +- TableSourceScan(table=[[testCatalog, test_database, table94, project=[att, filename]]], fields=[att, filename])(reuse_id=[95])
+: : : : : +- TableSourceScan(table=[[testCatalog, test_database, table95, project=[att, filename]]], fields=[att, filename])(reuse_id=[96])
+: : : : +- TableSourceScan(table=[[testCatalog, test_database, table96, project=[att, filename]]], fields=[att, filename])(reuse_id=[97])
+: : : +- TableSourceScan(table=[[testCatalog, test_database, table97, project=[att, filename]]], fields=[att, filename])(reuse_id=[98])
+: : +- TableSourceScan(table=[[testCatalog, test_database, table98, project=[att, filename]]], fields=[att, filename])(reuse_id=[99])
+: +- TableSourceScan(table=[[testCatalog, test_database, table99, project=[att, filename]]], fields=[att, filename])(reuse_id=[100])
+- Exchange(distribution=[hash[att]])
+- LocalHashAggregate(groupBy=[att], select=[att, Partial_COUNT(att) AS count$0])
+- Union(all=[true], union=[att])
@@ -3085,7 +3085,7 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk1, dim_date_sk)], select=[id
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
+- Exchange(distribution=[hash[fact_date_sk1]])
+- Calc(select=[+(fact_date_sk, 1) AS fact_date_sk1, +(price, 1) AS price1], where=[>(+(price, 1), 200)])
- +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk], metadata=[]]], fields=[price, fact_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact_part, filter=[], project=[price, fact_date_sk]]], fields=[price, fact_date_sk])
]]>
</Resource>
</TestCase>
@@ -3167,10 +3167,10 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(fact_date_sk, dim_date_sk)], select=[
: +- DynamicFilteringTableSourceScan(table=[[testCatalog, test_database, fact_part]], fields=[id, name, amount, price, fact_date_sk])
: +- DynamicFilteringDataCollector(fields=[dim_date_sk])
: +- Calc(select=[dim_date_sk], where=[<(price, 500)])
-: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[dim_date_sk], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.xml
index 30e6abb2451..22749949dc4 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.xml
@@ -37,7 +37,7 @@ NestedLoopJoin(joinType=[LeftAntiJoin], where=[OR(IS NULL(fact_date_sk), IS NULL
:- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Exchange(distribution=[broadcast])
+- Calc(select=[dim_date_sk], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -46,7 +46,7 @@ MultipleInput(readOrder=[1,0], members=[\nNestedLoopJoin(joinType=[LeftAntiJoin]
:- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Exchange(distribution=[broadcast])
+- Calc(select=[dim_date_sk], where=[(price < 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
</TestCase>
@@ -75,12 +75,12 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[436907])
: : +- Calc(select=[price, dim_date_sk], where=[<(price, 500)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- HashAggregate(isMerge=[false], groupBy=[dim_date_sk], select=[dim_date_sk, SUM(price) AS EXPR$1])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[price, dim_date_sk], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -93,7 +93,7 @@ MultipleInput(readOrder=[1,0], members=[\nHashJoin(joinType=[InnerJoin], where=[
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[436907])
: : +- Calc(select=[price, dim_date_sk], where=[(price < 500)])(reuse_id=[1])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Reused(reference_id=[1])
@@ -126,13 +126,13 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[436907])
: : +- Calc(select=[price, dim_date_sk], where=[<(price, 500)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Calc(select=[dim_date_sk, +($f1, 1) AS sum_price])
+- HashAggregate(isMerge=[false], groupBy=[dim_date_sk], select=[dim_date_sk, SUM(price) AS $f1])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[price, dim_date_sk], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -145,7 +145,7 @@ MultipleInput(readOrder=[1,0], members=[\nHashJoin(joinType=[InnerJoin], where=[
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[436907])
: : +- Calc(select=[price, dim_date_sk], where=[(price < 500)])(reuse_id=[1])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Reused(reference_id=[1])
@@ -181,17 +181,17 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[131072], maxRowCount=[436907])
: : +- Calc(select=[dim_date_sk, amount])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk], metadata=[]]], fields=[amount, price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk]]], fields=[amount, price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- HashJoin(joinType=[InnerJoin], where=[=(dim_date_sk, dim_date_sk0)], select=[dim_date_sk, EXPR$1, dim_date_sk0, EXPR$10], build=[left])
:- HashAggregate(isMerge=[false], groupBy=[dim_date_sk], select=[dim_date_sk, SUM(price) AS EXPR$1])
: +- Exchange(distribution=[hash[dim_date_sk]])
: +- Calc(select=[dim_date_sk, price])
- : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk], metadata=[]]], fields=[amount, price, dim_date_sk])
+ : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk]]], fields=[amount, price, dim_date_sk])
+- HashAggregate(isMerge=[false], groupBy=[dim_date_sk], select=[dim_date_sk, SUM(amount) AS EXPR$1])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[dim_date_sk, amount])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk], metadata=[]]], fields=[amount, price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk]]], fields=[amount, price, dim_date_sk])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -204,7 +204,7 @@ MultipleInput(readOrder=[2,0,1], members=[\nHashJoin(joinType=[InnerJoin], where
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[131072], maxRowCount=[436907])
: : +- Calc(select=[dim_date_sk, amount])(reuse_id=[2])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk], metadata=[]]], fields=[amount, price, dim_date_sk])(reuse_id=[1])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, project=[amount, price, dim_date_sk]]], fields=[amount, price, dim_date_sk])(reuse_id=[1])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
:- Exchange(distribution=[hash[dim_date_sk]])
: +- Calc(select=[dim_date_sk, price])
@@ -437,7 +437,7 @@ HashJoin(joinType=[InnerJoin], where=[=(price, sum_price)], select=[id, male, am
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
+- HashAggregate(isMerge=[false], groupBy=[id, fact_date_sk], select=[id, fact_date_sk, SUM(price) AS sum_price])
+- Exchange(distribution=[hash[id, fact_date_sk]])
- +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price], metadata=[]]], fields=[id, fact_date_sk, price])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price]]], fields=[id, fact_date_sk, price])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -455,7 +455,7 @@ HashJoin(joinType=[InnerJoin], where=[(price = sum_price)], select=[id, male, am
: +- LocalRuntimeFilterBuilder(select=[price], estimatedRowCount=[65536], maxRowCount=[218454])
: +- Reused(reference_id=[1])
+- Exchange(distribution=[hash[id, fact_date_sk]])
- +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price], metadata=[]]], fields=[id, fact_date_sk, price])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price]]], fields=[id, fact_date_sk, price])
]]>
</Resource>
</TestCase>
@@ -490,7 +490,7 @@ Calc(select=[id, male, amount, price, dim_date_sk, fact_date_sk, random])
: +- Calc(select=[id, male, amount, price, dim_date_sk, CAST(amount AS DOUBLE) AS amount0], where=[<(price, 500)])
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
+- Calc(select=[fact_date_sk, RAND(10) AS random])
- +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[fact_date_sk]]], fields=[fact_date_sk])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -501,13 +501,13 @@ Calc(select=[id, male, amount, price, dim_date_sk, fact_date_sk, random])
: +- Calc(select=[id, male, amount, price, dim_date_sk, CAST(amount AS DOUBLE) AS amount0], where=[(price < 500)])(reuse_id=[1])
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
+- Exchange(distribution=[hash[random]])
- +- MultipleInput(readOrder=[0,1], members=[\nRuntimeFilter(select=[random], estimatedFilterRatio=[0.99993896484375])\n:- [#1] Exchange(distribution=[broadcast])\n+- Calc(select=[fact_date_sk, RAND(10) AS random])\n +- [#2] TableSourceScan(table=[[testCatalog, test_database, fact, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])\n])
+ +- MultipleInput(readOrder=[0,1], members=[\nRuntimeFilter(select=[random], estimatedFilterRatio=[0.99993896484375])\n:- [#1] Exchange(distribution=[broadcast])\n+- Calc(select=[fact_date_sk, RAND(10) AS random])\n +- [#2] TableSourceScan(table=[[testCatalog, test_database, fact, project=[fact_date_sk]]], fields=[fact_date_sk])\n])
:- Exchange(distribution=[broadcast])
: +- GlobalRuntimeFilterBuilder(select=[amount0], estimatedRowCount=[65536], maxRowCount=[187246])
: +- Exchange(distribution=[single])
: +- LocalRuntimeFilterBuilder(select=[amount0], estimatedRowCount=[65536], maxRowCount=[187246])
: +- Reused(reference_id=[1])
- +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[fact_date_sk], metadata=[]]], fields=[fact_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[fact_date_sk]]], fields=[fact_date_sk])
]]>
</Resource>
</TestCase>
@@ -1005,7 +1005,7 @@ HashJoin(joinType=[InnerJoin], where=[=(dim_date_sk, fact_date_sk)], select=[id,
: +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: +- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
: +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
- +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price], metadata=[]]], fields=[id, fact_date_sk, price])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price]]], fields=[id, fact_date_sk, price])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -1017,13 +1017,13 @@ HashJoin(joinType=[InnerJoin], where=[(dim_date_sk = fact_date_sk)], select=[id,
+- Exchange(distribution=[hash[fact_date_sk]])
+- HashAggregate(isMerge=[false], groupBy=[id, fact_date_sk], select=[id, fact_date_sk, SUM(price) AS EXPR$2])
+- Exchange(distribution=[hash[id, fact_date_sk]])
- +- MultipleInput(readOrder=[0,1], members=[\nRuntimeFilter(select=[fact_date_sk], estimatedFilterRatio=[0.9999999403953552])\n:- [#1] Exchange(distribution=[broadcast])\n+- [#2] TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price], metadata=[]]], fields=[id, fact_date_sk, price])\n])
+ +- MultipleInput(readOrder=[0,1], members=[\nRuntimeFilter(select=[fact_date_sk], estimatedFilterRatio=[0.9999999403953552])\n:- [#1] Exchange(distribution=[broadcast])\n+- [#2] TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price]]], fields=[id, fact_date_sk, price])\n])
:- Exchange(distribution=[broadcast])
: +- GlobalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: +- Exchange(distribution=[single])
: +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: +- Reused(reference_id=[1])
- +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price], metadata=[]]], fields=[id, fact_date_sk, price])
+ +- TableSourceScan(table=[[testCatalog, test_database, fact, project=[id, fact_date_sk, price]]], fields=[id, fact_date_sk, price])
]]>
</Resource>
</TestCase>
@@ -1108,7 +1108,7 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: : : +- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
: : : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
-: : +- TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])
: +- Calc(select=[id, fact_date_sk, amount], where=[>(price, 600)])
: +- RuntimeFilter(select=[fact_date_sk], estimatedFilterRatio=[0.99993896484375])
: :- Exchange(distribution=[broadcast])
@@ -1117,7 +1117,7 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: : +- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
-: +- TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[id, male, amount, price, dim_date_sk], where=[<(price, 500)])
+- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
@@ -1127,14 +1127,14 @@ HashJoin(joinType=[InnerJoin], where=[=(fact_date_sk, dim_date_sk)], select=[id,
<![CDATA[
HashJoin(joinType=[InnerJoin], where=[(fact_date_sk = dim_date_sk)], select=[id, fact_date_sk, amount1, id0, male, amount, price, dim_date_sk], build=[right])
:- Exchange(distribution=[hash[fact_date_sk]])
-: +- MultipleInput(readOrder=[0,1], members=[\nUnion(all=[true], union=[id, fact_date_sk, amount1])\n:- Calc(select=[id, fact_date_sk, amount AS amount1], where=[(price < 500)])\n: +- RuntimeFilter(select=[fact_date_sk], estimatedFilterRatio=[0.99993896484375])(reuse_id=[1])\n: :- [#1] Exchange(distribution=[broadcast])\n: +- [#2] TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, pr [...]
+: +- MultipleInput(readOrder=[0,1], members=[\nUnion(all=[true], union=[id, fact_date_sk, amount1])\n:- Calc(select=[id, fact_date_sk, amount AS amount1], where=[(price < 500)])\n: +- RuntimeFilter(select=[fact_date_sk], estimatedFilterRatio=[0.99993896484375])(reuse_id=[1])\n: :- [#1] Exchange(distribution=[broadcast])\n: +- [#2] TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_dat [...]
: :- Exchange(distribution=[broadcast])
: : +- GlobalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[218454])
: : +- Calc(select=[id, male, amount, price, dim_date_sk], where=[(price < 500)])(reuse_id=[1])
: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[]]], fields=[id, male, amount, price, dim_date_sk])
-: +- TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk], metadata=[]]], fields=[id, amount, price, fact_date_sk])
+: +- TableSourceScan(table=[[testCatalog, test_database, fact, filter=[], project=[id, amount, price, fact_date_sk]]], fields=[id, amount, price, fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Reused(reference_id=[1])
]]>
@@ -1165,11 +1165,11 @@ HashJoin(joinType=[LeftSemiJoin], where=[=(fact_date_sk, dim_date_sk)], select=[
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[655360])
: : +- Calc(select=[dim_date_sk], where=[<(price, 500)])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Calc(select=[dim_date_sk], where=[<(price, 500)])
- +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+ +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
]]>
</Resource>
<Resource name="optimized exec plan">
@@ -1182,7 +1182,7 @@ HashJoin(joinType=[LeftSemiJoin], where=[(fact_date_sk = dim_date_sk)], select=[
: : +- Exchange(distribution=[single])
: : +- LocalRuntimeFilterBuilder(select=[dim_date_sk], estimatedRowCount=[65536], maxRowCount=[655360])
: : +- Calc(select=[dim_date_sk], where=[(price < 500)])(reuse_id=[1])
-: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk], metadata=[]]], fields=[price, dim_date_sk])
+: : +- TableSourceScan(table=[[testCatalog, test_database, dim, filter=[], project=[price, dim_date_sk]]], fields=[price, dim_date_sk])
: +- TableSourceScan(table=[[testCatalog, test_database, fact]], fields=[id, name, amount, price, fact_date_sk])
+- Exchange(distribution=[hash[dim_date_sk]])
+- Reused(reference_id=[1])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.xml
index 030c173e105..1e4e563d47b 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.xml
@@ -100,7 +100,7 @@ FlinkLogicalJoin(condition=[=($0, $5)], joinType=[inner])
: +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, MyTable]], fields=[a, b, c])
+- FlinkLogicalCalc(select=[id], where=[>(age, 20)])
+- FlinkLogicalSnapshot(period=[$cor0.proctime])
- +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id, age], metadata=[]]], fields=[id, age])
+ +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id, age]]], fields=[id, age])
]]>
</Resource>
</TestCase>
@@ -132,7 +132,7 @@ FlinkLogicalJoin(condition=[=($0, $5)], joinType=[inner])
: +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, MyTable]], fields=[a, b, c])
+- FlinkLogicalCalc(select=[id], where=[>(age, 20)])
+- FlinkLogicalSnapshot(period=[$cor0.proctime])
- +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id, age], metadata=[]]], fields=[id, age])
+ +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id, age]]], fields=[id, age])
]]>
</Resource>
</TestCase>
@@ -160,7 +160,7 @@ FlinkLogicalJoin(condition=[=($0, $5)], joinType=[inner])
:- FlinkLogicalCalc(select=[a, b, c, PROCTIME() AS proctime, TO_TIMESTAMP(FROM_UNIXTIME(c)) AS rowtime])
: +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, MyTable]], fields=[a, b, c])
+- FlinkLogicalSnapshot(period=[$cor0.proctime])
- +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id], metadata=[]]], fields=[id])
+ +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id]]], fields=[id])
]]>
</Resource>
</TestCase>
@@ -190,7 +190,7 @@ FlinkLogicalJoin(condition=[=($0, $5)], joinType=[inner])
: +- FlinkLogicalCalc(select=[a, b, c, PROCTIME() AS proctime, TO_TIMESTAMP(FROM_UNIXTIME(c)) AS rowtime])
: +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, MyTable]], fields=[a, b, c])
+- FlinkLogicalSnapshot(period=[$cor0.proctime])
- +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id], metadata=[]]], fields=[id])
+ +- FlinkLogicalTableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[id]]], fields=[id])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.xml
index ae3eb0f4948..4672381fd66 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.xml
@@ -67,7 +67,7 @@ LogicalProject(id=[$0], nestedName=[$1.nested1.name], nestedSum=[+($3..value, $3
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(id=[$0], nestedName=[$1], nestedSum=[+($2, $3)])
-+- LogicalTableScan(table=[[default_catalog, default_database, NestedTable, project=[id, deepNested_nested1_name, deepNestedWith._.value, deepNestedWith._nested_.value], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, NestedTable, project=[id, deepNested_nested1_name, deepNestedWith._.value, deepNestedWith._nested_.value]]])
]]>
</Resource>
</TestCase>
@@ -207,7 +207,7 @@ LogicalProject(id=[$0], nestedName=[$1.nested1.name], nestedValue=[$2.value], ne
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(id=[$0], nestedName=[$1], nestedValue=[$4], nestedFlag=[$2], nestedNum=[$3])
-+- LogicalTableScan(table=[[default_catalog, default_database, NestedTable, project=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, NestedTable, project=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value]]])
]]>
</Resource>
</TestCase>
@@ -224,7 +224,7 @@ LogicalProject(EXPR$0=[ITEM($2.Mid.data_arr, $0).value], EXPR$1=[ITEM($2.Mid.dat
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(EXPR$0=[ITEM($0, $2).value], EXPR$1=[ITEM($1, _UTF-16LE'item').value])
-+- LogicalTableScan(table=[[default_catalog, default_database, NestedItemTable, project=[Result_Mid_data_arr, Result_Mid_data_map, ID], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, NestedItemTable, project=[Result_Mid_data_arr, Result_Mid_data_map, ID]]])
]]>
</Resource>
</TestCase>
@@ -241,7 +241,7 @@ LogicalProject(EXPR$0=[ITEM($2.Mid.data_arr, 2).value], EXPR$1=[ITEM($2.Mid.data
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(EXPR$0=[ITEM($0.data_arr, 2).value], EXPR$1=[ITEM($0.data_arr, $1).value], EXPR$2=[ITEM($0.data_map, _UTF-16LE'item').value], Mid=[$0])
-+- LogicalTableScan(table=[[default_catalog, default_database, NestedItemTable, project=[Result_Mid, ID], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, NestedItemTable, project=[Result_Mid, ID]]])
]]>
</Resource>
</TestCase>
@@ -258,7 +258,7 @@ LogicalProject(EXPR$0=[ITEM($2.Mid.data_arr, 2).value], data_arr=[$2.Mid.data_ar
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(EXPR$0=[ITEM($0, 2).value], data_arr=[$0])
-+- LogicalTableScan(table=[[default_catalog, default_database, NestedItemTable, project=[Result_Mid_data_arr], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, NestedItemTable, project=[Result_Mid_data_arr]]])
]]>
</Resource>
</TestCase>
@@ -275,7 +275,7 @@ LogicalProject(EXPR$0=[ITEM($5.result, 1).meta.symbol])
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(EXPR$0=[ITEM($0.result, 1).meta.symbol])
-+- LogicalTableScan(table=[[default_catalog, default_database, ItemTable, project=[chart], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, ItemTable, project=[chart]]])
]]>
</Resource>
</TestCase>
@@ -292,7 +292,7 @@ LogicalProject(EXPR$0=[ITEM($2.data_arr, $0).value], EXPR$1=[ITEM($2.data_map, _
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(EXPR$0=[ITEM($0.data_arr, $1).value], EXPR$1=[ITEM($0.data_map, _UTF-16LE'item').value], EXPR$2=[ITEM($2, 1)], EXPR$3=[ITEM($2, $1)], EXPR$4=[ITEM($3, _UTF-16LE'item')])
-+- LogicalTableScan(table=[[default_catalog, default_database, ItemTable, project=[Result, ID, outer_array, outer_map], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, ItemTable, project=[Result, ID, outer_array, outer_map]]])
]]>
</Resource>
</TestCase>
@@ -329,7 +329,7 @@ LogicalProject(id=[$0], EXPR$1=[ITEM($5, _UTF-16LE'e')])
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(id=[$0], EXPR$1=[ITEM($1, _UTF-16LE'e')])
-+- LogicalTableScan(table=[[default_catalog, default_database, NestedTable, project=[id, testMap], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, NestedTable, project=[id, testMap]]])
]]>
</Resource>
</TestCase>
@@ -346,7 +346,7 @@ LogicalProject(a=[$0], EXPR$1=[TRIM(FLAG(BOTH), _UTF-16LE' ', $2)])
<Resource name="optimized rel plan">
<![CDATA[
LogicalProject(a=[$0], EXPR$1=[TRIM(FLAG(BOTH), _UTF-16LE' ', $1)])
-+- LogicalTableScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]])
++- LogicalTableScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]])
]]>
</Resource>
</TestCase>
@@ -433,7 +433,7 @@ LogicalProject(a=[$0], c=[$2])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-LogicalTableScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]])
+LogicalTableScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/SimplifyCoalesceWithEquiJoinConditionRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/SimplifyCoalesceWithEquiJoinConditionRuleTest.xml
index ea49ada9e0c..1b01bc8a89d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/SimplifyCoalesceWithEquiJoinConditionRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/SimplifyCoalesceWithEquiJoinConditionRuleTest.xml
@@ -33,9 +33,9 @@ LogicalProject(order_id=[COALESCE($3, $0)])
Calc(select=[COALESCE(order_id0, order_id) AS order_id])
+- Join(joinType=[FullOuterJoin], where=[=(order_id, order_id0)], select=[order_id, order_id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id], metadata=[]]], fields=[order_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id]]], fields=[order_id])
+- Exchange(distribution=[hash[order_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id], metadata=[]]], fields=[order_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -56,9 +56,9 @@ LogicalProject(order_id=[$3])
Calc(select=[order_id0 AS order_id])
+- Join(joinType=[InnerJoin], where=[=(order_id, order_id0)], select=[order_id, order_id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id], metadata=[]]], fields=[order_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id]]], fields=[order_id])
+- Exchange(distribution=[hash[order_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id], metadata=[]]], fields=[order_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -76,7 +76,7 @@ LogicalProject(order_id=[COALESCE($3, $0)], amount=[$2])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, amount], metadata=[]]], fields=[order_id, amount])
+TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, amount]]], fields=[order_id, amount])
]]>
</Resource>
</TestCase>
@@ -99,10 +99,10 @@ LogicalProject(order_id_str=[CAST(COALESCE($3.order_id, $0)):VARCHAR(2147483647)
Calc(select=[CAST(COALESCE(r.order_id, order_id) AS VARCHAR(2147483647)) AS order_id_str])
+- Join(joinType=[LeftOuterJoin], where=[=(order_id, $f2)], select=[order_id, r, $f2], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[HasUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id], metadata=[]]], fields=[order_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id]]], fields=[order_id])
+- Exchange(distribution=[hash[$f2]])
+- Calc(select=[r, r.order_id AS $f2])
- +- TableSourceScan(table=[[default_catalog, default_database, order_details_row, project=[r], metadata=[]]], fields=[r])
+ +- TableSourceScan(table=[[default_catalog, default_database, order_details_row, project=[r]]], fields=[r])
]]>
</Resource>
</TestCase>
@@ -123,7 +123,7 @@ LogicalProject(val=[COALESCE($4, CAST($2):VARCHAR(2147483647) CHARACTER SET "UTF
Calc(select=[COALESCE(detail, CAST(amount AS VARCHAR(2147483647))) AS val])
+- Join(joinType=[LeftOuterJoin], where=[=(order_id, order_id0)], select=[order_id, amount, order_id0, detail], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, amount], metadata=[]]], fields=[order_id, amount])
+ : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, amount]]], fields=[order_id, amount])
+- Exchange(distribution=[hash[order_id]])
+- TableSourceScan(table=[[default_catalog, default_database, order_details]], fields=[order_id, detail])
]]>
@@ -143,7 +143,7 @@ LogicalProject(order_id=[COALESCE($0, $3)])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id], metadata=[]]], fields=[order_id])
+TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -161,7 +161,7 @@ LogicalProject(order_id=[$0], amount=[$2])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, amount], metadata=[]]], fields=[order_id, amount])
+TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, amount]]], fields=[order_id, amount])
]]>
</Resource>
</TestCase>
@@ -179,7 +179,7 @@ LogicalProject(val=[COALESCE($3, $0)])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id], metadata=[]]], fields=[order_id])
+TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -200,9 +200,9 @@ LogicalProject(val=[$1])
Calc(select=[user_id AS val])
+- Join(joinType=[InnerJoin], where=[=(order_id, order_id0)], select=[order_id, user_id, order_id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[order_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id], metadata=[]]], fields=[order_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -220,7 +220,7 @@ LogicalProject(val=[$1])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, orders, project=[user_id], metadata=[]]], fields=[user_id])
+TableSourceScan(table=[[default_catalog, default_database, orders, project=[user_id]]], fields=[user_id])
]]>
</Resource>
</TestCase>
@@ -241,9 +241,9 @@ LogicalProject(val=[COALESCE($3, $1)])
Calc(select=[COALESCE(order_id0, user_id) AS val])
+- Join(joinType=[LeftOuterJoin], where=[=(order_id, order_id0)], select=[order_id, user_id, order_id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[order_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id], metadata=[]]], fields=[order_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, order_details, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -261,7 +261,7 @@ LogicalProject(order_id=[COALESCE($3, $0)])
</Resource>
<Resource name="optimized rel plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id], metadata=[]]], fields=[order_id])
+TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
@@ -280,7 +280,7 @@ LogicalProject(order_id_str=[CAST(COALESCE($3, $0)):VARCHAR(2147483647) CHARACTE
<Resource name="optimized rel plan">
<![CDATA[
Calc(select=[CAST(order_id AS VARCHAR(2147483647)) AS order_id_str])
-+- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id], metadata=[]]], fields=[order_id])
++- TableSourceScan(table=[[default_catalog, default_database, orders, project=[order_id]]], fields=[order_id])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.xml
index 5f1a839794a..e98de2a6887 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.xml
@@ -116,7 +116,7 @@ LogicalAggregate(group=[{0}], EXPR$1=[COUNT()], EXPR$2=[JSON_ARRAYAGG_ABSENT_ON_
GroupAggregate(groupBy=[f0], select=[f0, COUNT(*) AS EXPR$1, JSON_ARRAYAGG_ABSENT_ON_NULL($f2) AS EXPR$2, SUM(f2) AS EXPR$3])
+- Exchange(distribution=[hash[f0]])
+- Calc(select=[f0, f2, JSON_STRING(f0) AS $f2])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f2], metadata=[]]], fields=[f0, f2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f2]]], fields=[f0, f2])
]]>
</Resource>
</TestCase>
@@ -139,7 +139,7 @@ GroupWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)],
+- Exchange(distribution=[hash[f0]])
+- Calc(select=[f0, rt, f2, JSON_STRING(f0) AS $f3])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f2], metadata=[]]], fields=[f0, rt, f2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f2]]], fields=[f0, rt, f2])
]]>
</Resource>
</TestCase>
@@ -160,7 +160,7 @@ SortAggregate(isMerge=[false], groupBy=[f0], select=[f0, COUNT(*) AS EXPR$1, JSO
+- Calc(select=[f0, f2, JSON_STRING(f0) AS $f2])
+- Sort(orderBy=[f0 ASC])
+- Exchange(distribution=[hash[f0]])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f2], metadata=[]]], fields=[f0, f2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f2]]], fields=[f0, f2])
]]>
</Resource>
</TestCase>
@@ -182,7 +182,7 @@ SortWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)], s
+- Calc(select=[f0, rt, f2, JSON_STRING(f0) AS $f3])
+- Sort(orderBy=[f0 ASC, rt ASC])
+- Exchange(distribution=[hash[f0]])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f2], metadata=[]]], fields=[f0, rt, f2])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f2]]], fields=[f0, rt, f2])
]]>
</Resource>
</TestCase>
@@ -290,7 +290,7 @@ LogicalAggregate(group=[{}], EXPR$0=[MAX($0)], EXPR$1=[JSON_OBJECTAGG_NULL_ON_NU
GroupAggregate(select=[MAX(f0) AS EXPR$0, JSON_OBJECTAGG_NULL_ON_NULL(f1, $f2) AS EXPR$1, JSON_ARRAYAGG_ABSENT_ON_NULL($f3) AS EXPR$2, JSON_ARRAYAGG_ABSENT_ON_NULL($f2) AS EXPR$3])
+- Exchange(distribution=[single])
+- Calc(select=[f0, f1, JSON_STRING(f0) AS $f2, JSON_STRING(f1) AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1], metadata=[]]], fields=[f0, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1]]], fields=[f0, f1])
]]>
</Resource>
</TestCase>
@@ -313,7 +313,7 @@ GroupWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[MAX(f0
+- Exchange(distribution=[single])
+- Calc(select=[rt, f0, f1, JSON_STRING(f0) AS $f3, JSON_STRING(f1) AS $f4])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0, f1], metadata=[]]], fields=[rt, f0, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0, f1]]], fields=[rt, f0, f1])
]]>
</Resource>
</TestCase>
@@ -333,7 +333,7 @@ LogicalAggregate(group=[{}], EXPR$0=[MAX($0)], EXPR$1=[JSON_OBJECTAGG_NULL_ON_NU
SortAggregate(isMerge=[false], select=[MAX(f0) AS EXPR$0, JSON_OBJECTAGG_NULL_ON_NULL(f1, $f2) AS EXPR$1, JSON_ARRAYAGG_ABSENT_ON_NULL($f3) AS EXPR$2, JSON_ARRAYAGG_ABSENT_ON_NULL($f2) AS EXPR$3])
+- Calc(select=[f0, f1, JSON_STRING(f0) AS $f2, JSON_STRING(f1) AS $f3])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1], metadata=[]]], fields=[f0, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1]]], fields=[f0, f1])
]]>
</Resource>
</TestCase>
@@ -355,7 +355,7 @@ SortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[MAX(f0)
+- Calc(select=[rt, f0, f1, JSON_STRING(f0) AS $f3, JSON_STRING(f1) AS $f4])
+- Sort(orderBy=[rt ASC])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0, f1], metadata=[]]], fields=[rt, f0, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0, f1]]], fields=[rt, f0, f1])
]]>
</Resource>
</TestCase>
@@ -375,7 +375,7 @@ LogicalAggregate(group=[{0}], EXPR$1=[JSON_ARRAYAGG_ABSENT_ON_NULL($0)])
GroupAggregate(groupBy=[f0], select=[f0, JSON_ARRAYAGG_ABSENT_ON_NULL($f1) AS EXPR$1])
+- Exchange(distribution=[hash[f0]])
+- Calc(select=[f0, JSON_STRING(f0) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0], metadata=[]]], fields=[f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0]]], fields=[f0])
]]>
</Resource>
</TestCase>
@@ -398,7 +398,7 @@ GroupWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)],
+- Exchange(distribution=[hash[f0]])
+- Calc(select=[f0, rt, JSON_STRING(f0) AS $f2])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt], metadata=[]]], fields=[f0, rt])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt]]], fields=[f0, rt])
]]>
</Resource>
</TestCase>
@@ -419,7 +419,7 @@ SortAggregate(isMerge=[false], groupBy=[f0], select=[f0, JSON_ARRAYAGG_ABSENT_ON
+- Calc(select=[f0, JSON_STRING(f0) AS $f1])
+- Sort(orderBy=[f0 ASC])
+- Exchange(distribution=[hash[f0]])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0], metadata=[]]], fields=[f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0]]], fields=[f0])
]]>
</Resource>
</TestCase>
@@ -441,7 +441,7 @@ SortWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)], s
+- Calc(select=[f0, rt, JSON_STRING(f0) AS $f2])
+- Sort(orderBy=[f0 ASC, rt ASC])
+- Exchange(distribution=[hash[f0]])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt], metadata=[]]], fields=[f0, rt])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt]]], fields=[f0, rt])
]]>
</Resource>
</TestCase>
@@ -461,7 +461,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()], EXPR$1=[JSON_ARRAYAGG_ABSENT_ON_N
GroupAggregate(select=[COUNT(*) AS EXPR$0, JSON_ARRAYAGG_ABSENT_ON_NULL($f1) AS EXPR$1])
+- Exchange(distribution=[single])
+- Calc(select=[f0, JSON_STRING(f0) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0], metadata=[]]], fields=[f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0]]], fields=[f0])
]]>
</Resource>
</TestCase>
@@ -484,7 +484,7 @@ GroupWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[COUNT(
+- Exchange(distribution=[single])
+- Calc(select=[rt, f0, JSON_STRING(f0) AS $f2])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0], metadata=[]]], fields=[rt, f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0]]], fields=[rt, f0])
]]>
</Resource>
</TestCase>
@@ -504,7 +504,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()], EXPR$1=[JSON_ARRAYAGG_ABSENT_ON_N
SortAggregate(isMerge=[false], select=[COUNT(*) AS EXPR$0, JSON_ARRAYAGG_ABSENT_ON_NULL($f1) AS EXPR$1])
+- Calc(select=[f0, JSON_STRING(f0) AS $f1])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0], metadata=[]]], fields=[f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0]]], fields=[f0])
]]>
</Resource>
</TestCase>
@@ -526,7 +526,7 @@ SortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[COUNT(*
+- Calc(select=[rt, f0, JSON_STRING(f0) AS $f2])
+- Sort(orderBy=[rt ASC])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0], metadata=[]]], fields=[rt, f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0]]], fields=[rt, f0])
]]>
</Resource>
</TestCase>
@@ -546,7 +546,7 @@ LogicalAggregate(group=[{}], EXPR$0=[JSON_ARRAYAGG_ABSENT_ON_NULL($0)])
GroupAggregate(select=[JSON_ARRAYAGG_ABSENT_ON_NULL($f1) AS EXPR$0])
+- Exchange(distribution=[single])
+- Calc(select=[f0, JSON_STRING(f0) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0], metadata=[]]], fields=[f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0]]], fields=[f0])
]]>
</Resource>
</TestCase>
@@ -569,7 +569,7 @@ GroupWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[JSON_A
+- Exchange(distribution=[single])
+- Calc(select=[rt, f0, JSON_STRING(f0) AS $f2])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0], metadata=[]]], fields=[rt, f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0]]], fields=[rt, f0])
]]>
</Resource>
</TestCase>
@@ -589,7 +589,7 @@ LogicalAggregate(group=[{}], EXPR$0=[JSON_ARRAYAGG_ABSENT_ON_NULL($0)])
SortAggregate(isMerge=[false], select=[JSON_ARRAYAGG_ABSENT_ON_NULL($f1) AS EXPR$0])
+- Calc(select=[f0, JSON_STRING(f0) AS $f1])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0], metadata=[]]], fields=[f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0]]], fields=[f0])
]]>
</Resource>
</TestCase>
@@ -611,7 +611,7 @@ SortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[JSON_AR
+- Calc(select=[rt, f0, JSON_STRING(f0) AS $f2])
+- Sort(orderBy=[rt ASC])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0], metadata=[]]], fields=[rt, f0])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f0]]], fields=[rt, f0])
]]>
</Resource>
</TestCase>
@@ -631,7 +631,7 @@ LogicalAggregate(group=[{0}], EXPR$1=[JSON_OBJECTAGG_NULL_ON_NULL($1, $0)])
GroupAggregate(groupBy=[f0], select=[f0, JSON_OBJECTAGG_NULL_ON_NULL(f1, $f2) AS EXPR$1])
+- Exchange(distribution=[hash[f0]])
+- Calc(select=[f0, f1, JSON_STRING(f0) AS $f2])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1], metadata=[]]], fields=[f0, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1]]], fields=[f0, f1])
]]>
</Resource>
</TestCase>
@@ -654,7 +654,7 @@ GroupWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)],
+- Exchange(distribution=[hash[f0]])
+- Calc(select=[f0, rt, f1, JSON_STRING(f0) AS $f3])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f1], metadata=[]]], fields=[f0, rt, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f1]]], fields=[f0, rt, f1])
]]>
</Resource>
</TestCase>
@@ -677,7 +677,7 @@ SortAggregate(isMerge=[true], groupBy=[f0], select=[f0, Final_JSON_OBJECTAGG_NUL
+- LocalSortAggregate(groupBy=[f0], select=[f0, Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f2) AS EXPR$1])
+- Calc(select=[f0, f1, JSON_STRING(f0) AS $f2])
+- Sort(orderBy=[f0 ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1], metadata=[]]], fields=[f0, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, f1]]], fields=[f0, f1])
]]>
</Resource>
</TestCase>
@@ -701,7 +701,7 @@ SortWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)], s
+- LocalSortWindowAggregate(groupBy=[f0], window=[TumblingGroupWindow('w$, rt, 5000)], select=[f0, Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f3) AS EXPR$1])
+- Calc(select=[f0, rt, f1, JSON_STRING(f0) AS $f3])
+- Sort(orderBy=[f0 ASC, rt ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f1], metadata=[]]], fields=[f0, rt, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f0, rt, f1]]], fields=[f0, rt, f1])
]]>
</Resource>
</TestCase>
@@ -721,7 +721,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()], EXPR$1=[JSON_OBJECTAGG_NULL_ON_NU
GroupAggregate(select=[COUNT(*) AS EXPR$0, JSON_OBJECTAGG_NULL_ON_NULL(f1, $f1) AS EXPR$1])
+- Exchange(distribution=[single])
+- Calc(select=[f1, JSON_STRING(f1) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1], metadata=[]]], fields=[f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1]]], fields=[f1])
]]>
</Resource>
</TestCase>
@@ -744,7 +744,7 @@ GroupWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[COUNT(
+- Exchange(distribution=[single])
+- Calc(select=[rt, f1, JSON_STRING(f1) AS $f2])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1], metadata=[]]], fields=[rt, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1]]], fields=[rt, f1])
]]>
</Resource>
</TestCase>
@@ -765,7 +765,7 @@ SortAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0, Final_JSO
+- Exchange(distribution=[single])
+- LocalSortAggregate(select=[Partial_COUNT(*) AS count1$0, Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f1) AS EXPR$1])
+- Calc(select=[f1, JSON_STRING(f1) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1], metadata=[]]], fields=[f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1]]], fields=[f1])
]]>
</Resource>
</TestCase>
@@ -789,7 +789,7 @@ SortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[Final_C
+- LocalSortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[Partial_COUNT(*) AS count1$0, Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f2) AS EXPR$1])
+- Calc(select=[rt, f1, JSON_STRING(f1) AS $f2])
+- Sort(orderBy=[rt ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1], metadata=[]]], fields=[rt, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1]]], fields=[rt, f1])
]]>
</Resource>
</TestCase>
@@ -814,7 +814,7 @@ GroupAggregate(select=[JSON_OBJECTAGG_NULL_ON_NULL(f1, $f1) AS EXPR$0])
+- Calc(select=[f1, JSON_STRING(f1) AS $f1])
+- WindowTableFunction(window=[TUMBLE(time_col=[rt], size=[5 s])])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1, rt], metadata=[]]], fields=[f1, rt])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1, rt]]], fields=[f1, rt])
]]>
</Resource>
</TestCase>
@@ -838,7 +838,7 @@ SortAggregate(isMerge=[true], select=[Final_JSON_OBJECTAGG_NULL_ON_NULL(EXPR$0)
+- LocalSortAggregate(select=[Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f1) AS EXPR$0])
+- Calc(select=[f1, JSON_STRING(f1) AS $f1])
+- WindowTableFunction(window=[TUMBLE(time_col=[rt], size=[5 s])])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1, rt], metadata=[]]], fields=[f1, rt])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1, rt]]], fields=[f1, rt])
]]>
</Resource>
</TestCase>
@@ -858,7 +858,7 @@ LogicalAggregate(group=[{}], EXPR$0=[JSON_OBJECTAGG_NULL_ON_NULL($0, $0)])
GroupAggregate(select=[JSON_OBJECTAGG_NULL_ON_NULL(f1, $f1) AS EXPR$0])
+- Exchange(distribution=[single])
+- Calc(select=[f1, JSON_STRING(f1) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1], metadata=[]]], fields=[f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1]]], fields=[f1])
]]>
</Resource>
</TestCase>
@@ -881,7 +881,7 @@ GroupWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[JSON_O
+- Exchange(distribution=[single])
+- Calc(select=[rt, f1, JSON_STRING(f1) AS $f2])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1], metadata=[]]], fields=[rt, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1]]], fields=[rt, f1])
]]>
</Resource>
</TestCase>
@@ -902,7 +902,7 @@ SortAggregate(isMerge=[true], select=[Final_JSON_OBJECTAGG_NULL_ON_NULL(EXPR$0)
+- Exchange(distribution=[single])
+- LocalSortAggregate(select=[Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f1) AS EXPR$0])
+- Calc(select=[f1, JSON_STRING(f1) AS $f1])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1], metadata=[]]], fields=[f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[f1]]], fields=[f1])
]]>
</Resource>
</TestCase>
@@ -926,7 +926,7 @@ SortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[Final_J
+- LocalSortWindowAggregate(window=[TumblingGroupWindow('w$, rt, 5000)], select=[Partial_JSON_OBJECTAGG_NULL_ON_NULL(f1, $f2) AS EXPR$0])
+- Calc(select=[rt, f1, JSON_STRING(f1) AS $f2])
+- Sort(orderBy=[rt ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1], metadata=[]]], fields=[rt, f1])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[rt, f1]]], fields=[rt, f1])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.xml
index 229bac52ea0..2d8a272d497 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.xml
@@ -40,7 +40,7 @@ LogicalProject(EXPR$0=[$2], name=[$0], type=[$1])
Calc(select=[EXPR$0, name, type])
+- HashAggregate(isMerge=[true], groupBy=[name, type], select=[name, type, Final_SUM(sum$0) AS EXPR$0])
+- Exchange(distribution=[hash[name, type]])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, filter=[=(id, 123:BIGINT)], project=[name, type, amount], metadata=[], aggregates=[grouping=[name,type], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[name, type, sum$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, filter=[=(id, 123:BIGINT)], project=[name, type, amount], aggregates=[grouping=[name,type], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[name, type, sum$0])
]]>
</Resource>
</TestCase>
@@ -121,7 +121,7 @@ LogicalProject(EXPR$0=[$2], type=[$0], name=[$1])
Calc(select=[EXPR$0, type, name])
+- HashAggregate(isMerge=[true], groupBy=[type, name], select=[type, name, Final_SUM(sum$0) AS EXPR$0])
+- Exchange(distribution=[hash[type, name]])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory_part, partitions=[{type=a}, {type=b}], filter=[=(id, 123:BIGINT)], project=[type, name, amount], metadata=[], aggregates=[grouping=[type,name], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[type, name, sum$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory_part, partitions=[{type=a}, {type=b}], filter=[=(id, 123:BIGINT)], project=[type, name, amount], aggregates=[grouping=[type,name], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[type, name, sum$0])
]]>
</Resource>
</TestCase>
@@ -167,7 +167,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
]]>
</Resource>
</TestCase>
@@ -185,7 +185,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
]]>
</Resource>
</TestCase>
@@ -203,7 +203,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count1$0) AS EXPR$0])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], aggregates=[grouping=[], aggFunctions=[Count1AggFunction()]]]], fields=[count1$0])
]]>
</Resource>
</TestCase>
@@ -222,7 +222,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT($0)])
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_COUNT(count$0) AS EXPR$0])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], metadata=[], aggregates=[grouping=[], aggFunctions=[CountAggFunction(id)]]]], fields=[count$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id], aggregates=[grouping=[], aggFunctions=[CountAggFunction(id)]]]], fields=[count$0])
]]>
</Resource>
</TestCase>
@@ -248,7 +248,7 @@ LogicalProject(EXPR$0=[$2], name=[$0], type=[$1])
Calc(select=[EXPR$0, name, type])
+- HashAggregate(isMerge=[true], groupBy=[name, type], select=[name, type, Final_SUM(sum$0) AS EXPR$0])
+- Exchange(distribution=[hash[name, type]])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, type, amount], metadata=[], aggregates=[grouping=[name,type], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[name, type, sum$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, type, amount], aggregates=[grouping=[name,type], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[name, type, sum$0])
]]>
</Resource>
</TestCase>
@@ -273,7 +273,7 @@ LogicalAggregate(group=[{}], EXPR$0=[MIN($0)], EXPR$1=[MAX($1)], EXPR$2=[SUM($2)
<![CDATA[
HashAggregate(isMerge=[true], select=[Final_MIN(min$0) AS EXPR$0, Final_MAX(max$1) AS EXPR$1, Final_SUM(sum$2) AS EXPR$2, Final_AVG(sum$3, count$4) AS EXPR$3, Final_COUNT(count$5) AS EXPR$4])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id, amount, price], metadata=[], aggregates=[grouping=[], aggFunctions=[LongMinAggFunction(id),LongMaxAggFunction(amount),LongSumAggFunction(price),LongSum0AggFunction(price),CountAggFunction(price),CountAggFunction(id)]]]], fields=[min$0, max$1, sum$2, sum$3, count$4, count$5])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id, amount, price], aggregates=[grouping=[], aggFunctions=[LongMinAggFunction(id),LongMaxAggFunction(amount),LongSumAggFunction(price),LongSum0AggFunction(price),CountAggFunction(price),CountAggFunction(id)]]]], fields=[min$0, max$1, sum$2, sum$3, count$4, count$5])
]]>
</Resource>
</TestCase>
@@ -300,7 +300,7 @@ Calc(select=[EXPR$0, name, type])
+- SortAggregate(isMerge=[true], groupBy=[name, type], select=[name, type, Final_SUM(sum$0) AS EXPR$0])
+- Sort(orderBy=[name ASC, type ASC])
+- Exchange(distribution=[hash[name, type]])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, type, amount], metadata=[], aggregates=[grouping=[name,type], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[name, type, sum$0])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, type, amount], aggregates=[grouping=[name,type], aggFunctions=[LongSumAggFunction(amount)]]]], fields=[name, type, sum$0])
]]>
</Resource>
</TestCase>
@@ -325,7 +325,7 @@ LogicalAggregate(group=[{}], EXPR$0=[MIN($0)], EXPR$1=[MAX($1)], EXPR$2=[SUM($2)
<![CDATA[
SortAggregate(isMerge=[true], select=[Final_MIN(min$0) AS EXPR$0, Final_MAX(max$1) AS EXPR$1, Final_SUM(sum$2) AS EXPR$2, Final_AVG(sum$3, count$4) AS EXPR$3, Final_COUNT(count$5) AS EXPR$4])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id, amount, price], metadata=[], aggregates=[grouping=[], aggFunctions=[LongMinAggFunction(id),LongMaxAggFunction(amount),LongSumAggFunction(price),LongSum0AggFunction(price),CountAggFunction(price),CountAggFunction(id)]]]], fields=[min$0, max$1, sum$2, sum$3, count$4, count$5])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id, amount, price], aggregates=[grouping=[], aggFunctions=[LongMinAggFunction(id),LongMaxAggFunction(amount),LongSumAggFunction(price),LongSum0AggFunction(price),CountAggFunction(price),CountAggFunction(id)]]]], fields=[min$0, max$1, sum$2, sum$3, count$4, count$5])
]]>
</Resource>
</TestCase>
@@ -392,7 +392,7 @@ Calc(select=[EXPR$0, name, type])
+- Exchange(distribution=[hash[name, type]])
+- LocalSortAggregate(groupBy=[name, type], select=[name, type, Partial_udaf_collect(amount) AS EXPR$0])
+- Sort(orderBy=[name ASC, type ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, type, amount], metadata=[]]], fields=[name, type, amount])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, type, amount]]], fields=[name, type, amount])
]]>
</Resource>
</TestCase>
@@ -420,7 +420,7 @@ Calc(select=[EXPR$0, type])
+- Exchange(distribution=[hash[type]])
+- LocalSortAggregate(groupBy=[type], select=[type, Partial_MAX(name) AS max$0])
+- Sort(orderBy=[type ASC])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[type, name], metadata=[]]], fields=[type, name])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[type, name]]], fields=[type, name])
]]>
</Resource>
</TestCase>
@@ -450,7 +450,7 @@ Calc(select=[EXPR$0, EXPR$1, EXPR$2, EXPR$3, name])
+- Exchange(distribution=[hash[name]])
+- LocalHashAggregate(groupBy=[name], select=[name, Partial_MIN(id) AS min$0, Partial_MAX(amount) AS max$1, Partial_SUM(price) AS sum$2, Partial_COUNT(id) FILTER $f4 AS count$3])
+- Calc(select=[name, id, amount, price, IS TRUE(>(id, 100)) AS $f4])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, id, amount, price], metadata=[]]], fields=[name, id, amount, price])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, id, amount, price]]], fields=[name, id, amount, price])
]]>
</Resource>
</TestCase>
@@ -480,7 +480,7 @@ Calc(select=[EXPR$0, EXPR$1, EXPR$2, EXPR$3, name])
+- Exchange(distribution=[hash[name]])
+- LocalHashAggregate(groupBy=[name], select=[name, Partial_MIN($f1) AS min$0, Partial_MAX(amount) AS max$1, Partial_SUM(price) AS sum$2, Partial_COUNT(id) AS count$3])
+- Calc(select=[name, +(amount, price) AS $f1, amount, price, id])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, amount, price, id], metadata=[]]], fields=[name, amount, price, id])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, amount, price, id]]], fields=[name, amount, price, id])
]]>
</Resource>
</TestCase>
@@ -514,7 +514,7 @@ Calc(select=[EXPR$0, EXPR$1, EXPR$2, EXPR$3, name])
+- Exchange(distribution=[hash[name, id, $e]])
+- LocalHashAggregate(groupBy=[name, id, $e], select=[name, id, $e, Partial_MIN(id_0) AS min$0, Partial_MAX(amount) AS max$1, Partial_SUM(price) AS sum$2])
+- Expand(projects=[{name, id, amount, price, 0 AS $e, id AS id_0}, {name, null AS id, amount, price, 1 AS $e, id AS id_0}])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, id, amount, price], metadata=[]]], fields=[name, id, amount, price])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[name, id, amount, price]]], fields=[name, id, amount, price])
]]>
</Resource>
</TestCase>
@@ -539,7 +539,7 @@ Calc(select=[id, amount, CASE(>(w0$o0, 0), w0$o1, null:BIGINT) AS EXPR$2, name])
+- OverAggregate(partitionBy=[name], window#0=[COUNT(price) AS w0$o0, SUM(price) AS w0$o1 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING], select=[id, name, amount, price, w0$o0, w0$o1])
+- Sort(orderBy=[name ASC])
+- Exchange(distribution=[hash[name]])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id, name, amount, price], metadata=[]]], fields=[id, name, amount, price])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory, project=[id, name, amount, price]]], fields=[id, name, amount, price])
]]>
</Resource>
</TestCase>
@@ -566,7 +566,7 @@ Calc(select=[EXPR$0, name, type])
+- HashAggregate(isMerge=[true], groupBy=[name, type], select=[name, type, Final_SUM(sum$0) AS EXPR$0])
+- Exchange(distribution=[hash[name, type]])
+- LocalHashAggregate(groupBy=[name, type], select=[name, type, Partial_SUM(amount) AS sum$0])
- +- TableSourceScan(table=[[default_catalog, default_database, inventory_without_agg_push_down, project=[name, type, amount], metadata=[]]], fields=[name, type, amount])
+ +- TableSourceScan(table=[[default_catalog, default_database, inventory_without_agg_push_down, project=[name, type, amount]]], fields=[name, type, amount])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/DuplicateChangesInferRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/DuplicateChangesInferRuleTest.xml
index b7b793aec32..3ee9d9f6501 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/DuplicateChangesInferRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/DuplicateChangesInferRuleTest.xml
@@ -107,7 +107,7 @@ LogicalSink(table=[default_catalog.default_database.no_pk_snk], fields=[a, b, EX
Sink(table=[default_catalog.default_database.no_pk_snk], fields=[a, b, EXPR$2], duplicateChanges=[NONE])
+- Calc(select=[a, b, CAST(CAST(NOW() AS INTEGER) AS BIGINT) AS EXPR$2], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -125,7 +125,7 @@ LogicalSink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b
Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, EXPR$2], conflictStrategy=[DEDUPLICATE], duplicateChanges=[NONE])
+- Calc(select=[a, b, CAST(CAST(NOW() AS INTEGER) AS BIGINT) AS EXPR$2], duplicateChanges=[ALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[ALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[ALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[ALLOW])
]]>
</Resource>
</TestCase>
@@ -219,7 +219,7 @@ LogicalSink(table=[default_catalog.default_database.no_pk_snk], fields=[a, b, EX
Sink(table=[default_catalog.default_database.no_pk_snk], fields=[a, b, EXPR$2], duplicateChanges=[NONE])
+- Calc(select=[a, b, CAST(NOW() AS BIGINT) AS EXPR$2], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -237,7 +237,7 @@ LogicalSink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b
Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, EXPR$2], conflictStrategy=[DEDUPLICATE], duplicateChanges=[NONE])
+- Calc(select=[a, b, CAST(NOW() AS BIGINT) AS EXPR$2], duplicateChanges=[ALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[ALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[ALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[ALLOW])
]]>
</Resource>
</TestCase>
@@ -363,10 +363,10 @@ Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, c], c
+- IntervalJoin(joinType=[InnerJoin], windowBounds=[isRowTime=true, leftLowerBound=-59999, leftUpperBound=59999, leftTimeIndex=2, rightTimeIndex=2], where=[AND(=(a, a0), >(rt, -(rt0, 60000:INTERVAL MINUTE)), <(rt, +(rt0, 60000:INTERVAL MINUTE)))], select=[a, c, rt, a0, b, rt0], duplicateChanges=[ALLOW])
:- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
: +- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt], metadata=[]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+ : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -390,11 +390,11 @@ Sink(table=[default_catalog.default_database.no_pk_snk], fields=[a, b, c], dupli
:- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
: +- Calc(select=[a, c], duplicateChanges=[DISALLOW])
: +- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt], metadata=[]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+ : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
+- Calc(select=[a, b], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -418,11 +418,11 @@ Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, c], c
:- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
: +- Calc(select=[a, c], duplicateChanges=[DISALLOW])
: +- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt], metadata=[]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+ : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
+- Calc(select=[a, b], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -450,7 +450,7 @@ Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, c], u
+- Exchange(distribution=[hash[a, b]], duplicateChanges=[DISALLOW])
+- Calc(select=[a, b], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, retract_src2, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, retract_src2, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -834,7 +834,7 @@ Sink(table=[default_catalog.default_database.no_pk_snk], fields=[a, b, c], dupli
+- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
+- Calc(select=[a], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, dim_src, project=[a, rt], metadata=[]]], fields=[a, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, dim_src, project=[a, rt]]], fields=[a, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -865,7 +865,7 @@ Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, c], c
+- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
+- Calc(select=[a], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, dim_src, project=[a, rt], metadata=[]]], fields=[a, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, dim_src, project=[a, rt]]], fields=[a, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
@@ -992,12 +992,12 @@ Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, c], c
: +- Calc(select=[a, c], duplicateChanges=[ALLOW])
: +- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[ALLOW])
: +- DropUpdateBefore(duplicateChanges=[ALLOW])
- : +- TableSourceScan(table=[[default_catalog, default_database, retract_src, project=[a, c, rt], metadata=[]]], fields=[a, c, rt], duplicateChanges=[ALLOW])
+ : +- TableSourceScan(table=[[default_catalog, default_database, retract_src, project=[a, c, rt]]], fields=[a, c, rt], duplicateChanges=[ALLOW])
+- Exchange(distribution=[hash[a]], duplicateChanges=[ALLOW])
+- Calc(select=[a, b], duplicateChanges=[ALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[ALLOW])
+- DropUpdateBefore(duplicateChanges=[ALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, retract_src2, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[ALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, retract_src2, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[ALLOW])
]]>
</Resource>
</TestCase>
@@ -1028,12 +1028,12 @@ Sink(table=[default_catalog.default_database.pk_upsert_snk], fields=[a, b, c], c
: +- Calc(select=[a, c, window_start, window_end], duplicateChanges=[DISALLOW])
: +- WindowTableFunction(window=[TUMBLE(time_col=[rt], size=[1 min])], duplicateChanges=[DISALLOW])
: +- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt], metadata=[]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+ : +- TableSourceScan(table=[[default_catalog, default_database, append_src1, project=[a, c, rt]]], fields=[a, c, rt], duplicateChanges=[DISALLOW])
+- Exchange(distribution=[hash[a]], duplicateChanges=[DISALLOW])
+- Calc(select=[a, b, window_start, window_end], duplicateChanges=[DISALLOW])
+- WindowTableFunction(window=[TUMBLE(time_col=[rt], size=[1 min])], duplicateChanges=[DISALLOW])
+- WatermarkAssigner(rowtime=[rt], watermark=[-(rt, 1000:INTERVAL SECOND)], duplicateChanges=[DISALLOW])
- +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt], metadata=[]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
+ +- TableSourceScan(table=[[default_catalog, default_database, append_src2, project=[a, b, rt]]], fields=[a, b, rt], duplicateChanges=[DISALLOW])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/ExpandWindowTableFunctionTransposeRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/ExpandWindowTableFunctionTransposeRuleTest.xml
index 81d3c36fce2..8b0860e36ff 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/ExpandWindowTableFunctionTransposeRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/ExpandWindowTableFunctionTransposeRuleTest.xml
@@ -56,7 +56,7 @@ Calc(select=[a, window_start, window_end, $f1 AS $f3, $f2 AS $f4, $f3 AS $f5, $f
+- Expand(projects=[{a, d, $f4, c, $f6, null AS $f7, 1 AS $e, rowtime}, {a, d, $f4, c, null AS $f6, $f7, 2 AS $e, rowtime}, {a, d, $f4, c, null AS $f6, null AS $f7, 3 AS $e, rowtime}])
+- Calc(select=[a, d, IS TRUE(>(b, 1000)) AS $f4, c, MOD(HASH_CODE(d), 1024) AS $f6, MOD(HASH_CODE(c), 1024) AS $f7, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, d, rowtime], metadata=[]]], fields=[a, b, c, d, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, d, rowtime]]], fields=[a, b, c, d, rowtime])
]]>
</Resource>
</TestCase>
@@ -100,7 +100,7 @@ Calc(select=[a, window_start, window_end, $f1 AS $f3, $f2 AS $f4, $f3 AS $f5, $f
+- Expand(projects=[{a, d, $f4, c, $f6, null AS $f7, 1 AS $e, rowtime}, {a, d, $f4, c, null AS $f6, $f7, 2 AS $e, rowtime}, {a, d, $f4, c, null AS $f6, null AS $f7, 3 AS $e, rowtime}])
+- Calc(select=[a, d, IS TRUE(>(b, 1000)) AS $f4, c, MOD(HASH_CODE(d), 1024) AS $f6, MOD(HASH_CODE(c), 1024) AS $f7, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, d, rowtime], metadata=[]]], fields=[a, b, c, d, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, d, rowtime]]], fields=[a, b, c, d, rowtime])
]]>
</Resource>
</TestCase>
@@ -143,7 +143,7 @@ Calc(select=[a, window_start, window_end, $f1 AS $f3, $f2 AS $f4, $f3 AS $f5, $f
+- Expand(projects=[{a, d, $f4, c, $f6, null AS $f7, 1 AS $e, rowtime}, {a, d, $f4, c, null AS $f6, $f7, 2 AS $e, rowtime}, {a, d, $f4, c, null AS $f6, null AS $f7, 3 AS $e, rowtime}])
+- Calc(select=[a, d, IS TRUE(>(b, 1000)) AS $f4, c, MOD(HASH_CODE(d), 1024) AS $f6, MOD(HASH_CODE(c), 1024) AS $f7, rowtime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, d, rowtime], metadata=[]]], fields=[a, b, c, d, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, b, c, d, rowtime]]], fields=[a, b, c, d, rowtime])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/WatermarkAssignerChangelogNormalizeTransposeRuleTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/WatermarkAssignerChangelogNormalizeTransposeRuleTest.xml
index 7a905287574..6d8a1384762 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/WatermarkAssignerChangelogNormalizeTransposeRuleTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/physical/stream/WatermarkAssignerChangelogNormalizeTransposeRuleTest.xml
@@ -48,7 +48,7 @@ Calc(select=[currency2, cnt, w$start AS w_start, w$end AS w_end], changelogMode=
+- Exchange(distribution=[hash[currency]], changelogMode=[UA,D])
+- WatermarkAssigner(rowtime=[currency_time], watermark=[-(currency_time, 5000:INTERVAL SECOND)], changelogMode=[UA,D])
+- Calc(select=[+(currency, 2) AS currency2, TO_TIMESTAMP(c) AS currency_time, currency], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, src_with_computed_column2, project=[currency, c], metadata=[]]], fields=[currency, c], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, src_with_computed_column2, project=[currency, c]]], fields=[currency, c], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -83,7 +83,7 @@ Calc(select=[currency, cnt, w$start AS w_start, w$end AS w_end], changelogMode=[
+- Exchange(distribution=[hash[currency]], changelogMode=[UA,D])
+- WatermarkAssigner(rowtime=[currency_time], watermark=[-(currency_time, 5000:INTERVAL SECOND)], changelogMode=[UA,D])
+- Calc(select=[currency, TO_TIMESTAMP(c) AS currency_time], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, src_with_computed_column, project=[currency, c], metadata=[]]], fields=[currency, c], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, src_with_computed_column, project=[currency, c]]], fields=[currency, c], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -156,7 +156,7 @@ Calc(select=[w$start AS w_start, w$end AS w_end, max_rate], changelogMode=[I])
+- Exchange(distribution=[hash[currency]], changelogMode=[UA,D])
+- WatermarkAssigner(rowtime=[currency_time], watermark=[-(currency_time, 5000:INTERVAL SECOND)], changelogMode=[UA,D])
+- Calc(select=[TO_TIMESTAMP(c) AS currency_time, rate, currency], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, src_with_computed_column, project=[c, rate, currency], metadata=[]]], fields=[c, rate, currency], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, src_with_computed_column, project=[c, rate, currency]]], fields=[c, rate, currency], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -189,7 +189,7 @@ Calc(select=[w$start AS w_start, w$end AS w_end, max_rate], changelogMode=[I])
+- ChangelogNormalize(key=[currency], changelogMode=[I,UB,UA,D])
+- Exchange(distribution=[hash[currency]], changelogMode=[UA,D])
+- WatermarkAssigner(rowtime=[currency_time], watermark=[-(currency_time, 5000:INTERVAL SECOND)], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, simple_src, project=[currency_time, rate, currency], metadata=[]]], fields=[currency_time, rate, currency], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, simple_src, project=[currency_time, rate, currency]]], fields=[currency_time, rate, currency], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -222,7 +222,7 @@ Calc(select=[currency, cnt, w$start AS w_start, w$end AS w_end], changelogMode=[
+- ChangelogNormalize(key=[currency], changelogMode=[I,UB,UA,D])
+- Exchange(distribution=[hash[currency]], changelogMode=[UA,D])
+- WatermarkAssigner(rowtime=[currency_time], watermark=[-(currency_time, 5000:INTERVAL SECOND)], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, simple_src, project=[currency, currency_time], metadata=[]]], fields=[currency, currency_time], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, simple_src, project=[currency, currency_time]]], fields=[currency, currency_time], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.xml
index b6bc21cd326..3abd97743c7 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.xml
@@ -89,7 +89,7 @@ LogicalProject(a=[$0], a1=[$1])
<![CDATA[
Calc(select=[a, a1], where=[(a1 > 10)])
+- Calc(select=[a, random_udf(a) AS a1])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -108,7 +108,7 @@ LogicalProject(a2=[random_udf($0)])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[random_udf(random_udf(a)) AS a2], where=[(b > 10)])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -128,7 +128,7 @@ LogicalProject(a=[$0], a1=[$1])
<![CDATA[
Calc(select=[a, a1], where=[(a1 > '10')])
+- Calc(select=[a, SUBSTR(CAST(random_udf(a) AS VARCHAR(2147483647)), 1, 2) AS a1])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -148,7 +148,7 @@ LogicalProject(a=[$0], b=[$1])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[a, b], where=[(a = b)])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -168,7 +168,7 @@ LogicalProject(a2=[random_udf($0)], a3=[random_udf($0)])
<![CDATA[
Calc(select=[random_udf(a1) AS a2, random_udf(a1) AS a3])
+- Calc(select=[random_udf(a) AS a1, b], where=[(b > 10)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -187,7 +187,7 @@ LogicalProject(a=[$0], c=[$2])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[a, c], where=[(CAST(c AS BIGINT) > 10)])
-+- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, c], metadata=[]]], fields=[a, c])
++- TableSourceScan(table=[[default_catalog, default_database, MyTable, filter=[], project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/ChangelogNormalizeOptimizationTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/ChangelogNormalizeOptimizationTest.xml
index 325cb889bc1..146a1a494a1 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/ChangelogNormalizeOptimizationTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/ChangelogNormalizeOptimizationTest.xml
@@ -56,10 +56,10 @@ Sink(table=[default_catalog.default_database.upsert_sink_table], fields=[id, col
+- Calc(select=[id, col1, col2], changelogMode=[I,UA,D])
+- Join(joinType=[InnerJoin], where=[=(id, id0)], select=[id, col1, col2, id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey], changelogMode=[I,UA,D])
:- Exchange(distribution=[hash[id]], changelogMode=[I,UA,D])
- : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,D])
+ : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,D])
+- Exchange(distribution=[hash[id]], changelogMode=[I,UA,D])
+- Calc(select=[id], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -82,10 +82,10 @@ Sink(table=[default_catalog.default_database.upsert_sink_table], fields=[id, col
+- Calc(select=[id, col1, col2], changelogMode=[I,UA,PD])
+- Join(joinType=[InnerJoin], where=[=(id, id0)], select=[id, col1, col2, id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey], changelogMode=[I,UA,PD])
:- Exchange(distribution=[hash[id]], changelogMode=[I,UA,PD])
- : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+ : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+- Exchange(distribution=[hash[id]], changelogMode=[I,UA,PD])
+- Calc(select=[id], changelogMode=[UA,PD])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,PD])
]]>
</Resource>
</TestCase>
@@ -110,7 +110,7 @@ Sink(table=[default_catalog.default_database.upsert_sink_table], fields=[id, col
:- Exchange(distribution=[hash[id]], changelogMode=[I,UA,D])
: +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes]], fields=[id, col1, col2], changelogMode=[UA,D])
+- Exchange(distribution=[hash[id]], changelogMode=[I,UA,PD])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id], metadata=[]]], fields=[id], changelogMode=[UA,PD])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id]]], fields=[id], changelogMode=[UA,PD])
]]>
</Resource>
</TestCase>
@@ -135,7 +135,7 @@ Sink(table=[default_catalog.default_database.upsert_sink_table], fields=[id, col
:- Exchange(distribution=[hash[id]], changelogMode=[I,UA,PD])
: +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes]], fields=[id, col1, col2], changelogMode=[UA,PD])
+- Exchange(distribution=[hash[id]], changelogMode=[I,UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes, project=[id], metadata=[]]], fields=[id], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_full_deletes, project=[id]]], fields=[id], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -160,12 +160,12 @@ Sink(table=[default_catalog.default_database.upsert_sink_table_full_deletes], fi
:- Exchange(distribution=[hash[id]], changelogMode=[I,UA,D])
: +- ChangelogNormalize(key=[id], changelogMode=[I,UA,D])
: +- Exchange(distribution=[hash[id]], changelogMode=[UA,PD])
- : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+ : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+- Exchange(distribution=[hash[id]], changelogMode=[I,UA,D])
+- ChangelogNormalize(key=[id], changelogMode=[I,UA,D])
+- Exchange(distribution=[hash[id]], changelogMode=[UA,PD])
+- Calc(select=[id], changelogMode=[UA,PD])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,PD])
]]>
</Resource>
</TestCase>
@@ -190,12 +190,12 @@ Sink(table=[default_catalog.default_database.all_change_sink_table], fields=[id,
:- Exchange(distribution=[hash[id]], changelogMode=[I,UB,UA,D])
: +- ChangelogNormalize(key=[id], changelogMode=[I,UB,UA,D])
: +- Exchange(distribution=[hash[id]], changelogMode=[UA,PD])
- : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+ : +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+- Exchange(distribution=[hash[id]], changelogMode=[I,UB,UA,D])
+- ChangelogNormalize(key=[id], changelogMode=[I,UB,UA,D])
+- Exchange(distribution=[hash[id]], changelogMode=[UA,PD])
+- Calc(select=[id], changelogMode=[UA,PD])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2], metadata=[]]], fields=[id, col1, col2], changelogMode=[UA,PD])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_table_partial_deletes, project=[id, col1, col2]]], fields=[id, col1, col2], changelogMode=[UA,PD])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest.xml
index 0995440d9ee..82331581e6b 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest.xml
@@ -80,13 +80,13 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1]], fields=[a0, a1, a2, a3])
: : +- Exchange(distribution=[hash[b1, b2]])
: : +- DropUpdateBefore
- : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1], metadata=[]]], fields=[b2, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1]]], fields=[b2, b1])
: +- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3]], fields=[c0, c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -127,7 +127,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : +- Join(joinType=[LeftOuterJoin], where=[AND(=(a1, b1), =(a2, b2), <>(a0, CAST(b1 AS INTEGER)))], select=[a0, a1, a2, b0, b2, b1], leftInputSpec=[HasUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
: : :- Exchange(distribution=[hash[a1, a2]])
: : : +- DropUpdateBefore
- : : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1, project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1, project=[a0, a1, a2]]], fields=[a0, a1, a2])
: : +- Exchange(distribution=[hash[b1, b2]])
: : +- DropUpdateBefore
: : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
@@ -136,7 +136,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3]], fields=[c0, c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -183,10 +183,10 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(c1, d1), =(c2, d2), <>(c1, CAST(d2 AS DOUBLE)))], leftToRight=[Binary], rightToLeft=[Binary], select=[c1, c2, d1, d2])
:- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -233,10 +233,10 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(c1, d1), =(c2, d2), <>(c1, CAST(d2 AS DOUBLE)))], leftToRight=[Binary], rightToLeft=[Binary], select=[c1, c2, d1, d2])
:- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -283,10 +283,10 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(c1, d1), =(c2, d2), <>(c1, CAST(d2 AS DOUBLE)))], leftToRight=[Binary], rightToLeft=[Binary], select=[c1, c2, d1, d2])
:- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -469,7 +469,7 @@ LogicalSink(table=[default_catalog.default_database.tmp_snk], fields=[a0, a1])
<Resource name="optimized rel plan">
<![CDATA[
Sink(table=[default_catalog.default_database.tmp_snk], fields=[a0, a1], conflictStrategy=[DEDUPLICATE])
-+- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a0, a1], metadata=[]]], fields=[a0, a1])
++- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a0, a1]]], fields=[a0, a1])
]]>
</Resource>
</TestCase>
@@ -612,7 +612,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[1],[4],[5
+- Calc(select=[a0, a1, null:VARCHAR(2147483647) AS EXPR$2, null:INTEGER AS EXPR$3, b0, b2, b1])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a2, a1, b1, b2, b0])
:- Exchange(distribution=[hash[a1, a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, filter=[>(a0, 1)], project=[a0, a2, a1], metadata=[]]], fields=[a0, a2, a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, filter=[>(a0, 1)], project=[a0, a2, a1]]], fields=[a0, a2, a1])
+- Exchange(distribution=[hash[b1, b2]])
+- Calc(select=[b1, b2, b0], where=[<(b1, 10)])
+- TableSourceScan(table=[[default_catalog, default_database, src2, filter=[<>(b0, 0)]]], fields=[b0, b2, b1])
@@ -914,7 +914,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
+- Exchange(distribution=[hash[c1, c2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
]]>
</Resource>
</TestCase>
@@ -955,7 +955,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
+- Exchange(distribution=[hash[c1, c2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
]]>
</Resource>
</TestCase>
@@ -1139,10 +1139,10 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
: +- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -1189,10 +1189,10 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
: +- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -1236,13 +1236,13 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1]], fields=[a0, a1, a2, a3])
: : +- Exchange(distribution=[hash[b1, b2]])
: : +- DropUpdateBefore
- : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1], metadata=[]]], fields=[b2, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1]]], fields=[b2, b1])
: +- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3]], fields=[c0, c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -1277,7 +1277,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(b1, d1), =(b2, d2), <>(d1, CAST(b2 AS DOUBLE)))], leftToRight=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src4], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=d1, b2=d2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src2], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=b1, a2=b2], remaining=[(a0 <> CAST(b1 AS INTEGER))]}, {r [...]
:- Exchange(distribution=[hash[d1, d2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
+- Exchange(distribution=[hash[b1, b2]])
+- Calc(select=[b0, b2, b1, a0, a1, a2, a3])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, c1), =(a2, c2), <>(c1, CAST(a2 AS DOUBLE)))], leftToRight=[Binary], rightToLeft=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src3], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=c1, a2=c2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src1], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=a1, b2=a2], remaining=[(a [...]
@@ -1292,7 +1292,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
+- Exchange(distribution=[hash[c1, c2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
]]>
</Resource>
</TestCase>
@@ -1327,7 +1327,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, d1), =(a2, d2), <>(d1, CAST(a2 AS DOUBLE)))], leftToRight=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src4], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=d1, a2=d2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src1], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=a1, b2=a2], remaining=[(a0 <> CAST(b1 AS INTEGER))]}, {r [...]
:- Exchange(distribution=[hash[d1, d2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
+- Exchange(distribution=[hash[a1, a2]])
+- Calc(select=[b0, b2, b1, a0, a1, a2, a3])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, c1), =(a2, c2), <>(c1, CAST(a2 AS DOUBLE)))], leftToRight=[Binary], rightToLeft=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src3], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=c1, a2=c2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src1], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=a1, b2=a2], remaining=[(a [...]
@@ -1342,7 +1342,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2]], fields=[b0, b2, b1])
+- Exchange(distribution=[hash[c1, c2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
]]>
</Resource>
</TestCase>
@@ -1377,7 +1377,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(c1, d1), =(c2, d2), <>(d1, CAST(c2 AS DOUBLE)))], leftToRight=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src4], lookupTable=[default_catalog.default_database.no_delete_src3], lookupKeys=[c1=d1, c2=d2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src3], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=c1, a2=c2]}, {round=[3], sourceTables=[default_catalog.d [...]
:- Exchange(distribution=[hash[d1, d2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
+- Exchange(distribution=[hash[c1, c2]])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, c1), =(a2, c2), <>(c1, CAST(a2 AS DOUBLE)))], leftToRight=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src3], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=c1, a2=c2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src1], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=a1, b2=a2], remaining=[(a0 <> CAST(b1 AS INTEGER)) [...]
:- Exchange(distribution=[hash[c1, c2]])
@@ -1391,7 +1391,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1]], fields=[a0, a1, a2, a3])
+- Exchange(distribution=[hash[b1, b2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1], metadata=[]]], fields=[b2, b1])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1]]], fields=[b2, b1])
]]>
</Resource>
</TestCase>
@@ -1597,7 +1597,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[1],[4],[5
+- Join(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], select=[a0, a2, a1, b0, b2, b1], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a1, a2]])
: +- Calc(select=[a0, a2, a1], where=[>(a0, RAND(10))])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, filter=[], project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, filter=[], project=[a0, a1, a2]]], fields=[a0, a1, a2])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -1669,7 +1669,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[1],[4],[5
+- Join(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], select=[a0, a2, a1, b0, b2, b1], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a1, a2]])
: +- Calc(select=[a0, a2, a1], where=[>(a0, RAND(10))])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, filter=[], project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, filter=[], project=[a0, a1, a2]]], fields=[a0, a1, a2])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -1808,7 +1808,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[4],[5]],
+- Calc(select=[a0, null:DOUBLE AS EXPR$1, null:VARCHAR(2147483647) AS EXPR$2, null:INTEGER AS EXPR$3, b0, b2, null:DOUBLE AS EXPR$6])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a2, a1, b0, b2, b1])
:- Exchange(distribution=[hash[a1, a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1WithPartition, partitions=[{pt=1}], project=[a0, a2, a1], metadata=[]]], fields=[a0, a2, a1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1WithPartition, partitions=[{pt=1}], project=[a0, a2, a1]]], fields=[a0, a2, a1])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -1899,7 +1899,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[1],[2],[4
+- Calc(select=[a0, a1, a2, null:INTEGER AS EXPR$3, b0, b2, b1])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a1, a2, b0, b2, b1])
:- Exchange(distribution=[hash[a1, a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a0, a1, a2]]], fields=[a0, a1, a2])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -1925,7 +1925,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[1],[2],[0],[4
+- Calc(select=[a0 AS a2, a1 AS a0, a2 AS a1, null:INTEGER AS EXPR$3, b0, b2, b1])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], leftToRight=[Binary], rightToLeft=[Binary], select=[a1, a2, a0, b0, b2, b1])
:- Exchange(distribution=[hash[a1, a2]])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a1, a2, a0], metadata=[]]], fields=[a1, a2, a0])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a1, a2, a0]]], fields=[a1, a2, a0])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -1952,7 +1952,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[1],[2],[4
+- Join(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], select=[a0, a1, a2, b0, b2, b1], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a1, a2]])
: +- Calc(select=[a0, a1, SUBSTRING(a2, 2) AS a2])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a0, a1, a2]]], fields=[a0, a1, a2])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -1979,7 +1979,7 @@ Sink(table=[default_catalog.default_database.snk], targetColumns=[[0],[1],[2],[4
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a1, a2, b0, b2, b1])
:- Exchange(distribution=[hash[a1, a2]])
: +- Calc(select=[a0, a1, SUBSTRING(a2, 2) AS a2])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1WithMultiIndexes, project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1WithMultiIndexes, project=[a0, a1, a2]]], fields=[a0, a1, a2])
+- Exchange(distribution=[hash[b1, b2]])
+- TableSourceScan(table=[[default_catalog, default_database, src2]], fields=[b0, b2, b1])
]]>
@@ -2013,7 +2013,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, c1), =(a2, c2), <>(c1, CAST(a0 AS DOUBLE)))], leftToRight=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src3], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=c1, a2=c2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src1], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=a1, b2=a2], remaining=[(a0 <> CAST(b1 AS INTEGER))]}]], [...]
:- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[a1, a2]])
+- Calc(select=[b0, b2, b1, a0, a1, a2, a3])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2), <>(a0, CAST(b1 AS INTEGER)))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a1, a2, a3, b0, b2, b1])
@@ -2054,7 +2054,7 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(b1, c1), =(b2, c2), <>(c1, CAST(b2 AS DOUBLE)))], leftToRight=[[{round=[1], sourceTables=[default_catalog.default_database.no_delete_src3], lookupTable=[default_catalog.default_database.no_delete_src2], lookupKeys=[b1=c1, b2=c2]}, {round=[2], sourceTables=[default_catalog.default_database.no_delete_src2], lookupTable=[default_catalog.default_database.no_delete_src1], lookupKeys=[a1=b1, a2=b2], remaining=[(a0 <> CAST(b1 AS INTEGER))]}]], [...]
:- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
- : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])
+ : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])
+- Exchange(distribution=[hash[b1, b2]])
+- Calc(select=[b0, b2, b1, a0, a1, a2, a3])
+- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2), <>(a0, CAST(b1 AS INTEGER)))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a1, a2, a3, b0, b2, b1])
@@ -2269,13 +2269,13 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1]], fields=[a0, a1, a2, a3])
: : +- Exchange(distribution=[hash[b1, b2]])
: : +- DropUpdateBefore
- : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1], metadata=[]]], fields=[b2, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1]]], fields=[b2, b1])
: +- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3]], fields=[c0, c1, c2])
+- Exchange(distribution=[hash[d1, d2]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])
+ +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])
]]>
</Resource>
</TestCase>
@@ -2316,10 +2316,10 @@ Sink(table=[default_catalog.default_database.snk_for_cdc_src], fields=[a0, a1, a
: : +- DeltaJoin(joinType=[InnerJoin], where=[AND(=(a1, b1), =(a2, b2), <>(a0, CAST(b1 AS INTEGER)))], leftToRight=[Binary], rightToLeft=[Binary], select=[a0, a1, a2, b2, b1])
: : :- Exchange(distribution=[hash[a1, a2]])
: : : +- DropUpdateBefore
- : : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1, project=[a0, a1, a2], metadata=[]]], fields=[a0, a1, a2])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src1, project=[a0, a1, a2]]], fields=[a0, a1, a2])
: : +- Exchange(distribution=[hash[b1, b2]])
: : +- DropUpdateBefore
- : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1], metadata=[]]], fields=[b2, b1])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src2, project=[b2, b1]]], fields=[b2, b1])
: +- Exchange(distribution=[hash[c1, c2]])
: +- DropUpdateBefore
: +- TableSourceScan(table=[[default_catalog, default_database, no_delete_src3]], fields=[c0, c1, c2])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest_jsonplan/testCalcBetweenCascadedDeltaJoinJsonPlan.out b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest_jsonplan/testCalcBetweenCascadedDeltaJoinJsonPlan.out
index 3c1582b1ca3..8a1e7a62ba8 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest_jsonplan/testCalcBetweenCascadedDeltaJoinJsonPlan.out
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DeltaJoinTest_jsonplan/testCalcBetweenCascadedDeltaJoinJsonPlan.out
@@ -690,14 +690,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2], metadata=[]]], fields=[c1, c2])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, no_delete_src3, project=[c1, c2]]], fields=[c1, c2])"
}, {
"id" : 11,
"type" : "stream-exec-drop-update-before_1",
@@ -766,14 +762,10 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL>",
- "description" : "TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2], metadata=[]]], fields=[d1, d2])"
+ "description" : "TableSourceScan(table=[[default_catalog, default_database, no_delete_src4, project=[d1, d2]]], fields=[d1, d2])"
}, {
"id" : 14,
"type" : "stream-exec-drop-update-before_1",
@@ -916,10 +908,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1008,10 +996,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1095,10 +1079,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1143,10 +1123,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1400,10 +1376,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1469,10 +1441,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1783,10 +1751,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`c1` DOUBLE NOT NULL, `c2` VARCHAR(2147483647) NOT NULL> NOT NULL"
@@ -1831,10 +1795,6 @@
"type" : "ProjectPushDown",
"projectedFields" : [ [ 1 ], [ 2 ] ],
"producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
- }, {
- "type" : "ReadingMetadata",
- "metadataKeys" : [ ],
- "producedType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
} ]
},
"outputType" : "ROW<`d1` DOUBLE NOT NULL, `d2` VARCHAR(2147483647) NOT NULL> NOT NULL"
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.xml
index a8fe2803227..27b2c9ad460 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.xml
@@ -37,7 +37,7 @@ LogicalAggregate(group=[{0, 1}], EXPR$2=[SUM($2)], EXPR$3=[COUNT()])
GroupAggregate(groupBy=[cat, gmt_date], select=[cat, gmt_date, SUM(cnt) AS EXPR$2, COUNT(*) AS EXPR$3])
+- Exchange(distribution=[hash[cat, gmt_date]])
+- Calc(select=[cat, gmt_date, cnt], where=[(gmt_date = CURRENT_DATE())])
- +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt], metadata=[]]], fields=[cat, gmt_date, cnt])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt]]], fields=[cat, gmt_date, cnt])
]]>
</Resource>
</TestCase>
@@ -64,7 +64,7 @@ GroupAggregate(groupBy=[cat, hh], select=[cat, hh, SUM(cnt) AS EXPR$2, COUNT(*)
+- Exchange(distribution=[hash[cat, hh]])
+- Calc(select=[cat, hh, cnt], where=[(SUBSTR(CAST(ts AS VARCHAR(2147483647)), 1, 2) = hh)])
+- Calc(select=[cat, cnt, ts, SUBSTR(CAST(LOCALTIME() AS VARCHAR(2147483647)), 1, 2) AS hh])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[cat, cnt, ts], metadata=[]]], fields=[cat, cnt, ts])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[cat, cnt, ts]]], fields=[cat, cnt, ts])
]]>
</Resource>
</TestCase>
@@ -92,7 +92,7 @@ Calc(select=[gmt_date, ts, 'fruit' AS cat, SUBSTR(CAST(ts AS VARCHAR(2147483647)
+- GroupAggregate(groupBy=[gmt_date, ts], select=[gmt_date, ts, SUM(cnt) AS EXPR$4])
+- Exchange(distribution=[hash[gmt_date, ts]])
+- Calc(select=[gmt_date, ts, cnt], where=[((gmt_date = CURRENT_DATE()) AND (cat = 'fruit') AND (ts = CURRENT_TIME()))])
- +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt, ts], metadata=[]]], fields=[cat, gmt_date, cnt, ts])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[cat, gmt_date, cnt, ts]]], fields=[cat, gmt_date, cnt, ts])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LimitableSourceTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LimitableSourceTest.xml
index d87c52c36f5..9fb2a543db1 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LimitableSourceTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LimitableSourceTest.xml
@@ -48,7 +48,7 @@ LogicalSort(offset=[10], fetch=[10])
<![CDATA[
Limit(offset=[10], fetch=[10])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[], limit=[20]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], limit=[20]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -67,7 +67,7 @@ LogicalSort(fetch=[10])
<![CDATA[
Limit(offset=[0], fetch=[10])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[], limit=[10]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], limit=[10]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -273,7 +273,7 @@ LogicalSort(offset=[1], fetch=[10])
<![CDATA[
Limit(offset=[1], fetch=[10])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[], limit=[11]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], limit=[11]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -292,7 +292,7 @@ LogicalSort(offset=[0], fetch=[10])
<![CDATA[
Limit(offset=[0], fetch=[10])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[], limit=[10]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], limit=[10]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -311,7 +311,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c], metadata=[], limit=[2]]], fields=[proctime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c], limit=[2]]], fields=[proctime, c])
]]>
</Resource>
</TestCase>
@@ -330,7 +330,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c], metadata=[], limit=[2]]], fields=[proctime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c], limit=[2]]], fields=[proctime, c])
]]>
</Resource>
</TestCase>
@@ -349,7 +349,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime], metadata=[], limit=[2]]], fields=[c, proctime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime], limit=[2]]], fields=[c, proctime])
]]>
</Resource>
</TestCase>
@@ -368,7 +368,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime], metadata=[], limit=[2]]], fields=[c, proctime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime], limit=[2]]], fields=[c, proctime])
]]>
</Resource>
</TestCase>
@@ -387,7 +387,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c], metadata=[], limit=[2]]], fields=[rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c], limit=[2]]], fields=[rowtime, c])
]]>
</Resource>
</TestCase>
@@ -406,7 +406,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c], metadata=[], limit=[2]]], fields=[rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c], limit=[2]]], fields=[rowtime, c])
]]>
</Resource>
</TestCase>
@@ -425,7 +425,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime], metadata=[], limit=[2]]], fields=[c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime], limit=[2]]], fields=[c, rowtime])
]]>
</Resource>
</TestCase>
@@ -444,7 +444,7 @@ LogicalSort(fetch=[2])
<![CDATA[
Limit(offset=[0], fetch=[2])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime], metadata=[], limit=[2]]], fields=[c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime], limit=[2]]], fields=[c, rowtime])
]]>
</Resource>
</TestCase>
@@ -482,7 +482,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c], metadata=[]]], fields=[proctime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c]]], fields=[proctime, c])
]]>
</Resource>
</TestCase>
@@ -501,7 +501,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c], metadata=[]]], fields=[proctime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[proctime, c]]], fields=[proctime, c])
]]>
</Resource>
</TestCase>
@@ -520,7 +520,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime], metadata=[]]], fields=[c, proctime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime]]], fields=[c, proctime])
]]>
</Resource>
</TestCase>
@@ -539,7 +539,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime], metadata=[]]], fields=[c, proctime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, proctime]]], fields=[c, proctime])
]]>
</Resource>
</TestCase>
@@ -558,7 +558,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c], metadata=[]]], fields=[rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c]]], fields=[rowtime, c])
]]>
</Resource>
</TestCase>
@@ -577,7 +577,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c], metadata=[]]], fields=[rowtime, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[rowtime, c]]], fields=[rowtime, c])
]]>
</Resource>
</TestCase>
@@ -596,7 +596,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime], metadata=[]]], fields=[c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime]]], fields=[c, rowtime])
]]>
</Resource>
</TestCase>
@@ -615,7 +615,7 @@ LogicalSort(offset=[2])
<![CDATA[
Limit(offset=[2], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime], metadata=[]]], fields=[c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[c, rowtime]]], fields=[c, rowtime])
]]>
</Resource>
</TestCase>
@@ -634,7 +634,7 @@ LogicalSort(offset=[10])
<![CDATA[
Limit(offset=[10], fetch=[unlimited])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MiniBatchIntervalInferTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MiniBatchIntervalInferTest.xml
index ab37dca0345..73493f105bb 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MiniBatchIntervalInferTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MiniBatchIntervalInferTest.xml
@@ -55,11 +55,11 @@ GlobalGroupAggregate(groupBy=[b], select=[b, COUNT(count$0) AS EXPR$1])
:- Exchange(distribution=[hash[a]])
: +- MiniBatchAssigner(interval=[1000ms], mode=[RowTime])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[a, b, rowtime]]], fields=[a, b, rowtime])
+- Exchange(distribution=[hash[a]])
+- MiniBatchAssigner(interval=[1000ms], mode=[RowTime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable2, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable2, project=[a, rowtime]]], fields=[a, rowtime])
]]>
</Resource>
</TestCase>
@@ -109,7 +109,7 @@ GlobalGroupAggregate(groupBy=[b], select=[b, COUNT(distinct$0 count$0) AS EXPR$1
+- Exchange(distribution=[hash[b]])
+- LocalGroupAggregate(groupBy=[b], select=[b, COUNT(distinct$0 a) AS count$0, MAX(b) AS max$1, SUM(c) AS sum$2, DISTINCT(a) AS distinct$0])
+- MiniBatchAssigner(interval=[1000ms], mode=[ProcTime])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable1, project=[b, a, c], metadata=[]]], fields=[b, a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable1, project=[b, a, c]]], fields=[b, a, c])
]]>
</Resource>
</TestCase>
@@ -177,10 +177,10 @@ Calc(select=[b, EXPR$1, w$start AS EXPR$2, w$end AS EXPR$3])
+- IntervalJoin(joinType=[InnerJoin], windowBounds=[isRowTime=true, leftLowerBound=-5000, leftUpperBound=10000, leftTimeIndex=2, rightTimeIndex=1], where=[((a = a0) AND (rowtime >= (rowtime0 - 5000:INTERVAL SECOND)) AND (rowtime <= (rowtime0 + 10000:INTERVAL SECOND)))], select=[a, b, rowtime, a0, rowtime0])
:- Exchange(distribution=[hash[a]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[a, b, rowtime], metadata=[]]], fields=[a, b, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[a, b, rowtime]]], fields=[a, b, rowtime])
+- Exchange(distribution=[hash[a]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable2, project=[a, rowtime], metadata=[]]], fields=[a, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable2, project=[a, rowtime]]], fields=[a, rowtime])
]]>
</Resource>
</TestCase>
@@ -244,13 +244,13 @@ Calc(select=[b, w0$o0 AS $1])
: +- GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 5000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(a) AS a, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
: +- Exchange(distribution=[hash[b]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ : +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a]]], fields=[b, rowtime, a])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, w$rowtime AS rt])
+- GroupWindowAggregate(groupBy=[b], window=[SlidingGroupWindow('w$, rowtime, 6000, 5000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(a) AS a, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable2, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable2, project=[b, rowtime, a]]], fields=[b, rowtime, a])
]]>
</Resource>
</TestCase>
@@ -304,7 +304,7 @@ Calc(select=[a, b])
: +- Exchange(distribution=[hash[a]])
: +- LocalGroupAggregate(groupBy=[a], select=[a, COUNT(b) AS count$0])
: +- MiniBatchAssigner(interval=[6000ms], mode=[ProcTime])
- : +- TableSourceScan(table=[[default_catalog, default_database, MyTable1, project=[a, b], metadata=[]]], fields=[a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, MyTable1, project=[a, b]]], fields=[a, b])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a])
+- GlobalGroupAggregate(groupBy=[b], select=[b, COUNT(count1$0) AS a])
@@ -313,7 +313,7 @@ Calc(select=[a, b])
+- GroupWindowAggregate(groupBy=[b], window=[SlidingGroupWindow('w$, rowtime, 6000, 5000)], select=[b])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a]]], fields=[b, rowtime, a])
]]>
</Resource>
</TestCase>
@@ -376,7 +376,7 @@ Sink(table=[default_catalog.default_database.appendSink1], fields=[id1, EXPR$1])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[id1, rowtime, text])
+- Exchange(distribution=[hash[id2]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime], metadata=[]]], fields=[id2, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime]]], fields=[id2, rowtime])
Sink(table=[default_catalog.default_database.appendSink2], fields=[id1, EXPR$1])
+- GroupWindowAggregate(groupBy=[id1], window=[TumblingGroupWindow('w$, ts, 9000)], select=[id1, LISTAGG(text, $f3) AS EXPR$1])
@@ -389,7 +389,7 @@ Sink(table=[default_catalog.default_database.appendSink2], fields=[id1, EXPR$1])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[id1, rowtime, text])
+- Exchange(distribution=[hash[id2]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime], metadata=[]]], fields=[id2, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime]]], fields=[id2, rowtime])
Sink(table=[default_catalog.default_database.retractSink3], fields=[id1, EXPR$1])
+- GlobalGroupAggregate(groupBy=[id1], select=[id1, COUNT(count$0) AS EXPR$1])
@@ -405,7 +405,7 @@ Sink(table=[default_catalog.default_database.retractSink3], fields=[id1, EXPR$1]
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[id1, rowtime, text])
+- Exchange(distribution=[hash[id2]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime], metadata=[]]], fields=[id2, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime]]], fields=[id2, rowtime])
== Optimized Execution Plan ==
Calc(select=[id1, rowtime AS ts, text])(reuse_id=[1])
@@ -415,7 +415,7 @@ Calc(select=[id1, rowtime AS ts, text])(reuse_id=[1])
: +- TableSourceScan(table=[[default_catalog, default_database, T1]], fields=[id1, rowtime, text])
+- Exchange(distribution=[hash[id2]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime], metadata=[]]], fields=[id2, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, T2, project=[id2, rowtime]]], fields=[id2, rowtime])
Exchange(distribution=[hash[id1]])(reuse_id=[2])
+- Calc(select=[ts, id1, text, '#' AS $f3])
@@ -535,7 +535,7 @@ GlobalGroupAggregate(groupBy=[cnt], select=[cnt, COUNT(count$0) AS EXPR$1])
+- Exchange(distribution=[hash[c]])
+- MiniBatchAssigner(interval=[1000ms], mode=[RowTime])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[a, c, rowtime], metadata=[]]], fields=[a, c, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[a, c, rowtime]]], fields=[a, c, rowtime])
]]>
</Resource>
</TestCase>
@@ -620,7 +620,7 @@ GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, $f1, 5000)],
+- GroupWindowAggregate(groupBy=[b], window=[TumblingGroupWindow('w$, rowtime, 10000)], properties=[w$start, w$end, w$rowtime, w$proctime], select=[b, COUNT(a) AS cnt, start('w$) AS w$start, end('w$) AS w$end, rowtime('w$) AS w$rowtime, proctime('w$) AS w$proctime])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a]]], fields=[b, rowtime, a])
]]>
</Resource>
</TestCase>
@@ -659,7 +659,7 @@ GlobalGroupAggregate(groupBy=[b], select=[b, SUM_RETRACT((sum$0, count$1)) AS EX
+- GroupWindowAggregate(groupBy=[b], window=[SlidingGroupWindow('w$, rowtime, 6000, 5000)], select=[b, COUNT(a) AS cnt], emit=[early delay 500 millisecond])
+- Exchange(distribution=[hash[b]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a], metadata=[]]], fields=[b, rowtime, a])
+ +- TableSourceScan(table=[[default_catalog, default_database, wmTable1, project=[b, rowtime, a]]], fields=[b, rowtime, a])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MultiJoinTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MultiJoinTest.xml
index 1372c8ec0a7..7a0fd28351b 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MultiJoinTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MultiJoinTest.xml
@@ -77,9 +77,9 @@ Calc(select=[user_id, name, category_name, order_count, total_items, total_value
: : : :- Exchange(distribution=[hash[user_id]])
: : : : +- ChangelogNormalize(key=[user_id])
: : : : +- Exchange(distribution=[hash[user_id]])
- : : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: : : +- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: : +- Exchange(distribution=[hash[order_id]])
: : +- Calc(select=[order_id, product_name, quantity, unit_price])
: : +- ChangelogNormalize(key=[item_id])
@@ -88,9 +88,9 @@ Calc(select=[user_id, name, category_name, order_count, total_items, total_value
: +- Exchange(distribution=[hash[category_id]])
: +- ChangelogNormalize(key=[category_id])
: +- Exchange(distribution=[hash[category_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, ProductCategories, project=[category_id, category_name], metadata=[]]], fields=[category_id, category_name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, ProductCategories, project=[category_id, category_name]]], fields=[category_id, category_name])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id], metadata=[]]], fields=[price, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id]]], fields=[price, user_id])
]]>
</Resource>
</TestCase>
@@ -138,17 +138,17 @@ Calc(select=[category_name, unique_users, total_sales, total_revenue, avg_sale_a
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id], metadata=[]]], fields=[user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id]]], fields=[user_id])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[user_id, product], metadata=[]]], fields=[user_id, product])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[user_id, product]]], fields=[user_id, product])
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[category_id])
: +- Exchange(distribution=[hash[category_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Categories, project=[category_id, category_name, user_id], metadata=[]]], fields=[category_id, category_name, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Categories, project=[category_id, category_name, user_id]]], fields=[category_id, category_name, user_id])
+- Exchange(distribution=[hash[user_id]])
+- ChangelogNormalize(key=[sale_id])
+- Exchange(distribution=[hash[sale_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Sales, project=[sale_id, user_id, amount], metadata=[]]], fields=[sale_id, user_id, amount])
+ +- TableSourceScan(table=[[default_catalog, default_database, Sales, project=[sale_id, user_id, amount]]], fields=[sale_id, user_id, amount])
]]>
</Resource>
</TestCase>
@@ -203,9 +203,9 @@ Calc(select=[user_id, name, order_id, dept_name, project_name, budget])
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[dept_id]])
: +- ChangelogNormalize(key=[dept_id], condition=[>(budget, 600000)])
: +- Exchange(distribution=[hash[dept_id]])
@@ -242,14 +242,14 @@ Calc(select=[user_id, name, order_id, payment_id, location])
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[order_id, user_id, payment_id, location])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(order_id), (payment_id), noUniqueKey], joinConditions=[=(user_id, user_id0), =(user_id0, user_id1)], select=[order_id,user_id,payment_id,user_id0,location,user_id1], rowType=[RecordType(VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) location, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -320,19 +320,19 @@ GroupAggregate(groupBy=[user_id, name], select=[user_id, name, COUNT_RETRACT(ord
: : :- Exchange(distribution=[hash[user_id]])
: : : +- ChangelogNormalize(key=[user_id])
: : : +- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: : :- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: : +- Exchange(distribution=[hash[user_id]])
: : +- TableSourceScan(table=[[default_catalog, default_database, Payments]], fields=[payment_id, price, user_id])
: +- Exchange(distribution=[hash[status_id]])
: +- ChangelogNormalize(key=[status_id])
: +- Exchange(distribution=[hash[status_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, OrderStatus, project=[status_id, is_final], metadata=[]]], fields=[status_id, is_final])
+ : +- TableSourceScan(table=[[default_catalog, default_database, OrderStatus, project=[status_id, is_final]]], fields=[status_id, is_final])
+- Exchange(distribution=[hash[method_id]])
+- ChangelogNormalize(key=[method_id])
+- Exchange(distribution=[hash[method_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, PaymentMethods, project=[method_id], metadata=[]]], fields=[method_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, PaymentMethods, project=[method_id]]], fields=[method_id])
]]>
</Resource>
</TestCase>
@@ -498,7 +498,7 @@ Calc(select=[user_id, order_id, payment_id, category_name, CASE(AND(is_premium,
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id], metadata=[]]], fields=[user_id])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id]]], fields=[user_id])
: :- Exchange(distribution=[hash[user_id]])
: : +- TableSourceScan(table=[[default_catalog, default_database, Orders]], fields=[order_id, user_id, product])
: +- Exchange(distribution=[hash[user_id]])
@@ -597,16 +597,16 @@ Calc(select=[user_id, UPPER(name) AS user_name, total_orders, ROUND(total_spent,
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: :- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id], metadata=[]]], fields=[price, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id]]], fields=[price, user_id])
+- Exchange(distribution=[hash[order_id]])
+- Calc(select=[order_id, metric_value])
+- ChangelogNormalize(key=[metric_id])
+- Exchange(distribution=[hash[metric_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, OrderMetrics, project=[order_id, metric_value, metric_id], metadata=[]]], fields=[order_id, metric_value, metric_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, OrderMetrics, project=[order_id, metric_value, metric_id]]], fields=[order_id, metric_value, metric_id])
]]>
</Resource>
</TestCase>
@@ -713,7 +713,7 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: +- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Users]], fields=[user_id, name, cash])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Payments]], fields=[payment_id, price, user_id])
+- Exchange(distribution=[hash[user_id]])
@@ -741,7 +741,7 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: +- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Users]], fields=[user_id, name, cash])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Payments]], fields=[payment_id, price, user_id])
+- Exchange(distribution=[hash[user_id]])
@@ -755,7 +755,7 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: +- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Users]], fields=[user_id, name, cash])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Payments]], fields=[payment_id, price, user_id])
+- Exchange(distribution=[hash[user_id]])
@@ -802,7 +802,7 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: +- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Users]], fields=[user_id, name, cash])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Payments]], fields=[payment_id, price, user_id])
+- Exchange(distribution=[hash[user_id]])
@@ -858,13 +858,13 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: : : :- Exchange(distribution=[hash[user_id]])
: : : : +- ChangelogNormalize(key=[user_id])
: : : : +- Exchange(distribution=[hash[user_id]])
- : : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: : : +- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: : +- Exchange(distribution=[hash[name]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[name], metadata=[]]], fields=[name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, LookupTable, project=[name]]], fields=[name])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -906,11 +906,11 @@ Calc(select=[user_id, name, order_id, payment_id, location])
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -964,12 +964,12 @@ MultiJoin(commonJoinKey=[payment_id], joinTypes=[LEFT], inputUniqueKeys=[noUniqu
: : : +- Exchange(distribution=[hash[user_id]])
: : : +- TableSourceScan(table=[[default_catalog, default_database, Users]], fields=[user_id, name, cash])
: : +- Exchange(distribution=[hash[user_id]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+: : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: +- Exchange(distribution=[hash[user_id, $f3]])
: +- Calc(select=[payment_id, price, user_id, UPPER(payment_id) AS $f3])
: +- TableSourceScan(table=[[default_catalog, default_database, Payments]], fields=[payment_id, price, user_id])
+- Exchange(distribution=[hash[location]])
- +- TableSourceScan(table=[[default_catalog, default_database, Shipments, project=[location], metadata=[]]], fields=[location])
+ +- TableSourceScan(table=[[default_catalog, default_database, Shipments, project=[location]]], fields=[location])
]]>
</Resource>
</TestCase>
@@ -1006,11 +1006,11 @@ Calc(select=[user_id, name, order_id, payment_id])
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1075,15 +1075,15 @@ Calc(select=[user_id, UPPER(name) AS user_name_upper, LOWER(product) AS product_
: : :- Exchange(distribution=[hash[user_id]])
: : : +- ChangelogNormalize(key=[user_id])
: : : +- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: : :- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[user_id, product], metadata=[]]], fields=[user_id, product])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[user_id, product]]], fields=[user_id, product])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id], metadata=[]]], fields=[price, user_id])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id]]], fields=[price, user_id])
: +- Exchange(distribution=[hash[product_id]])
: +- ChangelogNormalize(key=[product_id])
: +- Exchange(distribution=[hash[product_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, ProductDetails, project=[product_id, description, created_date, tags], metadata=[]]], fields=[product_id, description, created_date, tags])
+ : +- TableSourceScan(table=[[default_catalog, default_database, ProductDetails, project=[product_id, description, created_date, tags]]], fields=[product_id, description, created_date, tags])
+- Exchange(distribution=[hash[user_id]])
+- ChangelogNormalize(key=[user_id])
+- Exchange(distribution=[hash[user_id]])
@@ -1140,18 +1140,18 @@ Calc(select=[user_id, name, order_id, product_name, price, ROUND(*(price, 1.1),
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: +- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, Orders]], fields=[order_id, user_id, product])
:- Exchange(distribution=[hash[product_id]])
: +- ChangelogNormalize(key=[product_id])
: +- Exchange(distribution=[hash[product_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, ProductDetails, project=[product_id, product_name, price, created_date], metadata=[]]], fields=[product_id, product_name, price, created_date])
+ : +- TableSourceScan(table=[[default_catalog, default_database, ProductDetails, project=[product_id, product_name, price, created_date]]], fields=[product_id, product_name, price, created_date])
+- Exchange(distribution=[hash[product_id]])
+- Calc(select=[product_id, rating, review_text])
+- ChangelogNormalize(key=[review_id])
+- Exchange(distribution=[hash[review_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Reviews, project=[product_id, rating, review_text, review_id], metadata=[]]], fields=[product_id, rating, review_text, review_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Reviews, project=[product_id, rating, review_text, review_id]]], fields=[product_id, rating, review_text, review_id])
]]>
</Resource>
</TestCase>
@@ -1246,22 +1246,22 @@ Calc(select=[developer_id, person.info.name AS developer_name, ticket_id, report
: : : +- Calc(select=[developer_id, person, person.info.id AS $f3])
: : : +- ChangelogNormalize(key=[developer_id])
: : : +- Exchange(distribution=[hash[developer_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Developers, project=[developer_id, person], metadata=[]]], fields=[developer_id, person])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Developers, project=[developer_id, person]]], fields=[developer_id, person])
: : +- Exchange(distribution=[hash[$f3]])
: : +- Calc(select=[ticket_id, reporter, reporter.info.id AS $f3])
: : +- ChangelogNormalize(key=[ticket_id])
: : +- Exchange(distribution=[hash[ticket_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, SupportTickets, project=[ticket_id, reporter], metadata=[]]], fields=[ticket_id, reporter])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, SupportTickets, project=[ticket_id, reporter]]], fields=[ticket_id, reporter])
: +- Exchange(distribution=[hash[$f3]])
: +- Calc(select=[feedback_id, author, author.info.id AS $f3])
: +- ChangelogNormalize(key=[feedback_id])
: +- Exchange(distribution=[hash[feedback_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Feedback, project=[feedback_id, author], metadata=[]]], fields=[feedback_id, author])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Feedback, project=[feedback_id, author]]], fields=[feedback_id, author])
+- Exchange(distribution=[hash[$f3]])
+- Calc(select=[sub_id, subscriber, subscriber.info.id AS $f3])
+- ChangelogNormalize(key=[sub_id])
+- Exchange(distribution=[hash[sub_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Subscriptions, project=[sub_id, subscriber], metadata=[]]], fields=[sub_id, subscriber])
+ +- TableSourceScan(table=[[default_catalog, default_database, Subscriptions, project=[sub_id, subscriber]]], fields=[sub_id, subscriber])
]]>
</Resource>
</TestCase>
@@ -1305,13 +1305,13 @@ Calc(select=[user_id, order_id, product, price, location])
: +- Calc(select=[user_id])
: +- ChangelogNormalize(key=[user_id], condition=[>(cash, 100)])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, cash], metadata=[]]], fields=[user_id, cash])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, cash]]], fields=[user_id, cash])
:- Exchange(distribution=[hash[user_id]])
: +- Calc(select=[user_id, order_id, product], where=[IS NOT NULL(product)])
: +- TableSourceScan(table=[[default_catalog, default_database, Orders, filter=[]]], fields=[order_id, user_id, product])
:- Exchange(distribution=[hash[user_id]])
: +- Calc(select=[user_id, price], where=[>(price, 50)])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[], project=[price, user_id], metadata=[]]], fields=[price, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[], project=[price, user_id]]], fields=[price, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[user_id, location], where=[IS NOT NULL(location)])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments, filter=[]]], fields=[location, user_id])
@@ -1357,7 +1357,7 @@ MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER], inputUniqueKeys=[(user_id)
+- Calc(select=[user_id, order_id, payment_id, price])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER], inputUniqueKeys=[(order_id), (payment_id)], joinConditions=[=(user_id, user_id0)], select=[order_id,user_id,payment_id,user_id0,price], rowType=[RecordType(VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id0, INTEGER price)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[payment_id, user_id, price], where=[>(price, 100)])
+- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[]]], fields=[payment_id, price, user_id])
@@ -1383,11 +1383,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], stateTtlHints=[[[STATE_TTL options:[1d, 2d, 1h]]]], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1415,9 +1415,9 @@ Calc(select=[user_id, name, order_id, location])
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -1442,11 +1442,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1469,11 +1469,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1501,11 +1501,11 @@ Calc(select=[user_id, name, order_id, payment_id])
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1519,26 +1519,26 @@ Sink(table=[default_catalog.default_database.sink1], fields=[a, day, EXPR$2, EXP
+- MultiJoin(commonJoinKey=[a], joinTypes=[INNER], inputUniqueKeys=[noUniqueKey, noUniqueKey], joinConditions=[=(a, d)], select=[a,day,b0,c,d], rowType=[RecordType(INTEGER a, VARCHAR(2147483647) day, BIGINT b0, VARCHAR(2147483647) c, INTEGER d)])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a])
+- Exchange(distribution=[hash[d]])
- +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d], metadata=[]]], fields=[b, c, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d]]], fields=[b, c, d])
Sink(table=[default_catalog.default_database.sink2], fields=[a, day, b, c])
+- Calc(select=[a, day, b0 AS b, c])
+- MultiJoin(commonJoinKey=[a], joinTypes=[INNER], inputUniqueKeys=[noUniqueKey, noUniqueKey], joinConditions=[=(a, d)], select=[a,day,b0,c,d], rowType=[RecordType(INTEGER a, VARCHAR(2147483647) day, BIGINT b0, VARCHAR(2147483647) c, INTEGER d)])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day])
- : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a])
+ : +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a])
+- Exchange(distribution=[hash[d]])
+- Calc(select=[b, c, d], where=[>(b, 100)])
- +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d], metadata=[]]], fields=[b, c, d])
+ +- TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d]]], fields=[b, c, d])
advice[1]: [ADVICE] You might want to enable local-global two-phase optimization by configuring ('table.exec.mini-batch.enabled' to 'true', 'table.exec.mini-batch.allow-latency' to a positive long value, 'table.exec.mini-batch.size' to a positive long value).
advice[2]: [WARNING] The column(s): day(generated by non-deterministic function: CURRENT_TIMESTAMP ) can not satisfy the determinism requirement for correctly processing update message('UB'/'UA'/'D' in changelogMode, not 'I' only), this usually happens when input node has no upsertKey(upsertKeys=[{}]) or current node outputs non-deterministic update messages. Please consider removing these non-deterministic columns or making them deterministic by using deterministic functions.
related rel plan:
Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), _UTF-16LE'yyMMdd') AS day], changelogMode=[I,UB,UA,D])
-+- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a], changelogMode=[I,UB,UA,D])
++- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a], changelogMode=[I,UB,UA,D])
]]>
@@ -1572,14 +1572,14 @@ Calc(select=[user_id, order_id, payment_id, location])
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id], metadata=[]]], fields=[user_id])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id]]], fields=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[payment_id, user_id, location])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER], inputUniqueKeys=[(payment_id), noUniqueKey], joinConditions=[=(user_id, user_id0)], select=[payment_id,user_id,location,user_id0], rowType=[RecordType(VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id, VARCHAR(2147483647) location, VARCHAR(2147483647) user_id0)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -1627,7 +1627,7 @@ Sink(table=[default_catalog.default_database.sink_four_way], fields=[user_id, or
+- Calc(select=[user_id, order_id, user_id0, payment_id, user_id1, name, location])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER, INNER], inputUniqueKeys=[(user_id), (order_id, user_id), (payment_id, user_id), (user_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1), =(user_id, user_id2)], select=[user_id,name,order_id,user_id0,payment_id,user_id1,user_id2,location], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCH [...]
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
: +- Calc(select=[order_id, user_id])
: +- ChangelogNormalize(key=[order_id, user_id], condition=[IS NOT NULL(product)])
@@ -1679,11 +1679,11 @@ Sink(table=[default_catalog.default_database.sink_three_way], fields=[user_id, o
+- Calc(select=[user_id0 AS user_id, order_id, user_id1 AS user_id0, payment_id, user_id AS user_id1, description])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id, user_id), (payment_id, user_id)], joinConditions=[=(user_id0, user_id), =(user_id0, user_id1)], select=[user_id,description,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) description, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, description], metadata=[]]], fields=[user_id, description])
+ : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, description]]], fields=[user_id, description])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, OrdersPK, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, OrdersPK, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, PaymentsPK, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, PaymentsPK, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1715,7 +1715,7 @@ Sink(table=[default_catalog.default_database.sink_two_way], fields=[user_id, ord
+- Calc(select=[user_id0 AS user_id, order_id, product, region_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER], inputUniqueKeys=[(user_id), (order_id, user_id)], joinConditions=[=(user_id, user_id0)], select=[user_id,region_id,order_id,user_id0,product], rowType=[RecordType(VARCHAR(2147483647) user_id, INTEGER region_id, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) product)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, region_id], metadata=[]]], fields=[user_id, region_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, region_id]]], fields=[user_id, region_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, OrdersPK]], fields=[order_id, user_id, product])
]]>
@@ -1752,7 +1752,7 @@ Sink(table=[default_catalog.default_database.sink_two_way], fields=[user_id, ord
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, region_id], metadata=[]]], fields=[user_id, region_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, region_id]]], fields=[user_id, region_id])
+- Exchange(distribution=[hash[user_id]])
+- ChangelogNormalize(key=[order_id])
+- Exchange(distribution=[hash[order_id]])
@@ -1790,7 +1790,7 @@ Sink(table=[default_catalog.default_database.sink_two_way], fields=[user_id, ord
:- Exchange(distribution=[hash[user_id]])
: +- TableSourceScan(table=[[default_catalog, default_database, OrdersPK]], fields=[order_id, user_id, product])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, region_id], metadata=[]]], fields=[user_id, region_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, UsersPK, project=[user_id, region_id]]], fields=[user_id, region_id])
]]>
</Resource>
</TestCase>
@@ -1832,13 +1832,13 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], age=[$7])
Calc(select=[user_id, name, order_id, age])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), noUniqueKey], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,user_id1,age], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) user_id1, INTEGER age)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[user_id, age])
+- LookupJoin(table=[default_catalog.default_database.LookupTable], joinType=[InnerJoin], lookup=[id=user_id], select=[user_id, id, age])
- +- TableSourceScan(table=[[default_catalog, default_database, StreamTable, project=[user_id], metadata=[]]], fields=[user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, StreamTable, project=[user_id]]], fields=[user_id])
]]>
</Resource>
</TestCase>
@@ -1875,11 +1875,11 @@ Calc(select=[user_id, name, order_id, payment_id])
: :- Exchange(distribution=[hash[user_id]])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -1981,11 +1981,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[(user_id = user_id0), (user_id = user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2003,21 +2003,21 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
== Optimized Execution Plan ==
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[(user_id = user_id0), (user_id = user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2050,11 +2050,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2094,9 +2094,9 @@ Calc(select=[user_id, name, order_id, payment_id])
: : +- Exchange(distribution=[hash[user_id]])
: : +- TableSourceScan(table=[[default_catalog, default_database, Users]], fields=[user_id, name, cash])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[price]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, price], metadata=[]]], fields=[payment_id, price])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, price]]], fields=[payment_id, price])
]]>
</Resource>
</TestCase>
@@ -2130,11 +2130,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], stateTtlHints=[[[STATE_TTL options:[0s, 2d, 0s]]]], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2168,11 +2168,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, INNER], inputUniqueKeys=[(user_id), (order_id), (payment_id)], stateTtlHints=[[[STATE_TTL options:[1d, 2d, 1h]]]], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2206,11 +2206,11 @@ MultiJoin(commonJoinKey=[noCommonJoinKey], joinTypes=[INNER], inputUniqueKeys=[n
: :- Exchange(distribution=[single])
: : +- ChangelogNormalize(key=[user_id])
: : +- Exchange(distribution=[hash[user_id]])
-: : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+: : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: +- Exchange(distribution=[single])
-: +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id], metadata=[]]], fields=[order_id])
+: +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id]]], fields=[order_id])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id], metadata=[]]], fields=[payment_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id]]], fields=[payment_id])
]]>
</Resource>
</TestCase>
@@ -2233,11 +2233,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[INNER, LEFT], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2277,9 +2277,9 @@ Calc(select=[name, proctime, $rowtime, price])
:- Exchange(distribution=[hash[user_id]])
: +- Calc(select=[user_id, CAST($rowtime AS TIMESTAMP(3)) AS $rowtime])
: +- WatermarkAssigner(rowtime=[$rowtime], watermark=[$rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, OrdersWithRowtime, project=[user_id, $rowtime], metadata=[]]], fields=[user_id, $rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, OrdersWithRowtime, project=[user_id, $rowtime]]], fields=[user_id, $rowtime])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id], metadata=[]]], fields=[price, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[price, user_id]]], fields=[price, user_id])
]]>
</Resource>
</TestCase>
@@ -2312,11 +2312,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[LEFT, LEFT], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[(user_id = user_id0), (user_id = user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2334,21 +2334,21 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[LEFT, LEFT], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
== Optimized Execution Plan ==
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[LEFT, LEFT], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[(user_id = user_id0), (user_id = user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2381,11 +2381,11 @@ LogicalProject(user_id=[$0], name=[$1], order_id=[$3], payment_id=[$6])
Calc(select=[user_id, name, order_id, payment_id])
+- MultiJoin(commonJoinKey=[user_id], joinTypes=[LEFT, LEFT], inputUniqueKeys=[(user_id), (order_id), (payment_id)], joinConditions=[=(user_id, user_id0), =(user_id, user_id1)], select=[user_id,name,order_id,user_id0,payment_id,user_id1], rowType=[RecordType(VARCHAR(2147483647) user_id, VARCHAR(2147483647) name, VARCHAR(2147483647) order_id, VARCHAR(2147483647) user_id0, VARCHAR(2147483647) payment_id, VARCHAR(2147483647) user_id1)])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
]]>
</Resource>
</TestCase>
@@ -2423,9 +2423,9 @@ Calc(select=[user_id, CAST('Gus' AS VARCHAR(2147483647)) AS name, order_id, CAST
: +- Calc(select=[user_id])
: +- ChangelogNormalize(key=[user_id], condition=[(name = 'Gus')])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[payment_id, user_id], where=[(price > 10)])
+- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[]]], fields=[payment_id, price, user_id])
@@ -2450,9 +2450,9 @@ Calc(select=[user_id, CAST(_UTF-16LE'Gus':VARCHAR(2147483647) CHARACTER SET "UTF
: +- Calc(select=[user_id])
: +- ChangelogNormalize(key=[user_id], condition=[=(name, _UTF-16LE'Gus':VARCHAR(2147483647) CHARACTER SET "UTF-16LE")])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[payment_id, user_id], where=[>(price, 10)])
+- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[]]], fields=[payment_id, price, user_id])
@@ -2464,9 +2464,9 @@ Calc(select=[user_id, CAST('Gus' AS VARCHAR(2147483647)) AS name, order_id, CAST
: +- Calc(select=[user_id])
: +- ChangelogNormalize(key=[user_id], condition=[(name = 'Gus')])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[payment_id, user_id], where=[(price > 10)])
+- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[]]], fields=[payment_id, price, user_id])
@@ -2507,9 +2507,9 @@ Calc(select=[user_id, CAST('Gus' AS VARCHAR(2147483647)) AS name, order_id, CAST
: +- Calc(select=[user_id])
: +- ChangelogNormalize(key=[user_id], condition=[=(name, 'Gus')])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, filter=[], project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- Calc(select=[payment_id, user_id], where=[>(price, 10)])
+- TableSourceScan(table=[[default_catalog, default_database, Payments, filter=[]]], fields=[payment_id, price, user_id])
@@ -2650,12 +2650,12 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: : :- Exchange(distribution=[hash[user_id]])
: : : +- ChangelogNormalize(key=[user_id])
: : : +- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: +- Exchange(distribution=[hash[user_id0]])
: +- Calc(select=[payment_id, CAST(user_id AS INTEGER) AS user_id0])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -2697,11 +2697,11 @@ Calc(select=[user_id, name, order_id, payment_id, location])
:- Exchange(distribution=[hash[user_id]])
: +- ChangelogNormalize(key=[user_id])
: +- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
:- Exchange(distribution=[hash[user_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
@@ -2803,11 +2803,11 @@ Calc(select=[user_id, name, order_id, payment_id, location])
: : :- Exchange(distribution=[hash[user_id]])
: : : +- ChangelogNormalize(key=[user_id])
: : : +- Exchange(distribution=[hash[user_id]])
- : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name], metadata=[]]], fields=[user_id, name])
+ : : : +- TableSourceScan(table=[[default_catalog, default_database, Users, project=[user_id, name]]], fields=[user_id, name])
: : +- Exchange(distribution=[hash[user_id]])
- : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id], metadata=[]]], fields=[order_id, user_id])
+ : : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[order_id, user_id]]], fields=[order_id, user_id])
: +- Exchange(distribution=[single])
- : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id], metadata=[]]], fields=[payment_id, user_id])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Payments, project=[payment_id, user_id]]], fields=[payment_id, user_id])
+- Exchange(distribution=[hash[user_id]])
+- TableSourceScan(table=[[default_catalog, default_database, Shipments]], fields=[location, user_id])
]]>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/NonDeterministicDagTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/NonDeterministicDagTest.xml
index 568139a28ec..4f3aa25744a 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/NonDeterministicDagTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/NonDeterministicDagTest.xml
@@ -44,7 +44,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, cnt, v
+- GroupAggregate(groupBy=[a], select=[a, COUNT_RETRACT(*) AS cnt, COUNT_RETRACT(DISTINCT c) FILTER $f2 AS $f2])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, (b > (UNIX_TIMESTAMP() - 180)) IS TRUE AS $f2])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c, b], metadata=[]]], fields=[a, c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c, b]]], fields=[a, c, b])
]]>
</Resource>
</TestCase>
@@ -76,7 +76,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, cnt, vali
+- GroupAggregate(groupBy=[a], select=[a, COUNT_RETRACT(*) AS cnt, COUNT_RETRACT(DISTINCT c) FILTER $f2 AS $f2])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, (b > (UNIX_TIMESTAMP() - 180)) IS TRUE AS $f2])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c, b], metadata=[]]], fields=[a, c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c, b]]], fields=[a, c, b])
]]>
</Resource>
</TestCase>
@@ -175,7 +175,7 @@ Calc(select=[a, c-day, b, d])
+- Join(joinType=[LeftAntiJoin], where=[(a = a0)], select=[a, b, c-day, d], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a], where=[(b > 100)])
+- Reused(reference_id=[1])
@@ -213,7 +213,7 @@ Calc(select=[a, c-day, b, d])
+- Join(joinType=[LeftAntiJoin], where=[(a = a0)], select=[a, b, c-day, d], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a], where=[(b > 100)])
+- Reused(reference_id=[1])
@@ -539,7 +539,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b0 AS b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], joinCondition=[(b > ndFunc(b0))], select=[a, b, a0, b0, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -571,7 +571,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[ndFunc(a0) AS a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, c, a0], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -606,7 +606,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, ve
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, version, c], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b AS version, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], where=[(b > (UNIX_TIMESTAMP() - 300))], select=[a, a, b, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -638,7 +638,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], where=[(ndFunc(b) > 100)], select=[a, b, c, a], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -670,7 +670,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, c, a0], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -702,7 +702,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, c, a0], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -734,7 +734,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, c, a0, b], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -766,7 +766,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, c, a0, b], upsertMaterialize=[true], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -799,7 +799,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -832,7 +832,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -864,7 +864,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -896,7 +896,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertMaterialize=[true], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -929,7 +929,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_without_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -962,7 +962,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_without_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertMaterialize=[true], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -994,7 +994,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_without_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1026,7 +1026,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_without_pk], joinType=[InnerJoin], lookup=[a=a], select=[a, b, a0, c], upsertMaterialize=[true], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1061,7 +1061,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Join(joinType=[InnerJoin], where=[($f4 = $f40)], select=[a, c, $f4, b, $f40], leftInputSpec=[HasUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[$f4]])
: +- Calc(select=[a, c, ndFunc(b) AS $f4])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[$f4]])
+- Calc(select=[b, ndFunc(b) AS $f4])
+- Reused(reference_id=[1])
@@ -1098,9 +1098,9 @@ Sink(table=[default_catalog.default_database.t_join_sink], fields=[order_id, ord
+- Calc(select=[CAST(order_id AS INTEGER) AS order_id, order_name, logistics_id, logistics_target, logistics_source, CAST(NOW() AS TIMESTAMP(6)) AS logistics_time])
+- Join(joinType=[LeftOuterJoin], where=[(order_id = order_id0)], select=[order_id, order_name, logistics_id, logistics_target, logistics_source, order_id0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[HasUniqueKey])
:- Exchange(distribution=[hash[order_id]])
- : +- TableSourceScan(table=[[default_catalog, default_database, t_order, project=[order_id, order_name], metadata=[]]], fields=[order_id, order_name])
+ : +- TableSourceScan(table=[[default_catalog, default_database, t_order, project=[order_id, order_name]]], fields=[order_id, order_name])
+- Exchange(distribution=[hash[order_id]])
- +- TableSourceScan(table=[[default_catalog, default_database, t_logistics, project=[logistics_id, logistics_target, logistics_source, order_id], metadata=[]]], fields=[logistics_id, logistics_target, logistics_source, order_id])
+ +- TableSourceScan(table=[[default_catalog, default_database, t_logistics, project=[logistics_id, logistics_target, logistics_source, order_id]]], fields=[logistics_id, logistics_target, logistics_source, order_id])
]]>
</Resource>
</TestCase>
@@ -1134,7 +1134,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, ve
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, version, c], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b0 AS version, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[LeftOuterJoin], lookup=[a=a], joinCondition=[(b > (UNIX_TIMESTAMP() - 300))], select=[a, b, a0, b0, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1167,7 +1167,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[LeftOuterJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1200,7 +1200,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_with_pk], joinType=[LeftOuterJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1232,7 +1232,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_without_pk], joinType=[LeftOuterJoin], lookup=[a=a], select=[a, b, a0, c], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1264,7 +1264,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Calc(select=[a, b, c])
+- LookupJoin(table=[default_catalog.default_database.dim_without_pk], joinType=[LeftOuterJoin], lookup=[a=a], select=[a, b, a0, c], upsertMaterialize=[true], upsertKey=[[0]])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1296,7 +1296,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Join(joinType=[InnerJoin], where=[((b = b0) AND (proctime > (proctime0 - 5000:INTERVAL SECOND)))], select=[b, c, proctime, a, b0, proctime0], leftInputSpec=[NoUniqueKey], rightInputSpec=[HasUniqueKey])
:- Exchange(distribution=[hash[b]])
: +- Calc(select=[b, c, PROCTIME_MATERIALIZE(PROCTIME()) AS proctime])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[a, b, PROCTIME_MATERIALIZE(PROCTIME()) AS proctime])
+- Reused(reference_id=[1])
@@ -1331,7 +1331,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Join(joinType=[InnerJoin], where=[((a = a0) AND (proctime > (proctime0 - 5000:INTERVAL SECOND)))], select=[a, c, proctime, a0, b, proctime0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, c, PROCTIME_MATERIALIZE(PROCTIME()) AS proctime])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, PROCTIME_MATERIALIZE(PROCTIME()) AS proctime])
+- Reused(reference_id=[1])
@@ -1366,7 +1366,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Join(joinType=[InnerJoin], where=[((a = a0) AND (proctime > (proctime0 - 5000:INTERVAL SECOND)))], select=[a, c, proctime, a0, b, proctime0], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, c, PROCTIME_MATERIALIZE(PROCTIME()) AS proctime])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, PROCTIME_MATERIALIZE(PROCTIME()) AS proctime])
+- Reused(reference_id=[1])
@@ -1402,7 +1402,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
: +- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
: +- DropUpdateBefore
: +- Calc(select=[a, b, op_ts])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts], metadata=[]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, CAST(op_ts AS TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)) AS op_ts])
+- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
@@ -1441,7 +1441,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
: +- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
: +- DropUpdateBefore
: +- Calc(select=[a, b, op_ts])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts], metadata=[]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, CAST(op_ts AS TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)) AS op_ts])
+- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
@@ -1479,7 +1479,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
: +- Calc(select=[a, b, CAST(op_ts AS TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)) AS op_ts])
: +- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
: +- Calc(select=[a, b, op_ts])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts], metadata=[]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, CAST(op_ts AS TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)) AS op_ts])
+- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
@@ -1516,7 +1516,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
: +- Calc(select=[a, b, CAST(op_ts AS TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)) AS op_ts])
: +- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
: +- Calc(select=[a, b, op_ts])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts], metadata=[]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_watermark, project=[a, b, c, op_ts]]], fields=[a, b, c, op_ts])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, CAST(op_ts AS TIMESTAMP_WITH_LOCAL_TIME_ZONE(3)) AS op_ts])
+- WatermarkAssigner(rowtime=[op_ts], watermark=[(op_ts - 5000:INTERVAL SECOND)])
@@ -1717,7 +1717,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
<![CDATA[
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- Calc(select=[a, b, c], where=[(b > (UNIX_TIMESTAMP() - 300))])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, filter=[], project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, filter=[], project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -1742,7 +1742,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
<![CDATA[
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- Calc(select=[a, b, c], where=[(b > (UNIX_TIMESTAMP() - 300))])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, filter=[], project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, filter=[], project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -1766,7 +1766,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, EX
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, EXPR$1, c])
+- Calc(select=[a, ndFunc(b) AS EXPR$1, c])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -1790,7 +1790,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, EX
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, EXPR$1, c])
+- Calc(select=[a, ndFunc(b) AS EXPR$1, c])
+- DropUpdateBefore
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -1813,7 +1813,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
<![CDATA[
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, EXPR$1, c])
+- Calc(select=[a, ndFunc(b) AS EXPR$1, c])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -1928,7 +1928,7 @@ LogicalAggregate(group=[{0}], cnt=[COUNT()], qmt=[SUM($1)])
GroupAggregate(groupBy=[day], select=[day, COUNT_RETRACT(*) AS cnt, SUM_RETRACT(b) AS qmt])
+- Exchange(distribution=[hash[day]])
+- Calc(select=[CONCAT(CAST(a AS VARCHAR(2147483647)), DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS day, b])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -1962,7 +1962,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, cnt, day]
+- GroupAggregate(groupBy=[day, a], select=[day, a, COUNT_RETRACT(*) AS cnt])
+- Exchange(distribution=[hash[day, a]])
+- Calc(select=[DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day, a])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a]]], fields=[a])
]]>
</Resource>
</TestCase>
@@ -1993,7 +1993,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[EXPR$0, cnt,
+- GroupAggregate(groupBy=[EXPR$0, c], select=[EXPR$0, c, COUNT_RETRACT(*) AS cnt])
+- Exchange(distribution=[hash[EXPR$0, c]])
+- Calc(select=[ndFunc(a) AS EXPR$0, c])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c], metadata=[]]], fields=[a, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, c]]], fields=[a, c])
]]>
</Resource>
</TestCase>
@@ -2032,7 +2032,7 @@ Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c], up
+- Join(joinType=[InnerJoin], where=[(b = b0)], select=[a, b, a0, b0, c-day], leftInputSpec=[HasUniqueKey], rightInputSpec=[HasUniqueKey])
:- Exchange(distribution=[hash[b]])
: +- Calc(select=[a, b])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c], metadata=[]]], fields=[a, b, c])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c]]], fields=[a, b, c])(reuse_id=[1])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day])
+- Reused(reference_id=[1])
@@ -2070,7 +2070,7 @@ Calc(select=[a, a0, c-day, b0 AS b, d])
+- Join(joinType=[InnerJoin], where=[(b = b0)], select=[a, b, a0, b0, c-day, d], leftInputSpec=[HasUniqueKey], rightInputSpec=[HasUniqueKey])
:- Exchange(distribution=[hash[b]])
: +- Calc(select=[a, b])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
+- Reused(reference_id=[1])
@@ -2108,7 +2108,7 @@ Calc(select=[a, a0, c-day, b0 AS b, d])
+- Join(joinType=[InnerJoin], where=[(b = b0)], select=[a, b, a0, b0, c-day, d], leftInputSpec=[HasUniqueKey], rightInputSpec=[HasUniqueKey])
:- Exchange(distribution=[hash[b]])
: +- Calc(select=[a, b])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
+- Reused(reference_id=[1])
@@ -2146,7 +2146,7 @@ Calc(select=[a, c-day, b0 AS b, d])
+- Join(joinType=[InnerJoin], where=[(b = b0)], select=[a, b, b0, c-day, d], leftInputSpec=[HasUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[b]])
: +- Calc(select=[a, b])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[b]])
+- Calc(select=[b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
+- Reused(reference_id=[1])
@@ -2185,7 +2185,7 @@ Calc(select=[a, c-day, b, d])
:- Exchange(distribution=[hash[a]])
: +- DropUpdateBefore
: +- Calc(select=[a])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
+- DropUpdateBefore
@@ -2225,7 +2225,7 @@ Calc(select=[a, c-day, b, d])
:- Exchange(distribution=[hash[a]])
: +- DropUpdateBefore
: +- Calc(select=[a])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
+- DropUpdateBefore
@@ -2408,9 +2408,9 @@ LogicalSink(table=[default_catalog.default_database.sink2], fields=[a, day, b, c
<![CDATA[
Exchange(distribution=[hash[a]])(reuse_id=[1])
+- Calc(select=[a, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day])
- +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a], metadata=[]]], fields=[a])
+ +- TableSourceScan(table=[[default_catalog, default_database, src1, project=[a]]], fields=[a])
-TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d], metadata=[]]], fields=[b, c, d])(reuse_id=[2])
+TableSourceScan(table=[[default_catalog, default_database, src2, project=[b, c, d]]], fields=[b, c, d])(reuse_id=[2])
Sink(table=[default_catalog.default_database.sink1], fields=[a, day, EXPR$2, EXPR$3])
+- GroupAggregate(groupBy=[a, day], select=[a, day, SUM_RETRACT(b) AS EXPR$2, COUNT_RETRACT(DISTINCT c) AS EXPR$3])
@@ -2857,7 +2857,7 @@ Sink(table=[default_catalog.default_database.sink_with_composite_pk], fields=[a,
+- Exchange(distribution=[hash[a]])
+- GroupAggregate(groupBy=[a], select=[a, MAX(c) AS c, SUM(b) AS cnt])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b], metadata=[]]], fields=[a, c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b]]], fields=[a, c, b])
]]>
</Resource>
</TestCase>
@@ -2891,7 +2891,7 @@ Sink(table=[default_catalog.default_database.sink_with_composite_pk], fields=[a,
+- Exchange(distribution=[hash[a]])
+- GroupAggregate(groupBy=[a], select=[a, MAX(c) AS c, SUM(b) AS cnt])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b], metadata=[]]], fields=[a, c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b]]], fields=[a, c, b])
]]>
</Resource>
</TestCase>
@@ -2963,7 +2963,7 @@ Calc(select=[a, c-day, b, d])
+- Join(joinType=[LeftSemiJoin], where=[(a = a0)], select=[a, b, c-day, d], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a], where=[(b > 100)])
+- Reused(reference_id=[1])
@@ -3001,7 +3001,7 @@ Calc(select=[a, c-day, b, d])
+- Join(joinType=[LeftSemiJoin], where=[(a = a0)], select=[a, b, c-day, d], leftInputSpec=[JoinKeyContainsUniqueKey], rightInputSpec=[JoinKeyContainsUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b, CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c-day, d])
- : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+ : +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a], where=[(b > 100)])
+- Reused(reference_id=[1])
@@ -3037,7 +3037,7 @@ LogicalProject(c=[CONCAT($2, DATE_FORMAT(CURRENT_TIMESTAMP, _UTF-16LE'yyMMdd'))]
<![CDATA[
Join(joinType=[LeftSemiJoin], where=[(c = c0)], select=[a, b, c, d], leftInputSpec=[HasUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[c]])
-: +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d], metadata=[]]], fields=[a, b, c, d])(reuse_id=[1])
+: +- TableSourceScan(table=[[default_catalog, default_database, cdc, project=[a, b, c, d]]], fields=[a, b, c, d])(reuse_id=[1])
+- Exchange(distribution=[hash[c]])
+- Calc(select=[CONCAT(c, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd')) AS c], where=[(b > 100)])
+- Reused(reference_id=[1])
@@ -3063,7 +3063,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, project=[a, b], metadata=[]]], fields=[a, b])(reuse_id=[1])
+TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, project=[a, b]]], fields=[a, b])(reuse_id=[1])
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, EXPR$1, day])
+- Calc(select=[a, EXPR$1, day])
@@ -3101,7 +3101,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
<![CDATA[
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, day], upsertMaterialize=[true], conflictStrategy=[DEDUPLICATE])
+- Calc(select=[a, b, DATE_FORMAT(CURRENT_TIMESTAMP(), 'yyMMdd') AS day], where=[(b > 100)])
- +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, cdc_with_computed_col, filter=[], project=[a, b]]], fields=[a, b])
]]>
</Resource>
</TestCase>
@@ -3138,7 +3138,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- TemporalJoin(joinType=[InnerJoin], where=[((currency = currency0) AND __TEMPORAL_JOIN_CONDITION(rowtime, rowtime0, __TEMPORAL_JOIN_CONDITION_PRIMARY_KEY(currency0), __TEMPORAL_JOIN_LEFT_KEY(currency), __TEMPORAL_JOIN_RIGHT_KEY(currency0)))], select=[currency, rowtime, currency0, rate, valid, metadata_1, rowtime0])
:- Exchange(distribution=[hash[currency]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[currency, rowtime], metadata=[]]], fields=[currency, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[currency, rowtime]]], fields=[currency, rowtime])
+- Exchange(distribution=[hash[currency]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
+- Calc(select=[currency, rate, valid, metadata_1, rowtime])
@@ -3179,7 +3179,7 @@ Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- TemporalJoin(joinType=[InnerJoin], where=[((currency = currency0) AND __TEMPORAL_JOIN_CONDITION(rowtime, rowtime0, __TEMPORAL_JOIN_CONDITION_PRIMARY_KEY(currency0), __TEMPORAL_JOIN_LEFT_KEY(currency), __TEMPORAL_JOIN_RIGHT_KEY(currency0)))], select=[currency, rowtime, currency0, rate, valid, metadata_1, rowtime0])
:- Exchange(distribution=[hash[currency]])
: +- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[currency, rowtime], metadata=[]]], fields=[currency, rowtime])
+ : +- TableSourceScan(table=[[default_catalog, default_database, Orders, project=[currency, rowtime]]], fields=[currency, rowtime])
+- Exchange(distribution=[hash[currency]])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
+- Calc(select=[currency, rate, valid, metadata_1, rowtime])
@@ -3246,7 +3246,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
<![CDATA[
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- Union(all=[true], union=[a, b, c])
- :- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ :- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, b, c]]], fields=[a, b, c])
+- Calc(select=[CAST(a AS INTEGER) AS a, metadata_3, c])
+- TableSourceScan(table=[[default_catalog, default_database, cdc_with_meta, project=[a, c], metadata=[metadata_3]]], fields=[a, c, metadata_3])
]]>
@@ -3318,7 +3318,7 @@ Sink(table=[default_catalog.default_database.sink_with_composite_pk], fields=[a,
+- GroupAggregate(groupBy=[a], select=[a, MAX(c) AS c, SUM(b) FILTER $f3 AS cnt])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, b, (b > 0) IS TRUE AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b], metadata=[]]], fields=[a, c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b]]], fields=[a, c, b])
]]>
</Resource>
</TestCase>
@@ -3353,7 +3353,7 @@ Sink(table=[default_catalog.default_database.sink_with_composite_pk], fields=[a,
+- GroupAggregate(groupBy=[a], select=[a, MAX(c) AS c, SUM(b) FILTER $f3 AS cnt])
+- Exchange(distribution=[hash[a]])
+- Calc(select=[a, c, b, (b > 0) IS TRUE AS $f3])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b], metadata=[]]], fields=[a, c, b])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, c, b]]], fields=[a, c, b])
]]>
</Resource>
</TestCase>
@@ -3377,7 +3377,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- ChangelogNormalize(key=[a])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -3401,7 +3401,7 @@ LogicalSink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b,
Sink(table=[default_catalog.default_database.sink_with_pk], fields=[a, b, c])
+- ChangelogNormalize(key=[a])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -3425,7 +3425,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- ChangelogNormalize(key=[a])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
@@ -3449,7 +3449,7 @@ LogicalSink(table=[default_catalog.default_database.sink_without_pk], fields=[a,
Sink(table=[default_catalog.default_database.sink_without_pk], fields=[a, b, c])
+- ChangelogNormalize(key=[a])
+- Exchange(distribution=[hash[a]])
- +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c], metadata=[]]], fields=[a, b, c])
+ +- TableSourceScan(table=[[default_catalog, default_database, upsert_src, project=[a, b, c]]], fields=[a, b, c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/PartitionableSourceTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/PartitionableSourceTest.xml
index 6dc56a75523..20d5864c999 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/PartitionableSourceTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/PartitionableSourceTest.xml
@@ -141,7 +141,7 @@ LogicalProject(name=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name], metadata=[]]], fields=[name])
+TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name]]], fields=[name])
]]>
</Resource>
</TestCase>
@@ -159,7 +159,7 @@ LogicalProject(name=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name], metadata=[]]], fields=[name])
+TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name]]], fields=[name])
]]>
</Resource>
</TestCase>
@@ -177,7 +177,7 @@ LogicalProject(name=[$1])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name], metadata=[]]], fields=[name])
+TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[name]]], fields=[name])
]]>
</Resource>
</TestCase>
@@ -196,7 +196,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -215,7 +215,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -234,7 +234,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[default_catalog, default_database, PartitionableAndFilterableTable, partitions=[{part1=A, part2=2}], filter=[>(id, 1)], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -253,7 +253,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -272,7 +272,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[test_catalog, test_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
@@ -291,7 +291,7 @@ LogicalProject(id=[$0], name=[$1], part1=[$2], part2=[$3], virtualField=[$4])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, name, CAST('A' AS VARCHAR(2147483647)) AS part1, part2, (part2 + 1) AS virtualField])
-+- TableSourceScan(table=[[default_catalog, default_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2], metadata=[]]], fields=[id, name, part2])
++- TableSourceScan(table=[[default_catalog, default_database, PartitionableTable, partitions=[{part1=A, part2=1}, {part1=A, part2=2}], project=[id, name, part2]]], fields=[id, name, part2])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SourceWatermarkTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SourceWatermarkTest.xml
index 8febcf11a1e..e0caec4de2e 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SourceWatermarkTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SourceWatermarkTest.xml
@@ -30,7 +30,7 @@ LogicalProject(a=[$0], b=[$1], ts=[$5])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], metadata=[], watermark=[-(t, 10000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
+TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], watermark=[-(t, 10000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
]]>
</Resource>
</TestCase>
@@ -48,7 +48,7 @@ LogicalProject(a=[$0], b=[$1], ts=[$5])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], metadata=[], watermark=[-(t, 10000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
+TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], watermark=[-(t, 10000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
]]>
</Resource>
</TestCase>
@@ -66,7 +66,7 @@ LogicalProject(a=[$0], b=[$1], ts=[$5])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], metadata=[], watermark=[-(t, ITEM(ARRAY(10000:INTERVAL SECOND, 1000:INTERVAL SECOND), 1))], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
+TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], watermark=[-(t, ITEM(ARRAY(10000:INTERVAL SECOND, 1000:INTERVAL SECOND), 1))], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
]]>
</Resource>
</TestCase>
@@ -84,7 +84,7 @@ LogicalProject(a=[$0], b=[$1], ts=[$5])
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], metadata=[], watermark=[-(t, 10000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
+TableSourceScan(table=[[default_catalog, default_database, t1, project=[a, b, t], watermark=[-(t, 10000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[a, b, t])
]]>
</Resource>
</TestCase>
@@ -179,7 +179,7 @@ LogicalProject(e=[$2.d.e], d=[$2.d])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[c.d.e AS e, c.d AS d])
-+- TableSourceScan(table=[[default_catalog, default_database, NestedTable, project=[c], metadata=[], watermark=[-(c.d.f, 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[c])
++- TableSourceScan(table=[[default_catalog, default_database, NestedTable, project=[c], watermark=[-(c.d.f, 5000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[c])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/StreamSinkReuseTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/StreamSinkReuseTest.xml
index 283cd43fc16..95e9fc78778 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/StreamSinkReuseTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/StreamSinkReuseTest.xml
@@ -166,14 +166,14 @@ LogicalSink(table=[default_catalog.default_database.sink1], targetColumns=[[0]],
</Resource>
<Resource name="optimized exec plan">
<![CDATA[
-TableSourceScan(table=[[default_catalog, default_database, source1, project=[x, y], metadata=[]]], fields=[x, y])(reuse_id=[1])
+TableSourceScan(table=[[default_catalog, default_database, source1, project=[x, y]]], fields=[x, y])(reuse_id=[1])
Sink(table=[default_catalog.default_database.sink1], targetColumns=[[0]], fields=[x, EXPR$1])
+- Union(all=[true], union=[x, EXPR$1])
:- Calc(select=[x, null:BIGINT AS EXPR$1])
: +- Reused(reference_id=[1])
+- Calc(select=[x, null:BIGINT AS EXPR$1])
- +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[x], metadata=[]]], fields=[x])
+ +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[x]]], fields=[x])
Sink(table=[default_catalog.default_database.sink1], targetColumns=[[1]], fields=[EXPR$0, y])
+- Calc(select=[null:BIGINT AS EXPR$0, y])
@@ -206,13 +206,13 @@ LogicalSink(table=[default_catalog.default_database.partitionedSink], fields=[x,
Sink(table=[default_catalog.default_database.partitionedSink], fields=[EXPR$0, y])
+- Union(all=[true], union=[EXPR$0, y])
:- Calc(select=[1 AS EXPR$0, y])
- : +- TableSourceScan(table=[[default_catalog, default_database, source1, project=[y], metadata=[]]], fields=[y])
+ : +- TableSourceScan(table=[[default_catalog, default_database, source1, project=[y]]], fields=[y])
+- Calc(select=[1 AS EXPR$0, y])
- +- TableSourceScan(table=[[default_catalog, default_database, source2, project=[y], metadata=[]]], fields=[y])
+ +- TableSourceScan(table=[[default_catalog, default_database, source2, project=[y]]], fields=[y])
Sink(table=[default_catalog.default_database.partitionedSink], fields=[EXPR$0, y])
+- Calc(select=[2 AS EXPR$0, y])
- +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[y], metadata=[]]], fields=[y])
+ +- TableSourceScan(table=[[default_catalog, default_database, source3, project=[y]]], fields=[y])
Sink(table=[default_catalog.default_database.partitionedSink], fields=[x, y])
+- TableSourceScan(table=[[default_catalog, default_database, source4]], fields=[x, y])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SubplanReuseTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SubplanReuseTest.xml
index 08678375c8c..1c9d3858061 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SubplanReuseTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/SubplanReuseTest.xml
@@ -96,18 +96,18 @@ Join(joinType=[InnerJoin], where=[(b = e0)], select=[a, b, d, e, a0, b0, d0, e0]
: +- Join(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
: :- Exchange(distribution=[hash[a]])
: : +- Calc(select=[a, b], where=[(a < 10)])
-: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b]]], fields=[a, b])
: +- Exchange(distribution=[hash[d]])
: +- Calc(select=[d, e], where=[(d < 10)])
-: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e], metadata=[]]], fields=[d, e])
+: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e]]], fields=[d, e])
+- Exchange(distribution=[hash[e]])
+- Join(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
: +- Calc(select=[a, b], where=[(a > 5)])
- : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b], metadata=[]]], fields=[a, b])
+ : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b]]], fields=[a, b])
+- Exchange(distribution=[hash[d]])
+- Calc(select=[d, e], where=[(d > 5)])
- +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e], metadata=[]]], fields=[d, e])
+ +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e]]], fields=[d, e])
]]>
</Resource>
</TestCase>
@@ -191,10 +191,10 @@ Join(joinType=[InnerJoin], where=[(b = e0)], select=[a, b, d, e, a0, b0, d0, e0]
: +- Join(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
: :- Exchange(distribution=[hash[a]])
: : +- Calc(select=[a, b], where=[(a < 10)])
-: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b], metadata=[]]], fields=[a, b])(reuse_id=[1])
+: : +- TableSourceScan(table=[[default_catalog, default_database, newX, filter=[], project=[a, b]]], fields=[a, b])(reuse_id=[1])
: +- Exchange(distribution=[hash[d]])
: +- Calc(select=[d, e], where=[(d < 10)])
-: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e], metadata=[]]], fields=[d, e])(reuse_id=[2])
+: +- TableSourceScan(table=[[default_catalog, default_database, newY, filter=[], project=[d, e]]], fields=[d, e])(reuse_id=[2])
+- Exchange(distribution=[hash[e]])
+- Join(joinType=[InnerJoin], where=[(a = d)], select=[a, b, d, e], leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[hash[a]])
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableScanTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableScanTest.xml
index 9a1909432cd..aa46e1b228d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableScanTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableScanTest.xml
@@ -32,7 +32,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
GroupAggregate(select=[COUNT_RETRACT(*) AS EXPR$0], changelogMode=[I,UA,D])
+- Exchange(distribution=[single], changelogMode=[I,UB,UA])
+- Calc(select=[a], where=[>(a, 1)], changelogMode=[I,UB,UA])
- +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[a], metadata=[]]], fields=[a], changelogMode=[I,UB,UA])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, filter=[], project=[a]]], fields=[a], changelogMode=[I,UB,UA])
]]>
</Resource>
</TestCase>
@@ -54,7 +54,7 @@ GroupAggregate(groupBy=[b], select=[b, COUNT_RETRACT(*) AS EXPR$1, MAX_RETRACT(t
+- Calc(select=[b, ts], changelogMode=[I,UB,UA,D])
+- ChangelogNormalize(key=[a], changelogMode=[I,UB,UA,D])
+- Exchange(distribution=[hash[a]], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[b, ts, a], metadata=[]]], fields=[b, ts, a], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[b, ts, a]]], fields=[b, ts, a], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -75,7 +75,7 @@ GroupAggregate(groupBy=[a], select=[a, COUNT_RETRACT(*) AS EXPR$1, MAX_RETRACT(t
+- Exchange(distribution=[hash[a]], changelogMode=[I,UB,UA,D])
+- ChangelogNormalize(key=[a], changelogMode=[I,UB,UA,D])
+- Exchange(distribution=[hash[a]], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, ts], metadata=[]]], fields=[a, ts], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a, ts]]], fields=[a, ts], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
@@ -563,7 +563,7 @@ LogicalProject(id1=[$1], a=[$2], b=[$4])
Calc(select=[id1, a, b], changelogMode=[I,UA,D])
+- ChangelogNormalize(key=[id2, id1], changelogMode=[I,UA,D])
+- Exchange(distribution=[hash[id2, id1]], changelogMode=[UA])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id1, a, b, id2], metadata=[]]], fields=[id1, a, b, id2], changelogMode=[UA])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id1, a, b, id2]]], fields=[id1, a, b, id2], changelogMode=[UA])
]]>
</Resource>
</TestCase>
@@ -766,7 +766,7 @@ LogicalProject(id=[$0], ts=[$4])
Calc(select=[id, Reinterpret(TO_TIMESTAMP(c)) AS ts], changelogMode=[I,UA,D])
+- ChangelogNormalize(key=[id], changelogMode=[I,UA,D])
+- Exchange(distribution=[hash[id]], changelogMode=[UA,PD])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id, c], metadata=[], watermark=[-(TO_TIMESTAMP(c), 1000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[id, c], changelogMode=[UA,PD])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id, c], watermark=[-(TO_TIMESTAMP(c), 1000:INTERVAL SECOND)], watermarkEmitStrategy=[on-periodic]]], fields=[id, c], changelogMode=[UA,PD])
]]>
</Resource>
</TestCase>
@@ -812,7 +812,7 @@ LogicalProject(EXPR$0=[TUMBLE_START($0)], EXPR$1=[$1])
Calc(select=[w$start AS EXPR$0, EXPR$1], changelogMode=[I])
+- GroupWindowAggregate(window=[TumblingGroupWindow('w$, $f2, 10000)], properties=[w$start, w$end, w$proctime], select=[COUNT(*) AS EXPR$1, start('w$) AS w$start, end('w$) AS w$end, proctime('w$) AS w$proctime], changelogMode=[I])
+- Exchange(distribution=[single], changelogMode=[I,UB,UA])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a], metadata=[]]], fields=[a], changelogMode=[I,UB,UA])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a]]], fields=[a], changelogMode=[I,UB,UA])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableSourceTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableSourceTest.xml
index 2fad4c62450..5b4dd0e880d 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableSourceTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/TableSourceTest.xml
@@ -36,7 +36,7 @@ LogicalProject(id=[$0], nestedName=[$1.nested1.name], nestedValue=[$2.value], ne
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, deepNested_nested1_name AS nestedName, nested_value AS nestedValue, deepNested_nested2_flag AS nestedFlag, deepNested_nested2_num AS nestedNum])
-+- TableSourceScan(table=[[default_catalog, default_database, T, project=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value], metadata=[]]], fields=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value])
++- TableSourceScan(table=[[default_catalog, default_database, T, project=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value]]], fields=[id, deepNested_nested1_name, deepNested_nested2_flag, deepNested_nested2_num, nested_value])
]]>
</Resource>
</TestCase>
@@ -58,7 +58,7 @@ LogicalProject(EXPR$0=[ITEM($2.data_arr, $0).value], EXPR$1=[ITEM($2.data_map, _
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[ITEM(result_data_arr, id).value AS EXPR$0, ITEM(result_data_map, 'item').value AS EXPR$1])
-+- TableSourceScan(table=[[default_catalog, default_database, NestedItemTable, project=[result_data_arr, result_data_map, id], metadata=[]]], fields=[result_data_arr, result_data_map, id])
++- TableSourceScan(table=[[default_catalog, default_database, NestedItemTable, project=[result_data_arr, result_data_map, id]]], fields=[result_data_arr, result_data_map, id])
]]>
</Resource>
</TestCase>
@@ -123,7 +123,7 @@ LogicalProject(rtime=[$1])
<Resource name="optimized exec plan">
<![CDATA[
WatermarkAssigner(rowtime=[rtime], watermark=[rtime])
-+- TableSourceScan(table=[[default_catalog, default_database, T, project=[rtime], metadata=[]]], fields=[rtime])
++- TableSourceScan(table=[[default_catalog, default_database, T, project=[rtime]]], fields=[rtime])
]]>
</Resource>
</TestCase>
@@ -141,7 +141,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
<![CDATA[
GroupAggregate(select=[COUNT(*) AS EXPR$0])
+- Exchange(distribution=[single])
- +- TableSourceScan(table=[[default_catalog, default_database, T, project=[id], metadata=[]]], fields=[id])
+ +- TableSourceScan(table=[[default_catalog, default_database, T, project=[id]]], fields=[id])
]]>
</Resource>
</TestCase>
@@ -200,7 +200,7 @@ LogicalProject(id=[$0], ts1=[$5], tags=[$2])
<Resource name="optimized exec plan">
<![CDATA[
Calc(select=[id, (ts + 10000:INTERVAL SECOND) AS ts1, tags])
-+- TableSourceScan(table=[[default_catalog, default_database, src, project=[id, ts, tags], metadata=[]]], fields=[id, ts, tags])
++- TableSourceScan(table=[[default_catalog, default_database, src, project=[id, ts, tags]]], fields=[id, ts, tags])
]]>
</Resource>
</TestCase>
@@ -321,7 +321,7 @@ Calc(select=[name, w$end AS EXPR$1, EXPR$2])
+- Exchange(distribution=[hash[name]])
+- Calc(select=[rowtime, val, name], where=[(val > 100)])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[rowtime])
- +- TableSourceScan(table=[[default_catalog, default_database, rowTimeT, project=[rowtime, val, name], metadata=[]]], fields=[rowtime, val, name])
+ +- TableSourceScan(table=[[default_catalog, default_database, rowTimeT, project=[rowtime, val, name]]], fields=[rowtime, val, name])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/UnionTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/UnionTest.xml
index 2969cdc7486..30887ef7e16 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/UnionTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/UnionTest.xml
@@ -112,11 +112,11 @@ LogicalProject(id=[$0], ts=[$1], name=[$2], timestamp_col=[$3]), rowType=[Record
Union(all=[true], union=[id, ts, name, timestamp_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name, TIMESTAMP(3) *ROWTIME* timestamp_col)]
:- Calc(select=[id, ts, CAST(name AS VARCHAR(2147483647)) AS name, timestamp_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name, TIMESTAMP(3) *ROWTIME* timestamp_col)]
: +- WatermarkAssigner(rowtime=[timestamp_col], watermark=[timestamp_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(32) name, TIMESTAMP(3) *ROWTIME* timestamp_col)]
-: +- TableSourceScan(table=[[default_catalog, default_database, t1, project=[id, ts, name, timestamp_col], metadata=[]]], fields=[id, ts, name, timestamp_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(32) name, TIMESTAMP(3) timestamp_col)]
+: +- TableSourceScan(table=[[default_catalog, default_database, t1, project=[id, ts, name, timestamp_col]]], fields=[id, ts, name, timestamp_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(32) name, TIMESTAMP(3) timestamp_col)]
+- Calc(select=[id, ts, name, CAST(timestamp_ltz_col AS TIMESTAMP(3) *ROWTIME*) AS timestamp_ltz_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name, TIMESTAMP(3) *ROWTIME* timestamp_ltz_col)]
+- WatermarkAssigner(rowtime=[timestamp_ltz_col], watermark=[timestamp_ltz_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name, TIMESTAMP_LTZ(3) *ROWTIME* timestamp_ltz_col)]
+- Calc(select=[id, ts, name, TO_TIMESTAMP_LTZ(ts, 3) AS timestamp_ltz_col]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name, TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) timestamp_ltz_col)]
- +- TableSourceScan(table=[[default_catalog, default_database, t2, project=[id, ts, name], metadata=[]]], fields=[id, ts, name]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name)]
+ +- TableSourceScan(table=[[default_catalog, default_database, t2, project=[id, ts, name]]], fields=[id, ts, name]), rowType=[RecordType(INTEGER id, BIGINT ts, VARCHAR(2147483647) name)]
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/AggregateTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/AggregateTest.xml
index c2a34a6c49b..684753d7945 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/AggregateTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/AggregateTest.xml
@@ -264,7 +264,7 @@ LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
GroupAggregate(select=[COUNT(*) AS EXPR$0])
+- Exchange(distribution=[single])
+- Calc(select=[0 AS $f0])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[]]], fields=[id])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id]]], fields=[id])
]]>
</Resource>
</TestCase>
@@ -285,7 +285,7 @@ Calc(select=[EXPR$0], where=[(EXPR$0 > 1)])
+- GroupAggregate(select=[COUNT(*) AS EXPR$0])
+- Exchange(distribution=[single])
+- Calc(select=[0 AS $f0])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id], metadata=[]]], fields=[id])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[id]]], fields=[id])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/GroupWindowTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/GroupWindowTest.xml
index 2ac73a6c021..58b7caa1a2e 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/GroupWindowTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/GroupWindowTest.xml
@@ -666,7 +666,7 @@ Calc(select=[w$start AS EXPR$0, EXPR$1], changelogMode=[I])
+- Exchange(distribution=[single], changelogMode=[I,UB,UA,D])
+- ChangelogNormalize(key=[a], changelogMode=[I,UB,UA,D])
+- Exchange(distribution=[hash[a]], changelogMode=[UA,D])
- +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a], metadata=[]]], fields=[a], changelogMode=[UA,D])
+ +- TableSourceScan(table=[[default_catalog, default_database, src, project=[a]]], fields=[a], changelogMode=[UA,D])
]]>
</Resource>
</TestCase>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/WindowAggregateTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/WindowAggregateTest.xml
index ea2088d064e..68e4171ca14 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/WindowAggregateTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/WindowAggregateTest.xml
@@ -56,7 +56,7 @@ Calc(select=[window_start, window_end, EXPR$2, EXPR$3, EXPR$4, wAvg, uv])
+- Calc(select=[window_start, window_end, d, IS TRUE(>(b, 1000)) AS $f3, b, e, c], where=[>=(window_start, 2021-01-01 10:10:00)])
+- WindowTableFunction(window=[TUMBLE(time_col=[rowtime], size=[15 min])])
+- WatermarkAssigner(rowtime=[rowtime], watermark=[-(rowtime, 1000:INTERVAL SECOND)])
- +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, c, d, e, rowtime], metadata=[]]], fields=[b, c, d, e, rowtime])
+ +- TableSourceScan(table=[[default_catalog, default_database, MyTable, project=[b, c, d, e, rowtime]]], fields=[b, c, d, e, rowtime])
]]>
</Resource>
</TestCase>
@@ -101,7 +101,7 @@ Calc(select=[window_start, window_end, EXPR$2, EXPR$3, EXPR$4, wAvg, uv])
+- Calc(select=[window_start, window_end, d, IS TRUE(>(b, 1000)) AS $f3, b, e, c], where=[>=(window_start, 2021-01-01 10:10:00)])
... 1395 lines suppressed ...