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

   @SEZ9 — current-head evidence, part 1/2 (F1–F4), pinned to 
`e7586c06a83ae174775bd3fdd8aa46a05039672f`. These fixes already exist on this 
head; the last commit only adds `alwaysPull()` to the two SplitITs, rather than 
implementing F1–F8 anew. This is a request for your confirmation, not a claim 
of reviewer approval.
   
   - **F1 — SQLite NULL components:** boundary probes exclude NULL components; 
the first split includes them, while middle/last splits explicitly exclude 
them. See [boundary 
filter](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/DynamicChunkSplitter.java#L300-L302)
 and [read 
predicates](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/DynamicChunkSplitter.java#L1411-L1448).
 The official [SQLite 
regression](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcSqliteSplitIT.java#L260-L352)
 puts NULL-secondary-key rows strictly ins
 ide a middle range, checks fixture validity, all 93 rows/93 distinct keys, and 
all three NULL-key rows exactly once in the first split.
   - **F2 — Oracle 11g:** [runtime major-version 
gate](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java#L352-L375)
 returns false with WARN below 12 or on metadata SQLException, retaining the 
single-column fallback. [version 
regression](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/CompositeKeyChunkSplitterTest.java#L477-L491)
 explicitly checks 11=false, 12/23=true. This is a runtime gate, not merely a 
documented prerequisite.
   - **F3/F4 — STRING/collation:** [findSplitKey 
guard](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/ChunkSplitter.java#L445-L474)
 requires every composite PK component to be splittable and non-STRING; 
otherwise it uses the prior single-column path, including for binary 
collations. The official [MySQL 
regression](https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMysqlSplitIT.java#L925-L1017)
 uses `utf8mb4_general_ci`, mixed case, accents/non-ASCII and comma-containing 
values; it proves DB/Java ordering divergence (`Z` vs `a`), asserts 
single-column `order_id` boundaries and exact reconstruction of all 300 keys 
without duplicates. Also [unit fallback regression]
 
(https://github.com/apache/seatunnel/blob/e7586c06a83ae174775bd3fdd8aa46a05039672f/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/CompositeKeyChunkSplitterTest.java#L207-L228).
   
   F5–F8 and the precise Oracle ordered-run evidence follow separately to keep 
the response readable.


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