JingsongLi opened a new pull request, #9564:
URL: https://github.com/apache/paimon/pull/9564

   ## Purpose
   
   Follow up #8334 so sub-field-level nested data evolution is completely 
opt-in and preserves legacy data-evolution behavior while disabled.
   
   ## Changes
   
   - Gate nested path parsing, projection, conflict detection, read planning, 
and partial writes in Core, Flink, and Spark behind 
data-evolution.nested-field.enabled.
   - Preserve literal top-level column names containing dots while the option 
is disabled, and reject partial or reordered nested write types that cannot use 
legacy metadata safely.
   - Support a persisted false-to-true rollout, reject dynamic transitions and 
true-to-false or removal, and require data-evolution.enabled=true.
   - Preserve row cardinality and every ROW ancestor nullness for projected or 
newly added nested leaves.
   - Separate format reader mappings by requested shape, physical projected 
schema, and effective nested mode.
   - Detect persisted enablement from file schemas so readers retained across 
ALTER TABLE false-to-true safely read later nested partial files.
   
   ## Compatibility
   
   Upgrade every reader, writer, compactor, and maintenance component before 
enabling the option. Downgrading after nested sub-field metadata has been 
committed is unsafe.
   
   ## Tests
   
   - Core targeted suite: 49 tests passed.
   - API option-aware TableSchema tests: 2 tests passed.
   - SchemaValidation and DataEvolutionUtils targeted tests: 4 tests passed.
   - Flink nested MERGE INTO integration suite: 14 tests passed.
   - Spark 3 nested MERGE INTO suite: 15 tests passed.
   - Spark 4 module compiled with JDK 17.
   - Spotless checks passed for all changed modules.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to