hutiefang76 opened a new pull request, #12880:
URL: https://github.com/apache/seatunnel/pull/12880

   ### Purpose of this pull request
   
   Yes, I am contributing to Apache SeaTunnel. Fixes #12878.
   
   The generic JDBC type converter currently logs an unsupported SQL type and 
returns a column whose SeaTunnel type is null. Report it through the existing 
conversion-error contract instead, so query schema discovery can aggregate the 
unsupported column names and the native types reported by the driver. Supported 
mappings remain unchanged.
   
   The metadata query path populates `BasicTypeDefine.dataType`, rather than 
`nativeType`; using that populated value keeps the driver type name in the 
error. The table-metadata path also fails with the existing typed conversion 
error; this PR does not change its pre-existing first-error behavior.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes. A Generic-dialect source with an unsupported column now fails schema 
discovery with a useful column/type diagnostic instead of accepting an invalid 
schema. English and Chinese JDBC source troubleshooting docs describe the error 
and the supported-query-cast/vendor-dialect options. There is no new type 
support, public API, option, default or data-format change. The timestamp and 
JSON type-support work in #11485/#11493 is outside this change.
   
   ### How was this patch tested?
   
   Java 17; standard build configuration and existing dependencies.
   
   - Original converter with the new existing-class regression: 
`CatalogUtilsTest` 18 tests, 1 failure (expected error was not thrown), 0 
errors/skips.
   - Fixed converter: all 18 `CatalogUtilsTest` cases pass, including supported 
INTEGER/VARCHAR controls.
   - Existing PostgreSQL IT extended with actual metadata for a `tsvector` 
expression and a supported-column control. 
`JdbcPostgresIT#testGenericTypeMappingReportsUnsupportedColumnType` passes: 1 
test, 0 failures/errors/skips, against the fixture's real PostgreSQL 18 
container. The test explicitly uses `GenericTypeMapper`; it does not claim 
PostgreSQL normally selects the generic dialect.
   - Full JDBC reactor `./mvnw -B -pl seatunnel-connectors-v2/connector-jdbc 
-am package`: 1,155 JDBC tests, 1 failure, 0 errors, 6 existing conditional 
skips. The sole failure is the unchanged `JdbcOptionRuleCompletenessTest` 
baseline false positive, separately fixed by #12875. That test change is not 
included here, and the full JDBC suite is **not** claimed green.
   - Root `./mvnw -B spotless:apply` and `./mvnw -q -DskipTests verify` pass. 
The root verify command skips tests.
   
   Actual existing-IT command:
   ```shell
   ./mvnw -B -pl 
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3
 -am -DskipUT=true -DskipIT=false 
-Dit.test=JdbcPostgresIT#testGenericTypeMappingReportsUnsupportedColumnType 
-Dfailsafe.failIfNoSpecifiedTests=false -DfailIfNoTests=false verify
   ```
   
   Independent first-pass review passed. DeepSeek assisted implementation and 
review; Codex ran and checked the reproduction, build, database test and final 
diff. Remote CI and maintainer review remain pending.
   
   ### Check list
   
   - No new JARs, dependencies or connectors.
   - Paired EN/ZH docs and the existing JDBC PostgreSQL IT are updated.
   - Existing supported mappings, APIs and configuration remain compatible.
   


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