Vamsi-klu opened a new pull request, #19089: URL: https://github.com/apache/pinot/pull/19089
## Why Columns that differ only by case (`memberId` vs `MemberID`) break case-insensitive external engines (e.g. Presto/Trino) and confuse operators. Pinot already rejects these when `enable.case.insensitive=true` (**cluster default true**). This PR hardens that check and locks it with explicit tests. **Compatibility note:** Always-on rejection even when case-insensitive mode is off still needs validation levels (#6645). This PR does **not** change that contract — it fixes Locale-safe lowercasing and adds regression tests for the default path maintainers already shipped. ## Impact - **Prevents schema footguns** on default (case-insensitive) clusters. - **Locale-safe** lowercasing (`Locale.ROOT`) avoids Turkish `I`/`ı` surprises. - **Documents** the current gate so contributors do not re-open always-on without #6645. - No behavior change for `enable.case.insensitive=false` (still allowed, as in 2021 guidance). ## How - `SchemaUtils.validate(..., isIgnoreCase)` uses `toLowerCase(Locale.ROOT)`. - Explicit unit tests for `memberId`/`MemberID` when ignore-case is on vs off. ## Test plan - [x] `SchemaUtilsTest` case-collision cases for ignore-case true/false. - [ ] `./mvnw -pl pinot-core,pinot-segment-local -am -Dtest=SchemaUtilsTest -Dsurefire.failIfNoSpecifiedTests=false test` ## Related fixes: #6644 related: #6645 (validation levels — not implemented here) ## Reviewers Suggested: xiangfu0, mcvsubbu (original discussion) --- ##### Was generative AI tooling used to co-author this PR? - [x] Yes — Grok Build (xAI) Generated-by: Grok Build (xAI) -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
