This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 7c163fdf21b [test](decimal) add some cases about overflow (#28198)
7c163fdf21b is described below
commit 7c163fdf21b6d8b1c7b3b8b4a41ee8f07a0bc013
Author: Jerry Hu <[email protected]>
AuthorDate: Mon Dec 11 11:22:53 2023 +0800
[test](decimal) add some cases about overflow (#28198)
---
.../test_decimalv2_calc_with_conversion.out | 133 ++++++++++++++
.../decimalv2/test_decimalv2_overflow.out | 30 ++++
.../decimalv3/test_decimalv3_overflow.out | 22 +++
.../test_decimalv2_calc_with_conversion.groovy | 197 +++++++++++++++++++++
.../decimalv2/test_decimalv2_overflow.groovy | 126 +++++++++++++
.../decimalv3/test_decimalv3_overflow.groovy | 53 ++++++
6 files changed, 561 insertions(+)
diff --git
a/regression-test/data/datatype_p0/decimalv2/test_decimalv2_calc_with_conversion.out
b/regression-test/data/datatype_p0/decimalv2/test_decimalv2_calc_with_conversion.out
new file mode 100644
index 00000000000..2d1ea211c53
--- /dev/null
+++
b/regression-test/data/datatype_p0/decimalv2/test_decimalv2_calc_with_conversion.out
@@ -0,0 +1,133 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !select_all --
+\N \N \N \N
+1.10000 1.20000 1.56000 1.23400
+1.10000 1.40000 1.50000 1.60000
+1.20000 1.20000 1.34400 1.32432
+1.20000 1.20000 1.66000 1.53465
+1.30000 1.20000 1.45600 1.34544
+2.10000 1.20000 1.30000 1.23400
+2.10000 1.20000 1.30000 1.23420
+2.20000 1.40000 1.21000 1.12300
+
+-- !select_calc1 --
+\N \N \N \N \N \N
+1.10000 1.10000 2.20000 0.00000 1.2100000000 1.000000000
+1.10000 1.10000 2.20000 0.00000 1.2100000000 1.000000000
+1.20000 1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.20000 1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.30000 1.30000 2.60000 0.00000 1.6900000000 1.000000000
+2.10000 2.10000 4.20000 0.00000 4.4100000000 1.000000000
+2.10000 2.10000 4.20000 0.00000 4.4100000000 1.000000000
+2.20000 2.20000 4.40000 0.00000 4.8400000000 1.000000000
+
+-- !select_calc2 --
+\N \N \N \N \N \N \N \N \N \N
+1.10000 1.20000 2.30000 -0.10000 1.3200000000 0.916666666
2.30000 0.10000 1.3200000000 1.090909090
+1.10000 1.40000 2.50000 -0.30000 1.5400000000 0.785714285
2.50000 0.30000 1.5400000000 1.272727272
+1.20000 1.20000 2.40000 0.00000 1.4400000000 1.000000000 2.40000
0.00000 1.4400000000 1.000000000
+1.20000 1.20000 2.40000 0.00000 1.4400000000 1.000000000 2.40000
0.00000 1.4400000000 1.000000000
+1.30000 1.20000 2.50000 0.10000 1.5600000000 1.083333333 2.50000
-0.10000 1.5600000000 0.923076923
+2.10000 1.20000 3.30000 0.90000 2.5200000000 1.750000000 3.30000
-0.90000 2.5200000000 0.571428571
+2.10000 1.20000 3.30000 0.90000 2.5200000000 1.750000000 3.30000
-0.90000 2.5200000000 0.571428571
+2.20000 1.40000 3.60000 0.80000 3.0800000000 1.571428571 3.60000
-0.80000 3.0800000000 0.636363636
+
+-- !select_calc3 --
+\N \N \N \N \N \N \N \N \N \N
+1.10000 1.50000 2.60000 -0.40000 1.6500000000 0.733333333
2.60000 0.40000 1.6500000000 1.363636363
+1.10000 1.56000 2.66000 -0.46000 1.7160000000 0.705128205
2.66000 0.46000 1.7160000000 1.418181818
+1.20000 1.34400 2.54400 -0.14400 1.6128000000 0.892857142
2.54400 0.14400 1.6128000000 1.120000000
+1.20000 1.66000 2.86000 -0.46000 1.9920000000 0.722891566
2.86000 0.46000 1.9920000000 1.383333333
+1.30000 1.45600 2.75600 -0.15600 1.8928000000 0.892857142
2.75600 0.15600 1.8928000000 1.120000000
+2.10000 1.30000 3.40000 0.80000 2.7300000000 1.615384615 3.40000
-0.80000 2.7300000000 0.619047619
+2.10000 1.30000 3.40000 0.80000 2.7300000000 1.615384615 3.40000
-0.80000 2.7300000000 0.619047619
+2.20000 1.21000 3.41000 0.99000 2.6620000000 1.818181818 3.41000
-0.99000 2.6620000000 0.550000000
+
+-- !select_calc4 --
+\N \N \N \N \N \N \N \N \N \N
+1.10000 1.23400 2.33400 -0.13400 1.3574000000 0.891410048
2.33400 0.13400 1.3574000000 1.121818181
+1.10000 1.60000 2.70000 -0.50000 1.7600000000 0.687500000
2.70000 0.50000 1.7600000000 1.454545454
+1.20000 1.32432 2.52432 -0.12432 1.5891840000 0.906125407
2.52432 0.12432 1.5891840000 1.103600000
+1.20000 1.53465 2.73465 -0.33465 1.8415800000 0.781937249
2.73465 0.33465 1.8415800000 1.278875000
+1.30000 1.34544 2.64544 -0.04544 1.7490720000 0.966226661
2.64544 0.04544 1.7490720000 1.034953846
+2.10000 1.23400 3.33400 0.86600 2.5914000000 1.701782820 3.33400
-0.86600 2.5914000000 0.587619047
+2.10000 1.23420 3.33420 0.86580 2.5918200000 1.701507049 3.33420
-0.86580 2.5918200000 0.587714285
+2.20000 1.12300 3.32300 1.07700 2.4706000000 1.959038290 3.32300
-1.07700 2.4706000000 0.510454545
+
+-- !select_calc5 --
+\N \N \N \N \N
+1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.20000 2.40000 0.00000 1.4400000000 1.000000000
+1.40000 2.80000 0.00000 1.9600000000 1.000000000
+1.40000 2.80000 0.00000 1.9600000000 1.000000000
+
+-- !select_calc6 --
+\N \N \N \N \N \N \N \N \N \N
+1.20000 1.30000 2.50000 -0.10000 1.5600000000 0.972289742
2.50000 0.10000 1.5600000000 1.083333333
+1.20000 1.30000 2.50000 -0.10000 1.5600000000 0.972447325
2.50000 0.10000 1.5600000000 1.083333333
+1.20000 1.34400 2.54400 -0.14400 1.6128000000 0.906125407
2.54400 0.14400 1.6128000000 1.120000000
+1.20000 1.45600 2.65600 -0.25600 1.7472000000 0.891901534
2.65600 0.25600 1.7472000000 1.213333333
+1.20000 1.56000 2.76000 -0.36000 1.8720000000 0.972447325
2.76000 0.36000 1.8720000000 1.300000000
+1.20000 1.66000 2.86000 -0.46000 1.9920000000 0.781937249
2.86000 0.46000 1.9920000000 1.383333333
+1.40000 1.21000 2.61000 0.19000 1.6940000000 1.246660730 2.61000
-0.19000 1.6940000000 0.864285714
+1.40000 1.50000 2.90000 -0.10000 2.1000000000 0.875000000
2.90000 0.10000 2.1000000000 1.071428571
+
+-- !select_calc7 --
+\N \N \N \N \N \N \N \N \N \N
+1.20000 1.23400 2.43400 -0.03400 1.4808000000 0.972447325
2.43400 0.03400 1.4808000000 1.028333333
+1.20000 1.23400 2.43400 -0.03400 1.4808000000 0.972447325
2.43400 0.03400 1.4808000000 1.028333333
+1.20000 1.23420 2.43420 -0.03420 1.4810400000 0.972289742
2.43420 0.03420 1.4810400000 1.028500000
+1.20000 1.32432 2.52432 -0.12432 1.5891840000 0.906125407
2.52432 0.12432 1.5891840000 1.103600000
+1.20000 1.34544 2.54544 -0.14544 1.6145280000 0.891901534
2.54544 0.14544 1.6145280000 1.121200000
+1.20000 1.53465 2.73465 -0.33465 1.8415800000 0.781937249
2.73465 0.33465 1.8415800000 1.278875000
+1.40000 1.12300 2.52300 0.27700 1.5722000000 1.246660730 2.52300
-0.27700 1.5722000000 0.802142857
+1.40000 1.60000 3.00000 -0.20000 2.2400000000 0.875000000
3.00000 0.20000 2.2400000000 1.142857142
+
+-- !select_calc8 --
+\N \N \N \N \N
+1.21000 2.42000 0.00000 1.4641000000 1.000000000
+1.30000 2.60000 0.00000 1.6900000000 1.000000000
+1.30000 2.60000 0.00000 1.6900000000 1.000000000
+1.34400 2.68800 0.00000 1.8063360000 1.000000000
+1.45600 2.91200 0.00000 2.1199360000 1.000000000
+1.50000 3.00000 0.00000 2.2500000000 1.000000000
+1.56000 3.12000 0.00000 2.4336000000 1.000000000
+1.66000 3.32000 0.00000 2.7556000000 1.000000000
+
+-- !select_calc9 --
+\N \N \N \N \N \N \N \N \N \N
+1.21000 1.12300 2.33300 0.08700 1.3588300000 1.077471059 2.33300
-0.08700 1.3588300000 0.928099173
+1.30000 1.23400 2.53400 0.06600 1.6042000000 1.053484602 2.53400
-0.06600 1.6042000000 0.949230769
+1.30000 1.23420 2.53420 0.06580 1.6044600000 1.053313887 2.53420
-0.06580 1.6044600000 0.949384615
+1.34400 1.32432 2.66832 0.01968 1.7798860800 1.014860456 2.66832
-0.01968 1.7798860800 0.985357142
+1.45600 1.34544 2.80144 0.11056 1.9589606400 1.082173861 2.80144
-0.11056 1.9589606400 0.924065934
+1.50000 1.60000 3.10000 -0.10000 2.4000000000 0.937500000
3.10000 0.10000 2.4000000000 1.066666666
+1.56000 1.23400 2.79400 0.32600 1.9250400000 1.264181523 2.79400
-0.32600 1.9250400000 0.791025641
+1.66000 1.53465 3.19465 0.12535 2.5475190000 1.081679861 3.19465
-0.12535 2.5475190000 0.924487951
+
+-- !select_calc10 --
+\N \N \N \N \N
+1.12300 2.24600 0.00000 1.2611290000 1.000000000
+1.23400 2.46800 0.00000 1.5227560000 1.000000000
+1.23400 2.46800 0.00000 1.5227560000 1.000000000
+1.23420 2.46840 0.00000 1.5232496400 1.000000000
+1.32432 2.64864 0.00000 1.7538234624 1.000000000
+1.34544 2.69088 0.00000 1.8102087936 1.000000000
+1.53465 3.06930 0.00000 2.3551506225 1.000000000
+1.60000 3.20000 0.00000 2.5600000000 1.000000000
+
+-- !calc_overflow --
+\N \N \N \N
+1.21000 1.12300 1209.9999879000 1.122999887700
+1.30000 1.23400 1299.9999870000 1.233999876600
+1.30000 1.23420 1299.9999870000 1.234199876580
+1.34400 1.32432 1343.9999865600 1.324319867568
+1.45600 1.34544 1455.9999854400 1.345439865456
+1.50000 1.60000 1499.9999850000 1.599999840000
+1.56000 1.23400 1559.9999844000 1.233999876600
+1.66000 1.53465 1659.9999834000 1.534649846535
+
diff --git
a/regression-test/data/datatype_p0/decimalv2/test_decimalv2_overflow.out
b/regression-test/data/datatype_p0/decimalv2/test_decimalv2_overflow.out
new file mode 100644
index 00000000000..8375fe82db7
--- /dev/null
+++ b/regression-test/data/datatype_p0/decimalv2/test_decimalv2_overflow.out
@@ -0,0 +1,30 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !sql1 --
+9223372036854775807.999999999
+
+-- !decimalv2_calc_overflow --
+123456789000.123456 12345678.12345678 1524157779151043787.117829481
+999999999999.999999 99999999.99999999 7766279631452231820.000000001
+
+-- !union1 --
+9.900000000
+9999999.999999999
+99999999999999999.999999999
+
+-- !union2 --
+9.900000000
+9999999.999999999
+99999999999999999.999999999
+
+-- !intersect1 --
+9.900000000
+
+-- !intersect2 --
+9.900000000
+
+-- !except1 --
+99999999999999999.999999999
+
+-- !except2 --
+9999999.999999999
+
diff --git
a/regression-test/data/datatype_p0/decimalv3/test_decimalv3_overflow.out
b/regression-test/data/datatype_p0/decimalv3/test_decimalv3_overflow.out
index 8f0c6d92bc1..f865fb72808 100644
--- a/regression-test/data/datatype_p0/decimalv3/test_decimalv3_overflow.out
+++ b/regression-test/data/datatype_p0/decimalv3/test_decimalv3_overflow.out
@@ -70,3 +70,25 @@
1.1 1.111120000000000000000000000000000000 2.21
123456789012345678901234567890123456.7 1.234567890123456789012345678901234567
123456789012345678901234567890123457.93
+-- !union1 --
+9.9
+10.0
+999999999999999999.9
+
+-- !union2 --
+9.9
+10.0
+999999999999999999.9
+
+-- !intersect1 --
+9.9
+
+-- !intersect2 --
+9.9
+
+-- !except1 --
+10.0
+
+-- !except2 --
+999999999999999999.9
+
diff --git
a/regression-test/suites/datatype_p0/decimalv2/test_decimalv2_calc_with_conversion.groovy
b/regression-test/suites/datatype_p0/decimalv2/test_decimalv2_calc_with_conversion.groovy
new file mode 100644
index 00000000000..f500c195b26
--- /dev/null
+++
b/regression-test/suites/datatype_p0/decimalv2/test_decimalv2_calc_with_conversion.groovy
@@ -0,0 +1,197 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_decimalv2_calc_with_conversion", "nonConcurrent") {
+
+ sql """
+ admin set frontend config("enable_decimal_conversion" = "true");
+ """
+ sql "set check_overflow_for_decimal=false;"
+
+ def table1 = "test_decimalv2_calc_tbl"
+
+ sql "drop table if exists ${table1}"
+
+ sql """
+ CREATE TABLE IF NOT EXISTS `${table1}` (
+ `decimal_key1` decimalv2(8, 5) NULL COMMENT "",
+ `decimal_key2` decimalv2(16, 5) NULL COMMENT "",
+ `decimal_value1` decimalv2(8, 5) NULL COMMENT "",
+ `decimal_value2` decimalv2(16, 5) NULL COMMENT "",
+ ) ENGINE=OLAP
+ DUPLICATE KEY(`decimal_key1`, `decimal_key2`)
+ COMMENT "OLAP"
+ DISTRIBUTED BY HASH(`decimal_key1`, `decimal_key2`) BUCKETS 4
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+
+ sql """insert into ${table1} values
+ (1.1, 1.4, 1.5, 1.6),
+ (1.1, 1.2, 1.56, 1.234),
+ (1.2, 1.2, 1.66, 1.534654),
+ (1.2, 1.2, 1.344, 1.32432),
+ (1.3, 1.2, 1.456, 1.345435),
+ (2.1, 1.2, 1.3, 1.234),
+ (2.1, 1.2, 1.3, 1.2342),
+ (2.2, 1.4, 1.21, 1.123),
+ (NULL, NULL, NULL, NULL)
+ """
+ qt_select_all "select * from ${table1} order by 1, 2, 3, 4"
+
+ qt_select_calc1 """
+ select
+ decimal_key1, decimal_key1
+ , decimal_key1 + decimal_key1 v1
+ , decimal_key1 - decimal_key1 v2
+ , decimal_key1 * decimal_key1 v3
+ , decimal_key1 / decimal_key1 v4
+ from ${table1} order by 1, 2, 3, 4, 5;
+ """
+
+ qt_select_calc2 """
+ select
+ decimal_key1
+ , decimal_key2
+ , decimal_key1 + decimal_key2 v1
+ , decimal_key1 - decimal_key2 v2
+ , decimal_key1 * decimal_key2 v3
+ , decimal_key1 / decimal_key2 v4
+ , decimal_key2 + decimal_key1 v5
+ , decimal_key2 - decimal_key1 v6
+ , decimal_key2 * decimal_key1 v7
+ , decimal_key2 / decimal_key1 v8
+ from ${table1} order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
+ """
+
+ qt_select_calc3 """
+ select
+ decimal_key1
+ , decimal_value1
+ , decimal_key1 + decimal_value1 v1
+ , decimal_key1 - decimal_value1 v2
+ , decimal_key1 * decimal_value1 v3
+ , decimal_key1 / decimal_value1 v4
+ , decimal_value1 + decimal_key1 v5
+ , decimal_value1 - decimal_key1 v6
+ , decimal_value1 * decimal_key1 v7
+ , decimal_value1 / decimal_key1 v8
+ from ${table1} order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
+ """
+
+ qt_select_calc4 """
+ select
+ decimal_key1
+ , decimal_value2
+ , decimal_key1 + decimal_value2 v1
+ , decimal_key1 - decimal_value2 v2
+ , decimal_key1 * decimal_value2 v3
+ , decimal_key1 / decimal_value2 v4
+ , decimal_value2 + decimal_key1 v5
+ , decimal_value2 - decimal_key1 v6
+ , decimal_value2 * decimal_key1 v7
+ , decimal_value2 / decimal_key1 v8
+ from ${table1} order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
+ """
+
+ qt_select_calc5 """
+ select
+ decimal_key2
+ , decimal_key2 + decimal_key2 v1
+ , decimal_key2 - decimal_key2 v2
+ , decimal_key2 * decimal_key2 v3
+ , decimal_key2 / decimal_key2 v4
+ from ${table1} order by 1, 2, 3, 4, 5;
+ """
+
+ qt_select_calc6 """
+ select
+ decimal_key2
+ , decimal_value1
+ , decimal_key2 + decimal_value1 v1
+ , decimal_key2 - decimal_value1 v2
+ , decimal_key2 * decimal_value1 v3
+ , decimal_key2 / decimal_value2 v4
+ , decimal_value1 + decimal_key2 v5
+ , decimal_value1 - decimal_key2 v6
+ , decimal_value1 * decimal_key2 v7
+ , decimal_value1 / decimal_key2 v8
+ from ${table1} order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
+ """
+
+ qt_select_calc7 """
+ select
+ decimal_key2
+ , decimal_value2
+ , decimal_key2 + decimal_value2 v1
+ , decimal_key2 - decimal_value2 v2
+ , decimal_key2 * decimal_value2 v3
+ , decimal_key2 / decimal_value2 v4
+ , decimal_value2 + decimal_key2 v5
+ , decimal_value2 - decimal_key2 v6
+ , decimal_value2 * decimal_key2 v7
+ , decimal_value2 / decimal_key2 v8
+ from ${table1} order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
+ """
+
+ qt_select_calc8 """
+ select
+ decimal_value1
+ , decimal_value1 + decimal_value1 v1
+ , decimal_value1 - decimal_value1 v2
+ , decimal_value1 * decimal_value1 v3
+ , decimal_value1 / decimal_value1 v4
+ from ${table1} order by 1, 2, 3, 4, 5;
+ """
+
+ qt_select_calc9 """
+ select
+ decimal_value1
+ , decimal_value2
+ , decimal_value1 + decimal_value2 v1
+ , decimal_value1 - decimal_value2 v2
+ , decimal_value1 * decimal_value2 v3
+ , decimal_value1 / decimal_value2 v4
+ , decimal_value2 + decimal_value1 v5
+ , decimal_value2 - decimal_value1 v6
+ , decimal_value2 * decimal_value1 v7
+ , decimal_value2 / decimal_value1 v8
+ from ${table1} order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
+ """
+
+ qt_select_calc10 """
+ select
+ decimal_value2
+ , decimal_value2 + decimal_value2 v1
+ , decimal_value2 - decimal_value2 v2
+ , decimal_value2 * decimal_value2 v3
+ , decimal_value2 / decimal_value2 v4
+ from ${table1} order by 1, 2, 3, 4, 5;
+ """
+
+ qt_calc_overflow """
+ select
+ decimal_value1
+ , decimal_value2
+ , decimal_value1 * 999.99999 v1
+ , decimal_value2 * 0.9999999 v1
+ from ${table1} order by 1, 2, 3, 4;
+ """
+}
diff --git
a/regression-test/suites/datatype_p0/decimalv2/test_decimalv2_overflow.groovy
b/regression-test/suites/datatype_p0/decimalv2/test_decimalv2_overflow.groovy
new file mode 100644
index 00000000000..932bb8376c6
--- /dev/null
+++
b/regression-test/suites/datatype_p0/decimalv2/test_decimalv2_overflow.groovy
@@ -0,0 +1,126 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_decimalv2_overflow", "nonConcurrent") {
+ sql """
+ admin set frontend config("enable_decimal_conversion" = "false");
+ """
+
+ sql """ set check_overflow_for_decimal=false; """
+
+ def tblName1 = "test_decimalv2_overflow1"
+ sql "drop table if exists ${tblName1}"
+ sql """ CREATE TABLE ${tblName1} (
+ `c1` decimalv2(22, 4)
+ ) ENGINE=OLAP
+ DISTRIBUTED BY HASH(`c1`) BUCKETS 10
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ ); """
+ sql "insert into ${tblName1} values(104665062791137173.7169)"
+
+ def tblName2 = "test_decimalv2_overflow2"
+ sql "drop table if exists ${tblName2}"
+ sql """ CREATE TABLE ${tblName2} (
+ `c2` decimalv2(20, 2),
+ ) ENGINE=OLAP
+ UNIQUE KEY(`c2`)
+ DISTRIBUTED BY HASH(`c2`) BUCKETS 10
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ ); """
+ sql "insert into ${tblName2} values(705091149953414452.46)"
+
+ // qt_sql1 """ select c2 / 10000 * c1 from ${tblName1}, ${tblName2}; """
+
+ qt_sql1 """ select c2 / 10000 * c1 from ${tblName1}, ${tblName2}; """
+
+ sql "drop TABLE IF EXISTS test_decimalv2_overflow;"
+ sql """
+ CREATE TABLE test_decimalv2_overflow(
+ k1 decimalv2(18, 6),
+ k2 decimalv2(16, 8)
+ )
+ DISTRIBUTED BY HASH(`k1`, `k2`) BUCKETS 8
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );
+ """
+ sql """
+ insert into test_decimalv2_overflow values
+ (123456789000.123456, 12345678.12345678),
+ (999999999999.999999, 99999999.99999999);
+ """
+
+ // result type: (9,1)
+ qt_decimalv2_calc_overflow """
+ select k1, k2, k1 * k2 from test_decimalv2_overflow order by 1,2;
+ """
+
+ sql "drop TABLE IF EXISTS test_decimalv2_tb1;"
+ sql "drop TABLE IF EXISTS test_decimalv2_tb2;"
+
+ sql """
+ create table test_decimalv2_tb1(
+ k1 decimalv2(27, 9)
+ ) DISTRIBUTED BY HASH(`k1`) BUCKETS 8
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );
+ """
+
+ sql """
+ create table test_decimalv2_tb2(
+ k2 decimalv2(19, 9)
+ ) DISTRIBUTED BY HASH(`k2`) BUCKETS 8
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );
+ """
+
+ sql """
+ insert into test_decimalv2_tb1 values(99999999999999999.999999999),
(9.9);
+ """
+
+ sql """
+ insert into test_decimalv2_tb2 values(9999999.999999999), (9.9);
+ """
+
+ qt_union1 """
+ select * from (select * from test_decimalv2_tb1 union select * from
test_decimalv2_tb2) t order by 1;
+ """
+
+ qt_union2 """
+ select * from (select * from test_decimalv2_tb2 union select * from
test_decimalv2_tb1) t order by 1;
+ """
+
+ qt_intersect1 """
+ select * from (select * from test_decimalv2_tb1 intersect select *
from test_decimalv2_tb2) t order by 1;
+ """
+
+ qt_intersect2 """
+ select * from (select * from test_decimalv2_tb2 intersect select *
from test_decimalv2_tb1) t order by 1;
+ """
+
+ qt_except1 """
+ select * from (select * from test_decimalv2_tb1 except select * from
test_decimalv2_tb2) t order by 1;
+ """
+
+ qt_except2 """
+ select * from (select * from test_decimalv2_tb2 except select * from
test_decimalv2_tb1) t order by 1;
+ """
+}
diff --git
a/regression-test/suites/datatype_p0/decimalv3/test_decimalv3_overflow.groovy
b/regression-test/suites/datatype_p0/decimalv3/test_decimalv3_overflow.groovy
index 47589f2d309..3e0e0944213 100644
---
a/regression-test/suites/datatype_p0/decimalv3/test_decimalv3_overflow.groovy
+++
b/regression-test/suites/datatype_p0/decimalv3/test_decimalv3_overflow.groovy
@@ -583,4 +583,57 @@ suite("test_decimalv3_overflow") {
>>>
len('57896044618658097711785492504343953926634992332820282019728792003956564819967')
77
*/
+
+ sql "drop TABLE IF EXISTS test_decimalv3_tb1;"
+ sql "drop TABLE IF EXISTS test_decimalv3_tb2;"
+
+ sql """
+ create table test_decimalv3_tb1(
+ k1 decimalv3(38, 37)
+ ) DISTRIBUTED BY HASH(`k1`) BUCKETS 8
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );
+ """
+
+ sql """
+ create table test_decimalv3_tb2(
+ k2 decimalv3(38, 1) not null
+ ) DISTRIBUTED BY HASH(`k2`) BUCKETS 8
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );
+ """
+
+ sql """
+ insert into test_decimalv3_tb1 values(9.9999999999999999999999999),
(9.9);
+ """
+
+ sql """
+ insert into test_decimalv3_tb2 values(999999999999999999.9), (9.9);
+ """
+
+ qt_union1 """
+ select * from (select * from test_decimalv3_tb1 union select * from
test_decimalv3_tb2) t order by 1;
+ """
+
+ qt_union2 """
+ select * from (select * from test_decimalv3_tb2 union select * from
test_decimalv3_tb1) t order by 1;
+ """
+
+ qt_intersect1 """
+ select * from (select * from test_decimalv3_tb1 intersect select *
from test_decimalv3_tb2) t order by 1;
+ """
+
+ qt_intersect2 """
+ select * from (select * from test_decimalv3_tb2 intersect select *
from test_decimalv3_tb1) t order by 1;
+ """
+
+ qt_except1 """
+ select * from (select * from test_decimalv3_tb1 except select * from
test_decimalv3_tb2) t order by 1;
+ """
+
+ qt_except2 """
+ select * from (select * from test_decimalv3_tb2 except select * from
test_decimalv3_tb1) t order by 1;
+ """
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]