SEPURI-SAI-KRISHNA commented on issue #12620: URL: https://github.com/apache/seatunnel/issues/12620#issuecomment-6423818815
The baseline you asked for, @SEZ9 @DanielLeens. #12495 merged as `a89de9b70`, so the zero is now established on `dev`. **New `dev` commit: `7b686d838`** (was `9ab97e15f` when you asked). The figures below are identical on `cb3351ed1` and on `7b686d838`, since nothing between them touched this module. **Scan of `seatunnel-transforms-v2/src/main`:** | | | | --- | --- | | java files scanned | 233 | | bare `toLowerCase()` / `toUpperCase()` | **0** | | `Locale.ROOT` qualified sites | 33 | | `Locale.getDefault()` | 1 | The 13 `sql/` sites are gone, which is what #12495 delivered. Together with the 11 from #12618 the original 24 are now all accounted for. A note on method, since a sloppy zero is worthless: I extracted the tree with `git archive` and scanned with a multiline aware pattern rather than a line based grep, which would miss a newline between the parentheses. On the same corpus the compliant form returns 33, so the scan is finding real call sites rather than failing silently. **The one deliberate exception to list explicitly:** `SeaTunnelDataContext.java:45`, `Locale.getDefault()` passed into the Calcite `DataContext` contract. That is a value Calcite asks us for rather than a case conversion of our own, so it is outside the contract as scoped, but it should be named in the test rather than left for the next reader to rediscover. **One thing worth adding, because it changes a conclusion from earlier in this thread.** The view so far has been that the "preserve intentional user-data casing" carve-out has no members. It does have a candidate, and #12495 resolved it: SQL `LOWER` and `UPPER` at `StringFunction.java:264` and `:272` return **row values**, not message text, which is exactly the category that could have argued for the caller locale. Both are now `Locale.ROOT`. So the carve-out is empty **by decision rather than by absence**, which is a stronger basis for the contract than "no example exists". Worth stating that way in the guard, since it is the case a future reader is most likely to challenge. **Scope confirmed as you set it:** case conversion only. The `DateTimeFormatter.ofPattern` sites stay as separate behavioural work in #12975 and #12976, the new shared formatter path in #12703, and `ZetaDateTimeFormat`'s numeric only enum stays out. Happy to send the focused test next, pinning the zero and naming the `SeaTunnelDataContext` exception at the call site and in the test, as @DanielLeens asked. -- 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]
