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
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new d16a434b48c [FIX](decimalv3)Fix largeint literal cast to decimalv3
#26159 (#26370)
d16a434b48c is described below
commit d16a434b48cb241423c424925c590127a289d6bc
Author: amory <[email protected]>
AuthorDate: Fri Nov 3 16:25:13 2023 +0800
[FIX](decimalv3)Fix largeint literal cast to decimalv3 #26159 (#26370)
---
be/src/vec/data_types/data_type_decimal.h | 4 ++++
.../data/query_p0/cast/test_cast_decimalv3.out | 7 ++++++
.../query_p0/cast/test_cast_decimalv3.groovy | 27 ++++++++++++++++++++++
3 files changed, 38 insertions(+)
diff --git a/be/src/vec/data_types/data_type_decimal.h
b/be/src/vec/data_types/data_type_decimal.h
index 23a3c2bc39e..8fef0f1c245 100644
--- a/be/src/vec/data_types/data_type_decimal.h
+++ b/be/src/vec/data_types/data_type_decimal.h
@@ -623,6 +623,10 @@ ToDataType::FieldType convert_to_decimal(const typename
FromDataType::FieldType&
return convert_decimals<DataTypeDecimal<Decimal128>,
ToDataType>(value, 0, scale);
}
}
+ if constexpr (std::is_same_v<FromFieldType, Int128>) {
+ return convert_decimals<DataTypeDecimal<Decimal128>,
ToDataType>(value, 0, scale);
+ }
+
return convert_decimals<DataTypeDecimal<Decimal64>, ToDataType>(value,
0, scale);
}
}
diff --git a/regression-test/data/query_p0/cast/test_cast_decimalv3.out
b/regression-test/data/query_p0/cast/test_cast_decimalv3.out
new file mode 100644
index 00000000000..29f8134b82b
--- /dev/null
+++ b/regression-test/data/query_p0/cast/test_cast_decimalv3.out
@@ -0,0 +1,7 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !sql_string --
+12345678901234567890123456789012345678
+
+-- !sql_largeint --
+12345678901234567890123456789012345678
+
diff --git a/regression-test/suites/query_p0/cast/test_cast_decimalv3.groovy
b/regression-test/suites/query_p0/cast/test_cast_decimalv3.groovy
new file mode 100644
index 00000000000..f7567c4f49e
--- /dev/null
+++ b/regression-test/suites/query_p0/cast/test_cast_decimalv3.groovy
@@ -0,0 +1,27 @@
+// 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_cast_with_decimalv3') {
+ sql """ set enable_nereids_planner=false; """
+ sql """ set enable_fold_constant_by_be=true; """
+
+ // string to decimalv3 with max value
+ qt_sql_string """ select CAST("12345678901234567890123456789012345678" AS
DECIMALV3(38, 0)); """
+
+ // largeint to decimalv3 with max value
+ qt_sql_largeint """select CAST(12345678901234567890123456789012345678 AS
DECIMALV3(38, 0));"""
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]