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 {

Reply via email to