SEPURI-SAI-KRISHNA commented on issue #12620:
URL: https://github.com/apache/seatunnel/issues/12620#issuecomment-6386282781

   **Scan update, re-run on `dev` `9ab97e15f`.** The 24 are now **13**, exactly 
the `sql/` set #12495 covers. `calcite`, `nlpmodel` and `validator` are at 
**zero**, so #12618 delivered its 11 when it merged on 2026-10-12. Confirmed 
zero now waits on #12495 alone.
   
   **1. Agreed on "always a fixed locale".** The carve-out still has no 
members. One surviving caller-locale case does exist, and it reads as a bug 
rather than a carve-out: `FORMATDATETIME` and `FROM_UNIXTIME` build their 
formatter with `DateTimeFormatter.ofPattern(format)` and no locale 
(`DateTimeFunction:616,799`), on a user-supplied pattern, and return the result 
as a **row value**, not a message. Measured, varying only the FORMAT locale:
   
   ```
   pattern      und          tr-TR        ja-JP
   yyyy-MM-dd   2026-10-24   2026-10-24   2026-10-24
   MMM d yyyy   Oct 24 2026  Eki 24 2026  10月 24 2026
   EEEE         Sat          Cumartesi    土曜日
   ```
   
   Numeric patterns are unaffected, which I would not have guessed; only text 
varies. Two workers with different locales emit different values for the same 
row, so the rule stays "always fixed". Filed as #12975, fix in #12976.
   
   **3. Scope it to what exists.** In this module's `src/main`: `String.format` 
has 103 sites, only **6** with numeric conversions, all 6 message text. 
`SimpleDateFormat`, `Calendar.getInstance`, `Collator` and 
`java.text.NumberFormat` are all at **0**, so three of your four APIs have no 
members here, like the carve-out.
   
   `DateTimeFormatter.ofPattern` has **3**. Two are the pair above. The third, 
`ZetaDateTimeFormat:51`, is a closed enum of numeric-only patterns, so it is 
provably safe; the contract should say so rather than ban the call. Open #12703 
adds a fourth that **parses** a user pattern and caches the formatter by 
pattern alone, which is worse: that path swallows `DateTimeException` into 
NULL, so the row silently loses its value. I am raising it there.
   
   **2. Nothing exists to hang a suppression on.** No pom in the repo declares 
checkstyle, forbidden-apis, spotbugs or errorprone; PMD appears only as three 
orphan version properties in the root `pom.xml`, with no plugin, ruleset or CI 
step. The repo's real mechanism is the one #12495 and #12618 use: a test 
pinning and restoring the JVM default, as 
`SQLDateTimeFunctionsTest#testAtTimeZone` does for `TimeZone`. A deliberate 
exception fits a one-line comment at the site; `Locale.getDefault()` appears 
exactly once here, `SeaTunnelDataContext:45`, feeding the Calcite `DataContext` 
contract.
   


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