This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new e5e31a8675 [common] Correct local dependency for string conversion
(#9346)
e5e31a8675 is described below
commit e5e31a86751a173121491e2ec7d484d73be70e3a
Author: Arnav Balyan <[email protected]>
AuthorDate: Sun Aug 23 20:50:53 2026 +0530
[common] Correct local dependency for string conversion (#9346)
---
.../src/main/java/org/apache/paimon/data/BinaryString.java | 5 +++--
.../test/java/org/apache/paimon/data/BinaryStringTest.java | 13 +++++++++++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git
a/paimon-common/src/main/java/org/apache/paimon/data/BinaryString.java
b/paimon-common/src/main/java/org/apache/paimon/data/BinaryString.java
index 3756ac9be9..750456f3b5 100644
--- a/paimon-common/src/main/java/org/apache/paimon/data/BinaryString.java
+++ b/paimon-common/src/main/java/org/apache/paimon/data/BinaryString.java
@@ -28,6 +28,7 @@ import javax.annotation.Nullable;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
+import java.util.Locale;
import static org.apache.paimon.memory.MemorySegmentUtils.allocateReuseBytes;
import static org.apache.paimon.memory.MemorySegmentUtils.allocateReuseChars;
@@ -535,7 +536,7 @@ public final class BinaryString extends BinarySection
implements Comparable<Bina
}
private BinaryString javaToUpperCase() {
- return fromString(toString().toUpperCase());
+ return fromString(toString().toUpperCase(Locale.ROOT));
}
/**
@@ -569,7 +570,7 @@ public final class BinaryString extends BinarySection
implements Comparable<Bina
}
private BinaryString javaToLowerCase() {
- return fromString(toString().toLowerCase());
+ return fromString(toString().toLowerCase(Locale.ROOT));
}
//
------------------------------------------------------------------------------------------
diff --git
a/paimon-common/src/test/java/org/apache/paimon/data/BinaryStringTest.java
b/paimon-common/src/test/java/org/apache/paimon/data/BinaryStringTest.java
index 2c22f00c30..f7c2525f42 100644
--- a/paimon-common/src/test/java/org/apache/paimon/data/BinaryStringTest.java
+++ b/paimon-common/src/test/java/org/apache/paimon/data/BinaryStringTest.java
@@ -30,6 +30,7 @@ import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
+import java.util.Locale;
import java.util.Random;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -346,6 +347,18 @@ public class BinaryStringTest {
assertThat(row.getString(5).toLowerCase()).isEqualTo(fromString("!@#$%^*"));
}
+ @TestTemplate
+ public void testLocaleIndependentUpperLowerCase() {
+ Locale originalLocale = Locale.getDefault();
+ try {
+ Locale.setDefault(new Locale("tr", "TR"));
+
assertThat(fromString("äi").toUpperCase()).isEqualTo(fromString("ÄI"));
+
assertThat(fromString("ÄI").toLowerCase()).isEqualTo(fromString("äi"));
+ } finally {
+ Locale.setDefault(originalLocale);
+ }
+ }
+
@TestTemplate
public void testCastFrom() {
class DecimalTestData {