This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 423e7f7948417655b35f825950b081677e4b4d5f
Author: minghong <[email protected]>
AuthorDate: Thu Jul 20 18:39:41 2023 +0800

    [fix](stats) support utf-8 string range compare (#22024)
    
    in previous version, some utf-8 string literal are mapped to negative 
double. this issue makes our range check misfunction.
---
 .../doris/nereids/trees/expressions/literal/StringLikeLiteral.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
index 75cf871a3b..480ac996a1 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/StringLikeLiteral.java
@@ -36,9 +36,9 @@ public abstract class StringLikeLiteral extends Literal {
     public double getDouble() {
         long v = 0;
         int pos = 0;
-        int len = Math.min(value.length(), 8);
+        int len = Math.min(value.length(), 7);
         while (pos < len) {
-            v += ((long) value.charAt(pos)) << ((7 - pos) * 8);
+            v += Byte.toUnsignedLong(value.getBytes()[pos]) << ((6 - pos) * 8);
             pos++;
         }
         return (double) v;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to