Skip to content

Commit c80a1f3

Browse files
[FLINK-38234][table-planner] Enable NDU strategy for semantic tests by default
This closes #26899.
1 parent 60170ff commit c80a1f3

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

flink-table/flink-table-planner/src/test/java/org/apache/flink/table/api/QueryOperationSqlSerializationTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ private static TableEnvironment setupEnv(TableTestProgram program) {
148148
@Override
149149
public EnumSet<TestKind> supportedSetupSteps() {
150150
return EnumSet.of(
151+
TestKind.CONFIG,
151152
TestKind.SQL,
152153
TestKind.FUNCTION,
153154
TestKind.SOURCE_WITH_DATA,

flink-table/flink-table-planner/src/test/java/org/apache/flink/table/api/QueryOperationTestPrograms.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.flink.table.api;
2020

2121
import org.apache.flink.annotation.Internal;
22+
import org.apache.flink.table.api.config.OptimizerConfigOptions;
2223
import org.apache.flink.table.functions.ScalarFunction;
2324
import org.apache.flink.table.operations.QueryOperation;
2425
import org.apache.flink.table.planner.plan.nodes.exec.stream.ProcessTableFunctionTestUtils.ChainedReceivingFunction;
@@ -1026,6 +1027,11 @@ private static Instant dayOfSeconds(int second) {
10261027

10271028
public static final TableTestProgram ROW_SEMANTIC_TABLE_PTF =
10281029
TableTestProgram.of("process-row-table-api", "table with row semantics")
1030+
// TODO [FLINK-38233]: Remove this config when PTF support in
1031+
// StreamNonDeterministicUpdatePlanVisitor is added.
1032+
.setupConfig(
1033+
OptimizerConfigOptions.TABLE_OPTIMIZER_NONDETERMINISTIC_UPDATE_STRATEGY,
1034+
OptimizerConfigOptions.NonDeterministicUpdateStrategy.IGNORE)
10291035
.setupTemporarySystemFunction("f", RowSemanticTableFunction.class)
10301036
.setupSql(BASIC_VALUES)
10311037
.setupTableSink(
@@ -1051,6 +1057,11 @@ private static Instant dayOfSeconds(int second) {
10511057

10521058
static final TableTestProgram SET_SEMANTIC_TABLE_PTF =
10531059
TableTestProgram.of("partitioned-ptf", "verifies SQL serialization")
1060+
// TODO [FLINK-38233]: Remove this config when PTF support in
1061+
// StreamNonDeterministicUpdatePlanVisitor is added.
1062+
.setupConfig(
1063+
OptimizerConfigOptions.TABLE_OPTIMIZER_NONDETERMINISTIC_UPDATE_STRATEGY,
1064+
OptimizerConfigOptions.NonDeterministicUpdateStrategy.IGNORE)
10541065
.setupTemporarySystemFunction("f1", ChainedSendingFunction.class)
10551066
.setupTemporarySystemFunction("f2", ChainedReceivingFunction.class)
10561067
.setupTableSource(TIMED_SOURCE)

flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ProcessTableFunctionSemanticTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
package org.apache.flink.table.planner.plan.nodes.exec.stream;
2020

21+
import org.apache.flink.table.api.TableConfig;
22+
import org.apache.flink.table.api.config.OptimizerConfigOptions;
2123
import org.apache.flink.table.planner.plan.nodes.exec.testutils.SemanticTestBase;
2224
import org.apache.flink.table.test.program.TableTestProgram;
2325

@@ -26,6 +28,16 @@
2628
/** Semantic tests for {@link StreamExecProcessTableFunction}. */
2729
public class ProcessTableFunctionSemanticTests extends SemanticTestBase {
2830

31+
// TODO [FLINK-38233]: Remove this override when PTF support in
32+
// StreamNonDeterministicUpdatePlanVisitor is added.
33+
@Override
34+
protected void applyDefaultEnvironmentOptions(TableConfig config) {
35+
super.applyDefaultEnvironmentOptions(config);
36+
config.set(
37+
OptimizerConfigOptions.TABLE_OPTIMIZER_NONDETERMINISTIC_UPDATE_STRATEGY,
38+
OptimizerConfigOptions.NonDeterministicUpdateStrategy.IGNORE);
39+
}
40+
2941
@Override
3042
public List<TableTestProgram> programs() {
3143
return List.of(

flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/testutils/SemanticTestBase.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.flink.table.api.EnvironmentSettings;
2222
import org.apache.flink.table.api.TableConfig;
2323
import org.apache.flink.table.api.TableEnvironment;
24+
import org.apache.flink.table.api.config.OptimizerConfigOptions;
2425
import org.apache.flink.table.planner.factories.TestValuesTableFactory;
2526
import org.apache.flink.table.test.program.ConfigOptionTestStep;
2627
import org.apache.flink.table.test.program.FailingSqlTestStep;
@@ -157,7 +158,11 @@ protected void runStep(TestStep testStep, TableEnvironment env) throws Exception
157158
*
158159
* <p>Default implementation is a no-op. Subclasses can override to set specific options.
159160
*/
160-
protected void applyDefaultEnvironmentOptions(TableConfig config) {}
161+
protected void applyDefaultEnvironmentOptions(TableConfig config) {
162+
config.set(
163+
OptimizerConfigOptions.TABLE_OPTIMIZER_NONDETERMINISTIC_UPDATE_STRATEGY,
164+
OptimizerConfigOptions.NonDeterministicUpdateStrategy.TRY_RESOLVE);
165+
}
161166

162167
private static Map<String, String> createSourceOptions(
163168
SourceTestStep sourceTestStep, String id) {

0 commit comments

Comments
 (0)