goel-skd opened a new pull request, #760:
URL: https://github.com/apache/iceberg-cpp/pull/760
Replaces the ASCII-only `StringUtils::ToLower` with a Unicode-aware
implementation backed by
[utf8proc](https://github.com/JuliaStrings/utf8proc),
so case-insensitive name handling matches Iceberg Java's
`toLowerCase(Locale.ROOT)`.
- `ToLower` now lower-cases UTF-8 input using utf8proc simple (1:1) case
mapping (e.g. `CAFÉ` → `café`, `GROẞE` → `große`). Invalid UTF-8 is
returned unchanged rather than erroring.
- `EqualsIgnoreCase` now compares the lowercased forms of both inputs, so
it
is case-insensitive for non-ASCII letters too.
- `ToUpper` is intentionally left ASCII-only — it is not used for name
matching.
- utf8proc is wired into both the CMake (vendored via FetchContent / system
package) and Meson (`subprojects/utf8proc.wrap`) builds.
## Testing
- Added/updated `string_util_test.cc`: `ToLowerUnicode`,
`ToUpperAsciiOnly`,
and Unicode cases in `EqualsIgnoreCase` (including invalid-UTF-8
pass-through).
Closes #613.
--
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]