You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by sn...@apache.org on 2025/11/12 17:09:35 UTC
(flink) 02/02: [hotfix][table] Simplify parsing of `REFRESH MODE` for `MATERIALIZED TABLE`
This is an automated email from the ASF dual-hosted git repository.
snuyanzin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 29cc69d3308632ac5e1842b7182a89698d667d4e
Author: Sergey Nuyanzin <sn...@gmail.com>
AuthorDate: Tue Nov 11 13:50:34 2025 +0100
[hotfix][table] Simplify parsing of `REFRESH MODE` for `MATERIALIZED TABLE`
---
.../flink-sql-parser/src/main/codegen/includes/parserImpls.ftl | 6 +++---
.../apache/flink/sql/parser/ddl/SqlCreateMaterializedTable.java | 9 ++++-----
.../converters/AbstractCreateMaterializedTableConverter.java | 9 ++-------
3 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/flink-table/flink-sql-parser/src/main/codegen/includes/parserImpls.ftl b/flink-table/flink-sql-parser/src/main/codegen/includes/parserImpls.ftl
index f7818dc81d8..3bcaa7314d4 100644
--- a/flink-table/flink-sql-parser/src/main/codegen/includes/parserImpls.ftl
+++ b/flink-table/flink-sql-parser/src/main/codegen/includes/parserImpls.ftl
@@ -1866,7 +1866,7 @@ SqlCreate SqlCreateMaterializedTable(Span s, boolean replace, boolean isTemporar
SqlNodeList partitionColumns = SqlNodeList.EMPTY;
SqlNodeList propertyList = SqlNodeList.EMPTY;
SqlNode freshness = null;
- SqlLiteral refreshMode = null;
+ SqlRefreshMode refreshMode = null;
SqlNode asQuery = null;
SqlParserPos pos = startPos;
boolean isColumnsIdentifiersOnly = false;
@@ -1934,12 +1934,12 @@ SqlCreate SqlCreateMaterializedTable(Span s, boolean replace, boolean isTemporar
(
<FULL>
{
- refreshMode = SqlRefreshMode.FULL.symbol(getPos());
+ refreshMode = SqlRefreshMode.FULL;
}
|
<CONTINUOUS>
{
- refreshMode = SqlRefreshMode.CONTINUOUS.symbol(getPos());
+ refreshMode = SqlRefreshMode.CONTINUOUS;
}
)
]
diff --git a/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlCreateMaterializedTable.java b/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlCreateMaterializedTable.java
index 687226a6220..b1ebd322914 100644
--- a/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlCreateMaterializedTable.java
+++ b/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlCreateMaterializedTable.java
@@ -29,7 +29,6 @@ import org.apache.calcite.sql.SqlCreate;
import org.apache.calcite.sql.SqlIdentifier;
import org.apache.calcite.sql.SqlIntervalLiteral;
import org.apache.calcite.sql.SqlKind;
-import org.apache.calcite.sql.SqlLiteral;
import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.SqlNodeList;
import org.apache.calcite.sql.SqlOperator;
@@ -69,7 +68,7 @@ public class SqlCreateMaterializedTable extends SqlCreate implements ExtendedSql
private final @Nullable SqlIntervalLiteral freshness;
- private final @Nullable SqlLiteral refreshMode;
+ private final @Nullable SqlRefreshMode refreshMode;
private final SqlNode asQuery;
@@ -84,7 +83,7 @@ public class SqlCreateMaterializedTable extends SqlCreate implements ExtendedSql
SqlNodeList partitionKeyList,
SqlNodeList propertyList,
@Nullable SqlIntervalLiteral freshness,
- @Nullable SqlLiteral refreshMode,
+ @Nullable SqlRefreshMode refreshMode,
SqlNode asQuery) {
super(OPERATOR, pos, false, false);
this.tableName = requireNonNull(tableName, "tableName should not be null");
@@ -162,7 +161,7 @@ public class SqlCreateMaterializedTable extends SqlCreate implements ExtendedSql
}
@Nullable
- public SqlLiteral getRefreshMode() {
+ public SqlRefreshMode getRefreshMode() {
return refreshMode;
}
@@ -241,7 +240,7 @@ public class SqlCreateMaterializedTable extends SqlCreate implements ExtendedSql
writer.newlineAndIndent();
writer.keyword("REFRESH_MODE");
writer.keyword("=");
- refreshMode.unparse(writer, leftPrec, rightPrec);
+ writer.keyword(refreshMode.name());
}
writer.newlineAndIndent();
diff --git a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/AbstractCreateMaterializedTableConverter.java b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/AbstractCreateMaterializedTableConverter.java
index fb61e48b7ef..36e3e150915 100644
--- a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/AbstractCreateMaterializedTableConverter.java
+++ b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/AbstractCreateMaterializedTableConverter.java
@@ -19,7 +19,6 @@
package org.apache.flink.table.planner.operations.converters;
import org.apache.flink.sql.parser.ddl.SqlCreateMaterializedTable;
-import org.apache.flink.sql.parser.ddl.SqlRefreshMode;
import org.apache.flink.table.api.Schema;
import org.apache.flink.table.api.ValidationException;
import org.apache.flink.table.catalog.CatalogMaterializedTable;
@@ -106,12 +105,8 @@ public abstract class AbstractCreateMaterializedTableConverter<T extends SqlCrea
}
protected final LogicalRefreshMode getDerivedLogicalRefreshMode(T sqlCreateMaterializedTable) {
- SqlRefreshMode sqlRefreshMode =
- Optional.ofNullable(sqlCreateMaterializedTable.getRefreshMode())
- .map(mode -> mode.getValueAs(SqlRefreshMode.class))
- .orElse(null);
-
- return MaterializedTableUtils.deriveLogicalRefreshMode(sqlRefreshMode);
+ return MaterializedTableUtils.deriveLogicalRefreshMode(
+ sqlCreateMaterializedTable.getRefreshMode());
}
protected final RefreshMode getDerivedRefreshMode(LogicalRefreshMode logicalRefreshMode) {