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]
