This is an automated email from the ASF dual-hosted git repository.
lide pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
new 655076237f1 [Bug](DECIMAL) Fix bug for arithmatic expr DECIMALV2 /
DECIMALV3 (#18723) (#32264)
655076237f1 is described below
commit 655076237f11ee0b8a53ae371bb069071404f9eb
Author: camby <[email protected]>
AuthorDate: Thu Mar 14 21:52:20 2024 +0800
[Bug](DECIMAL) Fix bug for arithmatic expr DECIMALV2 / DECIMALV3 (#18723)
(#32264)
Co-authored-by: Gabriel <[email protected]>
---
.../org/apache/doris/analysis/ArithmeticExpr.java | 2 +-
.../decimalv3/test_arithmetic_expressions.out | 6 ++++++
.../decimalv3/test_arithmetic_expressions.groovy | 22 ++++++++++++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
index c9bbb3c1cd5..56e4cb466de 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
@@ -557,7 +557,7 @@ public class ArithmeticExpr extends Expr {
if (((ScalarType) type).getScalarScale() != ((ScalarType)
children.get(1).type).getScalarScale()) {
castChild(type, 1);
}
- } else if (op == Operator.DIVIDE && (t2Scale != 0) &&
t1.isDecimalV3()) {
+ } else if (op == Operator.DIVIDE && (t2Scale != 0) &&
t1TargetType.isDecimalV3()) {
int targetScale = t1Scale + t2Scale;
if (precision < targetScale) {
type = castBinaryOp(Type.DOUBLE);
diff --git
a/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out
b/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out
index 085b844d7c8..7f29407e103 100644
--- a/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out
+++ b/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out
@@ -47,3 +47,9 @@
-- !select --
10999999.989
+-- !select --
+1 629.028702933 629.028702933
+2 722.810212429 722.810212429
+3 724.291976000 724.291976000
+4 688.890183155 688.890183155
+
diff --git
a/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy
b/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy
index 284cf482e43..b077e4c3621 100644
---
a/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy
+++
b/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy
@@ -65,4 +65,26 @@ suite("test_arithmetic_expressions") {
qt_select "select (a + b + c) / d from ${table1};"
qt_select "select a + b + c + d + e + f + g + h + i + j + k from
${table1};"
sql "drop table if exists ${table1}"
+
+ def table2 = "test_arithmetic_expressions"
+
+ sql "drop table if exists ${table2}"
+ sql """ create table ${table2} (
+ id smallint,
+ fz decimal(27,9),
+ fzv3 decimalv3(27,9),
+ fm decimalv3(38,10))
+ DISTRIBUTED BY HASH(`id`) BUCKETS auto
+ PROPERTIES
+ (
+ "replication_num" = "1"
+ ); """
+
+ sql """ insert into ${table2} values
(1,92594283.129196000,92594283.129196000,147202.0000000000); """
+ sql """ insert into ${table2} values
(2,107684988.257976000,107684988.257976000,148981.0000000000); """
+ sql """ insert into ${table2} values
(3,76891560.464178000,76891560.464178000,106161.0000000000); """
+ sql """ insert into ${table2} values
(4,277170831.851350000,277170831.851350000,402344.0000000000); """
+
+ qt_select """ select id, fz/fm as dec,fzv3/fm as decv3 from ${table2}
ORDER BY id; """
+ sql "drop table if exists ${table2}"
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]