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)