Hi, Ramin

In FLIP-492[1], we introduced the `CREATE OR REPLACE MATERIALIZED TABLE`
syntax to support modifying materialized tables. Can we extend this syntax
to achieve the functionality you need, such as introducing clause
parameters to determine whether to replace the entire table or just some of
its attributes?

Regarding the `CREATE OR ALTER TABLE` syntax, I couldn't find it in the SQL
standard. I'm concerned that this new syntax might confuse users and add
new usage costs. What do you think?

1.
https://cwiki.apache.org/confluence/display/FLINK/FLIP-492%3A+Support+Query+Modifications+for+Materialized+Tables

Best,
Ron

Ramin Gharib <[email protected]> 于2025年9月4日周四 15:04写道:

> Good morning, Mate,
> Thanks for the feedback! When I wrote this, the FLIP was not yet closed! I
> have added the DISTRIBUTED BY/INTO clause to the FLIP.
>
> Cheers,
>
> Ramin
>
> On Wed, Sep 3, 2025 at 7:58 PM Mate Czagany <[email protected]> wrote:
>
> > Hi Ramin,
> >
> > Thank you for the proposal, I think this new command makes perfect sense
> > and has the potential to improve IaC pipelines.
> >
> > It's missing from the SQL syntax, but are there any plans to make this
> new
> > command also support the DISTRIBUTED BY/INTO functionality of FLIP-542
> [1]
> > that was just voted to be implemented yesterday [2]?
> >
> > Best Regards
> > Mate
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-542%3A+Make+materialized+table+DDL+consistent+with+regular+tables
> > [2] https://lists.apache.org/thread/40xyjjvklt65tw21o2pmk8r3srprxs5q
> >
> > On Tue, Sep 2, 2025 at 3:14 PM Ramin Gharib <[email protected]>
> wrote:
> >
> > > Hi everyone,
> > >
> > > I want to start a discussion on a new Flink Improvement Proposal,
> > FLIP-546:
> > > Introduce CREATE OR ALTER for Materialized Tables [1].
> > >
> > > The introduction of Materialized Tables in FLIP-435 [2] was a
> significant
> > > step toward simplifying data pipelines. However, as we integrate them
> > into
> > > production environments managed by automation, a key challenge arises.
> > > Modern data operations rely on declarative tools (like dbt, Terraform,
> > > CI/CD pipelines) that require idempotent commands to manage the
> lifecycle
> > > of data assets.
> > >
> > > The current CREATE MATERIALIZED TABLE syntax is not idempotent and
> fails
> > if
> > > the table already exists. This forces developers and tool creators to
> > > implement complex and risky CREATE IF NOT EXISTS or DROP...IF EXISTS
> > logic
> > > can lead to data loss and complicate the development of reliable data
> > > management tools.
> > >
> > > This FLIP proposes introducing a CREATE OR ALTER MATERIALIZED TABLE
> > command
> > > to provide a native, idempotent way to manage materialized tables,
> > aligning
> > > Flink with best practices for declarative, infrastructure-as-code
> > > deployments.
> > >
> > > [1] https://cwiki.apache.org/confluence/x/0wnXFg
> > > <
> > >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-546%3A+Introduce+CREATE+OR+ALTER+for+Materialized+Tables
> > > >
> > >
> > > [2] https://cwiki.apache.org/confluence/x/HYySEQ
> > >
> > > Best Regards,
> > >
> > > Ramin Gharib
> > >
>
>
> On Wed, Sep 3, 2025 at 7:58 PM Mate Czagany <[email protected]> wrote:
>
> > Hi Ramin,
> >
> > Thank you for the proposal, I think this new command makes perfect sense
> > and has the potential to improve IaC pipelines.
> >
> > It's missing from the SQL syntax, but are there any plans to make this
> new
> > command also support the DISTRIBUTED BY/INTO functionality of FLIP-542
> [1]
> > that was just voted to be implemented yesterday [2]?
> >
> > Best Regards
> > Mate
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-542%3A+Make+materialized+table+DDL+consistent+with+regular+tables
> > [2] https://lists.apache.org/thread/40xyjjvklt65tw21o2pmk8r3srprxs5q
> >
> > On Tue, Sep 2, 2025 at 3:14 PM Ramin Gharib <[email protected]>
> wrote:
> >
> > > Hi everyone,
> > >
> > > I want to start a discussion on a new Flink Improvement Proposal,
> > FLIP-546:
> > > Introduce CREATE OR ALTER for Materialized Tables [1].
> > >
> > > The introduction of Materialized Tables in FLIP-435 [2] was a
> significant
> > > step toward simplifying data pipelines. However, as we integrate them
> > into
> > > production environments managed by automation, a key challenge arises.
> > > Modern data operations rely on declarative tools (like dbt, Terraform,
> > > CI/CD pipelines) that require idempotent commands to manage the
> lifecycle
> > > of data assets.
> > >
> > > The current CREATE MATERIALIZED TABLE syntax is not idempotent and
> fails
> > if
> > > the table already exists. This forces developers and tool creators to
> > > implement complex and risky CREATE IF NOT EXISTS or DROP...IF EXISTS
> > logic
> > > can lead to data loss and complicate the development of reliable data
> > > management tools.
> > >
> > > This FLIP proposes introducing a CREATE OR ALTER MATERIALIZED TABLE
> > command
> > > to provide a native, idempotent way to manage materialized tables,
> > aligning
> > > Flink with best practices for declarative, infrastructure-as-code
> > > deployments.
> > >
> > > [1] https://cwiki.apache.org/confluence/x/0wnXFg
> > > <
> > >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-546%3A+Introduce+CREATE+OR+ALTER+for+Materialized+Tables
> > > >
> > >
> > > [2] https://cwiki.apache.org/confluence/x/HYySEQ
> > >
> > > Best Regards,
> > >
> > > Ramin Gharib
> > >
> >
>

Reply via email to