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]
