Thank you Timo and Ron.
Updated FLIP

the voting thread[1]
[1] https://lists.apache.org/thread/x7k41wtmp15wrcg7dqpb1f8tw1wstk0s

On Wed, Nov 5, 2025 at 10:01 AM Timo Walther <[email protected]> wrote:
>
> Hi Ron,
>
> thanks for the clarification. I guess we are on the same page then. No
> additional physical columns in DDL that are not in query, but refinement
> of physical columns in query can be part of the DDL.
>
> @Sergey: Please update the FLIP. +1 for voting.
>
> Thanks,
> Timo
>
>
> On 04.11.25 02:26, Ron Liu wrote:
> > Hi, Timo.
> >
> > I've always been in favor of declaring types and names in DDL for columns
> > in a query. Only just disagree with adding physical columns in DDL that are
> > not in the query.
> >
> > Best,
> > Ron
> >
> > Timo Walther <[email protected]> 于2025年11月3日周一 22:03写道:
> >
> >> Hi Sergey,
> >>
> >> +1 for this FLIP. But one last comment:
> >>
> >> @Ron: I'm fine excluding adding/altering physical columns. But should we
> >> still allow the case where the data type of column should be declared or
> >> the column name or COMMENT?
> >>
> >> E.g. take:
> >>
> >> CREATE MATERIALIZED TABLE AS SELECT 'Hello';
> >>
> >> By default it will result in (CHAR(5)). Shouldn't we allow users to define:
> >>
> >>
> >> CREATE MATERIALIZED TABLE (name STRING) AS SELECT 'Hello';
> >>
> >> We can forbid adding additional columns, but at least the one of the
> >> query could be better defined.
> >>
> >> Also e.g.:
> >>
> >> CREATE MATERIALIZED TABLE (name STRING COMMENT 'Comment of the user') AS
> >> SELECT 'Hello';
> >>
> >> What do you think?
> >>
> >> Cheers,
> >> Timo
> >>
> >>
> >>
> >>
> >>
> >> On 02.11.25 23:35, Sergey Nuyanzin wrote:
> >>> Great, thank you Ron!
> >>>
> >>> In case there is no more feedback
> >>> I would suggest to move to voting[1] step
> >>>
> >>> [1] https://lists.apache.org/thread/x7k41wtmp15wrcg7dqpb1f8tw1wstk0s
> >>>
> >>> On Thu, Oct 30, 2025 at 2:34 AM Ron Liu <[email protected]> wrote:
> >>>>
> >>>> Thanks for update, LGTM.
> >>>>
> >>>> Best,
> >>>> Ron
> >>>>
> >>>> Sergey Nuyanzin <[email protected]> 于2025年10月30日周四 08:18写道:
> >>>>
> >>>>> Cool, thank you
> >>>>> updated FLIP
> >>>>> would be great if you have time to check it and tell if anything else
> >>>>> should be changed
> >>>>>
> >>>>> On Wed, Oct 29, 2025 at 2:47 AM Ron Liu <[email protected]> wrote:
> >>>>>>
> >>>>>> Hi, Sergey
> >>>>>>
> >>>>>> Makes sense to me.
> >>>>>>
> >>>>>> Best,
> >>>>>> Ron
> >>>>>>
> >>>>>> Sergey Nuyanzin <[email protected]> 于2025年10月29日周三 06:29写道:
> >>>>>>
> >>>>>>> Hi Ron,
> >>>>>>> thank you for your reply
> >>>>>>>
> >>>>>>>>>> I agree with the case for a compute column or metadata column, but
> >>>>> I
> >>>>>>> still
> >>>>>>> don't think physical columns should be added. I haven't seen a
> >>>>> real-world
> >>>>>>> case for it, so it shouldn't be supported with that syntax.
> >>>>>>>
> >>>>>>> As mentioned above, I'm ok to exclude physical columns from this FLIP
> >>>>>>> and introduce a separate validation which will forbid them.
> >>>>>>>
> >>>>>>> If this sounds ok, then I will update FLIP's page about that
> >>>>>>>
> >>>>>>> On Tue, Oct 28, 2025 at 2:45 AM Ron Liu <[email protected]> wrote:
> >>>>>>>>
> >>>>>>>> Hi, Sergey
> >>>>>>>>
> >>>>>>>> Sorry for late reply.
> >>>>>>>>
> >>>>>>>>>>> About more realworld case: sometimes it is required to pass extra
> >>>>>>>> information like e.g. headers with help of compute or metadata
> >>>>>>>> columns.
> >>>>>>>>
> >>>>>>>> We can add extra validation telling that physical columns are not
> >>>>>>>> allowed to be added/modified/dropped.
> >>>>>>>>
> >>>>>>>> However even with metadata/compute columns it will require rewriting
> >>>>>>>> the query (which will be done as a part of the operation).
> >>>>>>>> WDYT?
> >>>>>>>>
> >>>>>>>> I agree with the case for a compute column or metadata column, but I
> >>>>>>> still
> >>>>>>>> don't think physical columns should be added. I haven't seen a
> >>>>> real-world
> >>>>>>>> case for it, so it shouldn't be supported with that syntax.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>> Ron
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Sergey Nuyanzin <[email protected]> 于2025年10月21日周二 17:19写道:
> >>>>>>>>
> >>>>>>>>> Hi Ron,
> >>>>>>>>> sorry for the delay
> >>>>>>>>>
> >>>>>>>>> About more realworld case: sometimes it is required to pass extra
> >>>>>>>>> information like e.g. headers with help of compute or metadata
> >>>>>>>>> columns.
> >>>>>>>>>
> >>>>>>>>> We can add extra validation telling that physical columns are not
> >>>>>>>>> allowed to be added/modified/dropped.
> >>>>>>>>>
> >>>>>>>>> However even with metadata/compute columns it will require
> >>>>> rewriting
> >>>>>>>>> the query (which will be done as a part of the operation).
> >>>>>>>>> WDYT?
> >>>>>>>>>
> >>>>>>>>>> A new question: regarding the operation ALTER MATERIALIZED TABLE
> >>>>>>> MyTable
> >>>>>>>>>> ADD PARTITION (p1=1, p2='a') WITH ('k1'='v1'),  what is its
> >>>>> intended
> >>>>>>>>>> semantics? Is it purely a metadata-only operation, or does it also
> >>>>>>> trigger
> >>>>>>>>>> a job to refresh data for the new partition? I believe it should
> >>>>> be
> >>>>>>> the
> >>>>>>>>>> latter—what’s your view?
> >>>>>>>>>
> >>>>>>>>> yes it also should trigger job after that
> >>>>>>>>>
> >>>>>>>>> On Fri, Oct 10, 2025 at 4:39 AM Ron Liu <[email protected]>
> >>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hi, Sergey.
> >>>>>>>>>>
> >>>>>>>>>> Thanks for your quick response.
> >>>>>>>>>>
> >>>>>>>>>>>>> Probably one of the main use cases here is column name
> >>>>>>> reservation
> >>>>>>>>> for
> >>>>>>>>>> the future.
> >>>>>>>>>>
> >>>>>>>>>> I haven’t seen a concrete real-world business use case for this
> >>>>>>> feature.
> >>>>>>>>> My
> >>>>>>>>>> concern is: if the sole motivation is to align syntactically with
> >>>>>>> CTAS
> >>>>>>>>>> (Create Table As Select), what is its actual value and
> >>>>> significance?
> >>>>>>>>>>
> >>>>>>>>>>>>> Isn't it the same in the case of tables and pipelines bound
> >>>>> to
> >>>>>>> them?
> >>>>>>>>>> I was thinking that since there is MaterializedTableManager, then
> >>>>>>>>>> based on coming TableChangeOperation
> >>>>>>>>>> it could decide then how to process such change: for example full
> >>>>>>>>>> recompute or something more sophisticated
> >>>>>>>>>>
> >>>>>>>>>> I believe this is not entirely equivalent to a regular table:
> >>>>>>>>>>
> >>>>>>>>>>      - A materialized table consists of multiple components: table
> >>>>>>>>> metadata,
> >>>>>>>>>>      pipeline, and data. The pipeline is an integral part of the
> >>>>>>>>> materialized
> >>>>>>>>>>      table and is managed by it. We must ensure the stability and
> >>>>>>>>> consistency of
> >>>>>>>>>>      all these components.
> >>>>>>>>>>      - Unlike regular tables, the schema and data of a materialized
> >>>>>>> table
> >>>>>>>>> are
> >>>>>>>>>>      derived from and continuously updated by its defining query.
> >>>>>>>>> Therefore,
> >>>>>>>>>>      when adding, modifying, or dropping columns, the correct
> >>>>> approach
> >>>>>>>>> should be
> >>>>>>>>>>      to first update the query, and let the query drive the schema
> >>>>>>> change.
> >>>>>>>>>>      This is logically sound and delivers real business value. This
> >>>>>>>>> capability
> >>>>>>>>>>      is already supported in FLIP-492[1] and FLIP-546 and can be
> >>>>>>> further
> >>>>>>>>>>      extended.
> >>>>>>>>>>      - Allowing column modifications via ALTER MATERIALIZED TABLE
> >>>>>>>>>>      ADD/MODIFY/DROP COLUMN would cause a mismatch between the
> >>>>>>> materialized
> >>>>>>>>>>      table’s query definition and its physical schema, leading to
> >>>>>>>>> inconsistency
> >>>>>>>>>>      and significantly increasing operational and observability
> >>>>> costs.
> >>>>>>>>> Maybe
> >>>>>>>>>>      also confuse the user.
> >>>>>>>>>>      - Due to the special nature of materialized tables, metadata
> >>>>>>>>>>      modifications must be handled with great caution. We should
> >>>>> not
> >>>>>>> allow
> >>>>>>>>>>      arbitrary schema changes—for example, we cannot freely reorder
> >>>>>>>>> columns or
> >>>>>>>>>>      change column types, and we may not even allow arbitrary
> >>>>> column
> >>>>>>>>> deletions,
> >>>>>>>>>>      as these could break data compatibility. Moreover, if the
> >>>>>>> underlying
> >>>>>>>>>>      physical storage doesn’t support such changes, the pipeline
> >>>>> may
> >>>>>>> fail
> >>>>>>>>> to
> >>>>>>>>>>      run, and the MaterializedTableManager would be unable to
> >>>>> handle
> >>>>>>> it. In
> >>>>>>>>>>      such cases, the best solution is for the user to explicitly
> >>>>>>> recreate
> >>>>>>>>> the
> >>>>>>>>>>      materialized table. We must be cautious with user data—we
> >>>>> should
> >>>>>>> not
> >>>>>>>>>>      silently rebuild the physical table or reprocess historical
> >>>>> data
> >>>>>>> on
> >>>>>>>>> the
> >>>>>>>>>>      user’s behalf. Additionally, from a technical perspective, we
> >>>>> may
> >>>>>>>>> currently
> >>>>>>>>>>      lack the capability to perform a full historical backfill in
> >>>>>>>>>>      MaterializedTableManager, so such operations should be
> >>>>> explicitly
> >>>>>>>>> triggered
> >>>>>>>>>>      by the user.
> >>>>>>>>>>
> >>>>>>>>>> A new question: regarding the operation ALTER MATERIALIZED TABLE
> >>>>>>> MyTable
> >>>>>>>>>> ADD PARTITION (p1=1, p2='a') WITH ('k1'='v1'),  what is its
> >>>>> intended
> >>>>>>>>>> semantics? Is it purely a metadata-only operation, or does it
> >>>>> also
> >>>>>>>>> trigger
> >>>>>>>>>> a job to refresh data for the new partition? I believe it should
> >>>>> be
> >>>>>>> the
> >>>>>>>>>> latter—what’s your view?
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> With respect to the operations proposed in the FLIP, I think we
> >>>>> can
> >>>>>>>>> support
> >>>>>>>>>> those that only affect metadata and do not impact the
> >>>>> materialized
> >>>>>>>>> table’s
> >>>>>>>>>> query logic or data update behavior. The following operations are
> >>>>>>>>>> acceptable:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>      - Support defining watermarks when creating a MATERIALIZED
> >>>>> TABLE.
> >>>>>>>>>>      - Support specifying a column_list when creating a
> >>>>> MATERIALIZED
> >>>>>>> TABLE.
> >>>>>>>>>>      - Support ALTER MATERIALIZED TABLE to add watermarks, primary
> >>>>>>> keys, or
> >>>>>>>>>>      partitions.
> >>>>>>>>>>      - Support ALTER MATERIALIZED TABLE to drop watermarks, primary
> >>>>>>> keys,
> >>>>>>>>> or
> >>>>>>>>>>      partitions.
> >>>>>>>>>>
> >>>>>>>>>> For all other operations that would affect data updates or
> >>>>> require
> >>>>>>> query
> >>>>>>>>>> rewriting, I remain cautious and reserved.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> 1.
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-492%3A+Support+Query+Modifications+for+Materialized+Tables
> >>>>>>>>>>
> >>>>>>>>>> 2.
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-546%3A+Introduce+CREATE+OR+ALTER+for+Materialized+Tables
> >>>>>>>>>>
> >>>>>>>>>> Best,
> >>>>>>>>>> Ron
> >>>>>>>>>>
> >>>>>>>>>> Sergey Nuyanzin <[email protected]> 于2025年10月9日周四 18:38写道:
> >>>>>>>>>>
> >>>>>>>>>>> Hi Ron,
> >>>>>>>>>>>
> >>>>>>>>>>> thank you for the feedback
> >>>>>>>>>>>
> >>>>>>>>>>>> When adding new columns via CREATE or ALTER that are not
> >>>>> included
> >>>>>>> in
> >>>>>>>>> the
> >>>>>>>>>>> defining query of the Materialized Table—who is responsible for
> >>>>>>>>> updating
> >>>>>>>>>>> the data in these new columns?
> >>>>>>>>>>>
> >>>>>>>>>>> when we detect some new columns which are not present in query,
> >>>>>>>>>>> then
> >>>>>>>>>>> 1) validate that the type of each of them is nullable
> >>>>> (otherwise
> >>>>>>> throw
> >>>>>>>>>>> ValidationException)
> >>>>>>>>>>> 2) merge them into schema
> >>>>>>>>>>> 3) rewrite materializedTable query in a way that now this query
> >>>>>>> fills
> >>>>>>>>>>> newly added columns with nulls.
> >>>>>>>>>>> It means that newly rewritten query will be responsible for
> >>>>> filling
> >>>>>>>>>>> these null values
> >>>>>>>>>>> The approach is similar to the way CTAS behaves in the same
> >>>>>>> situation.
> >>>>>>>>>>>
> >>>>>>>>>>> Probably one of the main use cases here is column name
> >>>>> reservation
> >>>>>>> for
> >>>>>>>>>>> the future.
> >>>>>>>>>>>
> >>>>>>>>>>>> For ALTER MATERIALIZED TABLE operations like ADD/MODIFY/DROP
> >>>>>>>>>>> columns—these changes could cause the pipeline bound to the
> >>>>>>>>> Materialized
> >>>>>>>>>>> Table to fail.
> >>>>>>>>>>>
> >>>>>>>>>>> Isn't it the same in the case of tables and pipelines bound to
> >>>>>>> them?
> >>>>>>>>>>> I was thinking that since there is MaterializedTableManager,
> >>>>> then
> >>>>>>>>>>> based on coming TableChangeOperation
> >>>>>>>>>>> it could decide then how to process such change: for example
> >>>>> full
> >>>>>>>>>>> recompute or something more sophisticated
> >>>>>>>>>>>
> >>>>>>>>>>> Looking forward for your comments
> >>>>>>>>>>>
> >>>>>>>>>>> On Thu, Oct 9, 2025 at 11:13 AM Ron Liu <[email protected]>
> >>>>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Hi, Sergey.
> >>>>>>>>>>>>
> >>>>>>>>>>>> I was on vacation recently, so sorry for joining this
> >>>>> discussion
> >>>>>>> so
> >>>>>>>>> late.
> >>>>>>>>>>>>
> >>>>>>>>>>>> I’ve carefully reviewed the FLIP, and purely from the
> >>>>>>> perspective of
> >>>>>>>>>>>> aligning Materialized Table operations with those of a
> >>>>> regular
> >>>>>>>>> Table, I
> >>>>>>>>>>>> support this proposal in principle. However, in my
> >>>>> understanding,
> >>>>>>>>>>>> Materialized Tables and regular Tables are fundamentally
> >>>>>>> different. A
> >>>>>>>>>>>> Materialized Table is bound to a specific pipeline that
> >>>>> updates
> >>>>>>> its
> >>>>>>>>>>>> data—this pipeline is generated from the associated query. In
> >>>>>>>>> contrast, a
> >>>>>>>>>>>> regular Table isn’t tied to any pipeline; users manually
> >>>>> write
> >>>>>>>>> queries to
> >>>>>>>>>>>> update its data. Performing an ALTER operation on a regular
> >>>>> Table
> >>>>>>>>> only
> >>>>>>>>>>>> modifies metadata, whereas performing ALTER on a Materialized
> >>>>>>> Table
> >>>>>>>>>>> affects
> >>>>>>>>>>>> not only metadata but also the underlying data update
> >>>>> mechanism.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Given this context, I have the following questions:
> >>>>>>>>>>>> 1. When adding new columns via CREATE or ALTER that are not
> >>>>>>> included
> >>>>>>>>> in
> >>>>>>>>>>> the
> >>>>>>>>>>>> defining query of the Materialized Table—who is responsible
> >>>>> for
> >>>>>>>>> updating
> >>>>>>>>>>>> the data in these new columns? I’m unclear about the purpose
> >>>>> and
> >>>>>>> use
> >>>>>>>>> case
> >>>>>>>>>>>> for adding such columns. Could you provide a concrete
> >>>>> example?
> >>>>>>>>>>>> 2. For ALTER MATERIALIZED TABLE operations like
> >>>>> ADD/MODIFY/DROP
> >>>>>>>>>>>> columns—these changes could cause the pipeline bound to the
> >>>>>>>>> Materialized
> >>>>>>>>>>>> Table to fail. What is the exact execution flow for these
> >>>>>>> operations?
> >>>>>>>>>>> Could
> >>>>>>>>>>>> you elaborate on the runtime behavior for each type of
> >>>>> operation?
> >>>>>>>>> Since
> >>>>>>>>>>>> these actions impact actual data updates—not just
> >>>>> metadata—this
> >>>>>>> is a
> >>>>>>>>>>>> critical concern.
> >>>>>>>>>>>> In summary, I believe we shouldn’t blindly apply all regular
> >>>>>>> Table
> >>>>>>>>>>>> operations directly to Materialized Tables. Instead, we
> >>>>> should
> >>>>>>>>>>> selectively
> >>>>>>>>>>>> support a subset of operations based on real-world usage
> >>>>>>> scenarios
> >>>>>>>>> and
> >>>>>>>>>>>> semantic correctness. What’s your take on this? Best, Ron
> >>>>>>>>>>>>
> >>>>>>>>>>>> Sergey Nuyanzin <[email protected]> 于2025年10月8日周三 08:05写道:
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Hi Lincoln,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Thank you for your feedback.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I guess we already have similar behavior for CTAS, where we
> >>>>>>> could
> >>>>>>>>> put
> >>>>>>>>>>>>> more columns than we have for query.
> >>>>>>>>>>>>> In this case these extra columns should be filled with
> >>>>> nulls,
> >>>>>>> and
> >>>>>>>>> the
> >>>>>>>>>>>>> query should be rewritten accordingly [1].
> >>>>>>>>>>>>> This also means that extra columns should have nullable
> >>>>> type
> >>>>>>>>> (there is
> >>>>>>>>>>>>> a dedicated validation for this).
> >>>>>>>>>>>>> It means that for non query columns we have such default
> >>>>>>> values and
> >>>>>>>>>>>>> query is rewritten taking them into account
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Regarding adding columns with alter, or some other changes
> >>>>> like
> >>>>>>>>>>>>> adding/dropping columns, constraints, distribution
> >>>>>>>>>>>>> if I understand correctly MaterializedTableManager looking
> >>>>> at
> >>>>>>> table
> >>>>>>>>>>>>> change can decide whether it should recompute materialized
> >>>>>>> table or
> >>>>>>>>>>>>> not
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Would it make sense?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> [1]
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >> https://github.com/apache/flink/blob/3478ddf08bce49e271f69b922a37ccada6f58688/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/SqlCreateTableAsConverter.java#L66-L74
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On Tue, Oct 7, 2025 at 4:14 AM Lincoln Lee <
> >>>>>>> [email protected]
> >>>>>>>>>>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Thanks Sergey for driving this FLIP, it's a great
> >>>>> addition to
> >>>>>>>>>>>>> materialized
> >>>>>>>>>>>>>> table!
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Since it coincided with China's National Day holiday and
> >>>>>>>>> everyone is
> >>>>>>>>>>>>> still
> >>>>>>>>>>>>>> on
> >>>>>>>>>>>>>> vacation, we couldn't reply promptly.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I haven't fully reviewed all the content in the FLIP
> >>>>> yet, but
> >>>>>>>>>>> there's an
> >>>>>>>>>>>>>> important issue on the ALTER statement:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Unlike a regular CREATE TABLE, Materialized Table
> >>>>> derives its
> >>>>>>>>> schema
> >>>>>>>>>>> from
> >>>>>>>>>>>>>> the defined query, columns are generated based on the
> >>>>> query
> >>>>>>> (and,
> >>>>>>>>>>> similar
> >>>>>>>>>>>>>> to a
> >>>>>>>>>>>>>> materialized view, the underlying data for these columns
> >>>>> is
> >>>>>>>>> tightly
> >>>>>>>>>>>>> coupled
> >>>>>>>>>>>>>> to
> >>>>>>>>>>>>>> the query definition). Therefore, we cannot simply
> >>>>> interpret
> >>>>>>> the
> >>>>>>>>>>> effect
> >>>>>>>>>>>>> of
> >>>>>>>>>>>>>> an
> >>>>>>>>>>>>>> single `ALTER MATERIALIZED TABLE ADD New_Column`
> >>>>> statement.
> >>>>>>>>>>> Supporting
> >>>>>>>>>>>>> this
> >>>>>>>>>>>>>> likely requires accompanying column default value,and
> >>>>> raises
> >>>>>>>>>>>>> compatibility
> >>>>>>>>>>>>>> concerns regarding historical data, that is a complex
> >>>>> topic
> >>>>>>> we
> >>>>>>>>>>> previously
> >>>>>>>>>>>>>> discussed offline during the design process of FLIP-492.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Also, once Ron is back in the office, he may give a more
> >>>>>>> detailed
> >>>>>>>>>>>>> comment.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Best,
> >>>>>>>>>>>>>> Lincoln Lee
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Sergey Nuyanzin <[email protected]> 于2025年10月2日周四
> >>>>> 20:15写道:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Thank you Ramin
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> In case there is no more feedback/objections
> >>>>>>>>>>>>>>> I would start voting thread next week
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Thu, Sep 25, 2025 at 10:43 AM Ramin Gharib <
> >>>>>>>>>>> [email protected]>
> >>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Hi Sergey,
> >>>>>>>>>>>>>>>> Thanks for driving this! This sounds good to me! +1
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Cheers,
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Ramin
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On Wed, Sep 24, 2025 at 2:14 PM Sergey Nuyanzin <
> >>>>>>>>>>> [email protected]
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Hi everyone,
> >>>>>>>>>>>>>>>>> I'd like to start a discussion of FLIP-550
> >>>>>>>>>>>>>>>>> Add similar support for CREATE/ALTER operations for
> >>>>>>>>>>> MATERIALIZED
> >>>>>>>>>>>>>>>>> TABLEs as for TABLEs [1].
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> This FLIP is another step towards making tables and
> >>>>>>>>>>> materialized
> >>>>>>>>>>>>>>>>> tables more consistent. There was already one
> >>>>>>> improvement
> >>>>>>>>> in
> >>>>>>>>>>> that
> >>>>>>>>>>>>>>>>> direction like FLIP-542 [2] to add DISTRIBUTION and
> >>>>>>> SHOW
> >>>>>>>>>>>>> MATERIALIZED
> >>>>>>>>>>>>>>>>> TABLES support. However there were several more
> >>>>> things
> >>>>>>>>> noticed
> >>>>>>>>>>>>>>>>> comparing behavior for CREATE and ALTER
> >>>>> operations. For
> >>>>>>>>>>> instance
> >>>>>>>>>>>>> right
> >>>>>>>>>>>>>>>>> now for materialized tables it is impossible to set
> >>>>>>>>> anything
> >>>>>>>>>>> but
> >>>>>>>>>>>>> table
> >>>>>>>>>>>>>>>>> constraint while for tables (CREATE TABLE AS) it is
> >>>>>>>>> possible to
> >>>>>>>>>>>>>>>>> provide schema definition since FLIP-463 [3], also
> >>>>>>> ALTER
> >>>>>>>>>>> operations
> >>>>>>>>>>>>>>>>> for TABLE is a way more mature than for
> >>>>> MATERIALIZED
> >>>>>>> TABLE.
> >>>>>>>>>>> This
> >>>>>>>>>>>>> FLIP
> >>>>>>>>>>>>>>>>> is about to decrease the difference by enabling
> >>>>> more
> >>>>>>>>> similar
> >>>>>>>>>>>>> features
> >>>>>>>>>>>>>>>>> for materialized tables.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Introducing schema definition support for
> >>>>> materialized
> >>>>>>>>> tables
> >>>>>>>>>>> will
> >>>>>>>>>>>>>>>>> provide users with greater control and flexibility
> >>>>> and
> >>>>>>> also
> >>>>>>>>>>> will
> >>>>>>>>>>>>> unify
> >>>>>>>>>>>>>>>>> usage of tables and materialized tables.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> [1]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=387648095
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> [2]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-542%3A+Make+materialized+table+DDL+consistent+with+regular+tables
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> [3]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-463%3A+Schema+Definition+in+CREATE+TABLE+AS+Statement
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>>>>>> Sergey
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>>>> Sergey
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> --
> >>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>> Sergey
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> --
> >>>>>>>>>>> Best regards,
> >>>>>>>>>>> Sergey
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> Best regards,
> >>>>>>>>> Sergey
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Best regards,
> >>>>>>> Sergey
> >>>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Best regards,
> >>>>> Sergey
> >>>>>
> >>>
> >>>
> >>>
> >>
> >>
> >
>


-- 
Best regards,
Sergey

Reply via email to