Arvid Heise created FLINK-39700:
-----------------------------------

             Summary: 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
             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