sharpca commented on PR #13083: URL: https://github.com/apache/seatunnel/pull/13083#issuecomment-6562404389
Added the focused IT case you asked for, in the existing fixture rather than a new harness. **What was added** — `JdbcMysqlSplitIT#testFixedStringSplitsReadAllRowsUnderTurkishLocale`, in `connector-jdbc-e2e-part-7` (+102 lines, the only change in `704af8840`): - A dedicated table `auto.fixed_string_locale (id VARCHAR(32) PRIMARY KEY) COLLATE utf8mb4_general_ci`, so the collation is case-insensitive and the boundary fold matters. - 20 rows whose identifiers mix `I` and `i` prefixes (`I1`, `i2`, `I3`, … `i20`). The digits keep them distinct even under a case-insensitive collation, so the primary key does not collapse the two spellings. - The default locale is switched to `tr-TR` **before** catalog discovery (`MySqlCatalog.open()`, `getTable`) and stays in effect while `FixedChunkSplitter` performs `charset_based` string splitting and while each split statement executes. All three locale categories are restored in `finally`. **What it asserts** — more than one split is produced; the set of row identities read across all splits equals the inserted set; and every row is read exactly once. A boundary fold that shifted between locales therefore shows up as a missing row or a duplicate, which is the gap your Issue 1 describes. The split/read API usage deliberately mirrors the neighbouring `testFixedNumericSplitsReadAllRows`: same `JdbcSourceTable.builder()` with `query` / `partitionColumn` / `partitionNumber`, same `generateSplitStatement(split, table.getTableSchema())` loop. **What I could not do here, stated plainly** — I did not compile or run this case. Two separate blockers on this machine: 1. No Docker daemon, so the MySQL container cannot start. 2. Dependency resolution for `connector-jdbc-e2e-part-7` fails before compilation: `connector-jdbc-e2e-common:jar:tests`, `connector-assert` and the five `seatunnel-flink-13/15/20` / `seatunnel-spark-2/3` starter artifacts are absent from the local repository, so `mvn test-compile` on that module stops at resolution and never reaches my code. So this needs CI to compile and run it, as you suggested. If it fails there I will fix it from the CI log rather than guess; the assertions and the data shape are the part I would want reviewed first. Nothing further from me on #13081 — thanks for the clearance there. -- 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]
