wgtmac commented on code in PR #760:
URL: https://github.com/apache/iceberg-cpp/pull/760#discussion_r3471395155
##########
src/iceberg/util/string_util.h:
##########
@@ -41,22 +40,24 @@ concept FromChars = requires(const char* p, T& v) {
std::from_chars(p, p, v); };
class ICEBERG_EXPORT StringUtils {
public:
- // NOTE: These convert ASCII letters only; all other bytes, including
non-ASCII
- // (multibyte UTF-8) bytes, are passed through unchanged.
- // See https://github.com/apache/iceberg-cpp/issues/613.
- static std::string ToLower(std::string_view str) {
- return str | std::ranges::views::transform(ToLowerAscii) |
- std::ranges::to<std::string>();
- }
-
+ /// \brief Lower-case a UTF-8 string using Unicode simple case mapping.
+ ///
+ /// Mirrors Iceberg Java's case-insensitive handling, which lower-cases
names with
+ /// toLowerCase(Locale.ROOT). Invalid UTF-8 input is returned unchanged.
+ /// See https://github.com/apache/iceberg-cpp/issues/613.
+ static std::string ToLower(std::string_view str);
+
+ /// \brief Upper-case ASCII letters; non-ASCII (multibyte UTF-8) bytes pass
through
+ /// unchanged.
+ ///
+ /// Unlike ToLower this is ASCII-only, since upper-casing is not used for
name matching.
Review Comment:
My only concern on this is the naming. I don't think it is good if one is
`ToXXXAscii` but the other is `ToXXXUtf8`. It would be good to just use
`ToUpper` and `ToLower` when we only have a single pair and describe their
behavior clearly in the comment.
--
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]