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

   ### Purpose of this pull request
   
   Fixes #12507. DuckDB JDBC Source currently reads unsigned maxima (255, 
65535, 4294967295, 18446744073709551615) as -1 because it maps each unsigned 
type to a signed type of the same width. The JDBC driver returns the values 
correctly.
   
   Widen UTINYINT to SMALLINT, USMALLINT to INT, UINTEGER to BIGINT, and 
UBIGINT to DECIMAL(20,0), matching the documented source mapping and the 
existing MySQL unsigned conversion pattern. Signed integer mappings are 
unchanged.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes. Automatically inferred unsigned columns now preserve the full range, 
and schemas/tables generated from those columns use wider types. The 
English/Chinese source documentation and incompatible-changes guide explain the 
change and the need to review downstream schemas/transforms. There are no new 
options or dependencies.
   
   ### How was this patch tested?
   
   Added a regression to DuckDBSourceAndSinkTest using the actual 
JdbcSourceFactory/JdbcSinkFactory and DuckDB JDBC 1.3.1. It covers the four 
unsigned maxima, values just above each signed maximum, zero and null; writes 
to both a precreated unsigned table and a table generated by DuckDBCatalog; and 
reads both back through new Source connections. The regression failed on the 
old code with the maximum-value row missing, then passed after the conversion 
fix.
   
   JDK 8 and JDK 17 each passed connector-jdbc verify with 
DuckDBSourceAndSinkTest, DuckDBCatalogTest and DuckDBDialectTest: 17 tests, 
zero failures/errors/skips. Spotless and git diff --check passed.
   
   ```sh
   mvn -o -pl seatunnel-connectors-v2/connector-jdbc verify 
-Dtest=DuckDBSourceAndSinkTest,DuckDBCatalogTest,DuckDBDialectTest
   ```
   
   This is local connector validation; upstream CI is separate.
   
   ### Check list
   
   * [x] English and Chinese documentation updated.
   * [x] incompatible-changes.md updated for wider inferred schemas.
   * [x] Existing Source/Sink regression extended.
   * No new connector, binary, dependency, plugin mapping or distribution entry 
is needed.
   


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