li3zhi4 commented on PR #11633:
URL: https://github.com/apache/seatunnel/pull/11633#issuecomment-5215462583

   Thanks @DanielLeens for the ninth round and for the allowlist suggestion — 
inverting the classification is clearly the right call given the pattern of 
one-more-mutable-type discoveries. The new head `1335d0be1` addresses all the 
issues:
   
   **Issue 1 (High — ROW-typed default shared across rows):** the mutable-type 
denylist is gone. `isImmutableType(SqlType)` now uses an exhaustive switch 
listing only genuinely immutable types 
(STRING/BOOLEAN/TINYINT/SMALLINT/INT/BIGINT/FLOAT/DOUBLE/DECIMAL/DATE/TIME/TIMESTAMP/NULL);
 everything else — ARRAY/MAP/BYTES/FLOAT_VECTOR/ROW and any future type not 
explicitly listed — is re-converted per record, so the classification now fails 
closed instead of failing open. Added `testRowDefaultValueNotSharedAcrossRows` 
(a ROW-typed column default decoded into two rows yields distinct instances).
   
   **Issue 2 (Low-Medium — exception without context):** construction-time 
default conversion failures are now wrapped with column name, target SQL type 
and the offending value (`Invalid defaultValue for column 'x' of type ...: 
...`).
   
   **Issue 3 (Medium — File/Maxwell not wired):** both are now wired to the 
`CatalogTable` constructor: `MaxWellJsonDeserializationSchema` always, and the 
File connector's `JsonReadStrategy` in the non-merge-partition path. The File 
merge-partition path intentionally stays on the row-type-only constructor 
because partition columns are resolved from the file path at read time and 
cannot be expressed through the catalog table — I've left a comment explaining 
that at the call site.
   
   **Issue 5 (Low — fully-qualified names in e2e):** replaced with imports.
   
   Verification: `JsonDefaultValueTest` 16/16 (new ROW test included), full 
`seatunnel-format-json` module 62/62 green, `connector-file-base` + 
`MaxWellJsonDeserializationSchema` compile clean, `KafkaJsonDefaultValueIT` e2e 
1/1 passed locally, `spotless:check` clean. Issue 4 (overlap with the duplicate 
PR) is as you said a maintainer coordination decision — happy to defer to 
whatever the committers decide. Branch is up to date with `dev`.
   


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