[ 
https://issues.apache.org/jira/browse/FLINK-39700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18081834#comment-18081834
 ] 

Arvid Heise commented on FLINK-39700:
-------------------------------------

Nested columns are modeled as a Modify(Physical)ColumnType as before. I'm 
certain that we don't have any TableChange class that notifies specifically 
about a subcolumn being adjusted.

> Fix name-based column matching in materialized table schema diff
> ----------------------------------------------------------------
>
>                 Key: FLINK-39700
>                 URL: https://issues.apache.org/jira/browse/FLINK-39700
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Planner
>    Affects Versions: 2.3.0
>            Reporter: Arvid Heise
>            Assignee: Arvid Heise
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.4.0
>
>
> MaterializedTableUtils.validateAndExtractColumnChanges currently compares 
> schemas positionally (by index). This makes it order-sensitive: if physical 
> DDL columns appear in a different order between the old and new schema, the 
> diff produces spurious ModifyPhysicalColumnType changes or incorrect 
> validation errors. Since DDL column order is arbitrary, the comparison should 
> be name-based.
> Additionally, when a physical column has a type change and a comment change 
> at the same time, only ModifyPhysicalColumnType is emitted. The comment 
> change is silently dropped because the early continue skips the 
> comment-comparison block.
> Fix:
>                                                                               
>                                                        
> 1. Build a Map<String, Column> from the old schema and match new columns by 
> name, treating unmatched columns as additions or drops.
> 2. After emitting ModifyPhysicalColumnType, check whether the comment also 
> changed before continuing. 



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

Reply via email to