This is an automated email from the ASF dual-hosted git repository. godfrey pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
from d0a5023f989 [FLINK-28632][sql-gateway][hive] Allow to GetColumns/GetPrimaryKeys/GetTableTypes in the HiveServer2 Endpoint new 8b25b969d41 [FLINK-28848][table-planner] Introduces LOOKUP join hint to support delayed retry for lookup join (table alias unsupported in hint) new fa6d62dd6bb [hotfix][table-planner] Use scala isInstanceOf to check lookup function type instead of one-level parent class compartion in LookupJoinCodeGenerator new 3a2fc5ef34f [hotfix][runtime] Do last attempt without successfully canceling the retry timer to prevent unexpected incomplete element during finish phase in AsyncWaitOperator new c5b5d436843 [FLINK-28849][table-planner] Fix errors when enable retry on async lookup and add more tests The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../api/operators/async/AsyncWaitOperator.java | 8 +- .../table/planner/hint/FlinkHintStrategies.java | 90 ++++++ .../flink/table/planner/hint/FlinkHints.java | 6 +- .../flink/table/planner/hint/JoinStrategy.java | 11 +- .../table/planner/hint/LookupJoinHintOptions.java | 139 +++++++++ .../plan/nodes/exec/batch/BatchExecLookupJoin.java | 2 + .../nodes/exec/common/CommonExecLookupJoin.java | 85 +++--- .../plan/nodes/exec/spec/LookupJoinHintSpec.java | 239 ++++++++++++++++ .../nodes/exec/stream/StreamExecLookupJoin.java | 5 + .../planner/plan/optimize/JoinHintResolver.java | 20 +- .../table/planner/plan/utils/LookupJoinUtil.java | 312 +++++++++++++++------ .../planner/codegen/LookupJoinCodeGenerator.scala | 5 +- .../physical/common/CommonPhysicalLookupJoin.scala | 11 +- .../physical/stream/StreamPhysicalLookupJoin.scala | 15 +- .../BatchCommonSubGraphBasedOptimizer.scala | 14 +- .../optimize/CommonSubGraphBasedOptimizer.scala | 11 +- .../stream/StreamPhysicalLookupJoinRule.scala | 16 +- ...rJoinHintWithInvalidPropagationShuttleTest.java | 101 +------ ...nHintWithInvalidPropagationShuttleTestBase.java | 128 +++++++++ ...pJoinHintWithInvalidPropagationShuttleTest.java | 149 ++++++++++ .../factories/TestValuesRuntimeFunctions.java | 91 ++++++ .../planner/factories/TestValuesTableFactory.java | 52 +++- .../batch}/BroadcastJoinHintTest.java | 2 +- .../hints => hints/batch}/JoinHintTestBase.java | 4 +- .../batch}/NestLoopJoinHintTest.java | 2 +- .../batch}/ShuffleHashJoinHintTest.java | 2 +- .../batch}/ShuffleMergeJoinHintTest.java | 2 +- .../exec/serde/LookupJoinHintSpecSerdeTest.java | 51 ++++ .../nodes/exec/spec/LookupJoinHintSpecTest.java | 98 +++++++ .../nodes/exec/stream/LookupJoinJsonPlanTest.java | 68 ++++- .../optimize/ClearQueryBlockAliasResolverTest.java | 2 +- .../plan/optimize/JoinHintResolverTest.java | 2 +- ...upJoinHintWithInvalidPropagationShuttleTest.xml | 127 +++++++++ .../batch}/BroadcastJoinHintTest.xml | 0 .../hints => hints/batch}/NestLoopJoinHintTest.xml | 0 .../batch}/ShuffleHashJoinHintTest.xml | 0 .../batch}/ShuffleMergeJoinHintTest.xml | 0 .../testJoinTemporalTable.out | 2 +- ....out => testJoinTemporalTableWithAsyncHint.out} | 10 +- ...out => testJoinTemporalTableWithAsyncHint2.out} | 10 +- ...=> testJoinTemporalTableWithAsyncRetryHint.out} | 14 +- ...> testJoinTemporalTableWithAsyncRetryHint2.out} | 14 +- ...testJoinTemporalTableWithProjectionPushDown.out | 2 +- ....out => testJoinTemporalTableWithRetryHint.out} | 13 +- .../plan/stream/sql/join/LookupJoinTest.xml | 226 +++++++++++++-- .../plan/metadata/FlinkRelMdHandlerTestBase.scala | 4 +- .../plan/stream/sql/join/LookupJoinTest.scala | 218 +++++++++++++- .../runtime/stream/sql/AsyncLookupJoinITCase.scala | 103 ++++++- .../runtime/stream/sql/LookupJoinITCase.scala | 105 ++++++- .../operators/join/lookup/ResultRetryStrategy.java | 69 +++++ .../lookup/RetryableLookupFunctionDelegator.java | 83 ++++++ .../join/RetryableLookupFunctionDelegatorTest.java | 103 +++++++ 52 files changed, 2541 insertions(+), 305 deletions(-) create mode 100644 flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/hint/LookupJoinHintOptions.java create mode 100644 flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/spec/LookupJoinHintSpec.java create mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTestBase.java create mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearLookupJoinHintWithInvalidPropagationShuttleTest.java rename flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/BroadcastJoinHintTest.java (94%) rename flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/JoinHintTestBase.java (99%) rename flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/NestLoopJoinHintTest.java (94%) rename flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/ShuffleHashJoinHintTest.java (94%) rename flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/ShuffleMergeJoinHintTest.java (94%) create mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/serde/LookupJoinHintSpecSerdeTest.java create mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/spec/LookupJoinHintSpecTest.java create mode 100644 flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/alias/ClearLookupJoinHintWithInvalidPropagationShuttleTest.xml rename flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/BroadcastJoinHintTest.xml (100%) rename flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/NestLoopJoinHintTest.xml (100%) rename flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/ShuffleHashJoinHintTest.xml (100%) rename flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/{batch/sql/join/hints => hints/batch}/ShuffleMergeJoinHintTest.xml (100%) copy flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest_jsonplan/{testJoinTemporalTable.out => testJoinTemporalTableWithAsyncHint.out} (98%) copy flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest_jsonplan/{testJoinTemporalTable.out => testJoinTemporalTableWithAsyncHint2.out} (98%) copy flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest_jsonplan/{testJoinTemporalTable.out => testJoinTemporalTableWithAsyncRetryHint.out} (97%) copy flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest_jsonplan/{testJoinTemporalTable.out => testJoinTemporalTableWithAsyncRetryHint2.out} (97%) copy flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest_jsonplan/{testJoinTemporalTable.out => testJoinTemporalTableWithRetryHint.out} (97%) create mode 100644 flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/join/lookup/ResultRetryStrategy.java create mode 100644 flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/join/lookup/RetryableLookupFunctionDelegator.java create mode 100644 flink-table/flink-table-runtime/src/test/java/org/apache/flink/table/runtime/operators/join/RetryableLookupFunctionDelegatorTest.java