You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Ramin Gharib (Jira)" <ji...@apache.org> on 2026/05/12 08:10:00 UTC

[jira] [Created] (FLINK-39661) Support all converters for standalone ALTER MATERIALIZED TABLE statements

Ramin Gharib created FLINK-39661:
------------------------------------

             Summary: Support all converters for standalone ALTER MATERIALIZED TABLE statements
                 Key: FLINK-39661
                 URL: https://issues.apache.org/jira/browse/FLINK-39661
             Project: Flink
          Issue Type: Improvement
            Reporter: Ramin Gharib


FLINK-35191 shipped the parser side for {{{}ALTER MATERIALIZED TABLE SUSPEND{}}}, {{{}RESUME{}}}, {{{}REFRESH{}}}, {{{}SET{}}}, and {{{}RESET{}}}. {{{}SUSPEND{}}}, {{{}RESUME{}}}, and {{REFRESH}} got planner converters in follow-up work. The {{SET}} and {{RESET}} branches, and the related {{SET FRESHNESS}} and {{SET REFRESH_MODE}} branches, never did.

As a result the parser accepts the statements but {{org.apache.flink.table.planner.operations.converters.SqlNodeConverters}} has no converter registered for the resulting nodes. {{org.apache.flink.table.planner.delegation.ParserImpl#parse}} then throws {{TableException("Unsupported query: " + statement)}} from line 107.

*Affected statements:*
 # {{ALTER MATERIALIZED TABLE t SET ('k' = 'v')}} → {{SqlAlterMaterializedTableOptions}}
 # {{ALTER MATERIALIZED TABLE t RESET ('k')}} → {{SqlAlterMaterializedTableReset}}
 # {{ALTER MATERIALIZED TABLE t SET FRESHNESS = INTERVAL '1' MINUTE}} → {{SqlAlterMaterializedTableFreshness}}
 # {{ALTER MATERIALIZED TABLE t SET REFRESH_MODE = FULL | CONTINUOUS}} → {{SqlAlterMaterializedTableRefreshMode}}

This is distinct from the {{CREATE OR ALTER MATERIALIZED TABLE}} path tracked under FLINK-38355. That path uses a different AST node and already supports options changes via FLINK-39199. The standalone {{ALTER MATERIALIZED TABLE}} path tracked here is the form users invoke when they want to mutate a single attribute of an existing materialized table without restating the full DDL.

*Related issues:*
 * Parent: FLINK-35187 (FLIP-435 umbrella).
 * Origin: FLINK-35191 "Support alter materialized table related syntaxes: suspend, resume, refresh, set and reset". Resolved, but only delivered the parser half for SET / RESET / FRESHNESS / REFRESH_MODE.

*Scope:* four sub-tasks below. Each adds one converter, registers it in {{{}SqlNodeConverters#registerMaterializedTableConverters{}}}, and adds planner-test and IT coverage.

*Out of scope:* any change to the parser grammar, AST nodes, or the {{CREATE OR ALTER}} path.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)