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

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit ef4f6de9aec3fddc8c4772817311ef142a002dc8
Author: HappenLee <[email protected]>
AuthorDate: Wed Dec 28 08:38:33 2022 +0800

    [Bug](decimalv3) select view of decimalv3 error (#15404)
---
 .../java/org/apache/doris/catalog/ScalarType.java  | 17 ++++++++++---
 regression-test/data/decimalv3/test_decimalv3.out  |  4 +++
 .../suites/decimalv3/test_decimalv3.groovy         | 29 ++++++++++++++++++++++
 3 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java
index 3cd713b507..4564af5094 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java
@@ -557,9 +557,6 @@ public class ScalarType extends Type {
                 }
                 break;
             case DECIMALV2:
-            case DECIMAL32:
-            case DECIMAL64:
-            case DECIMAL128:
                 if (Strings.isNullOrEmpty(precisionStr)) {
                     
stringBuilder.append("decimal").append("(").append(precision)
                             .append(", ").append(scale).append(")");
@@ -570,6 +567,20 @@ public class ScalarType extends Type {
                     
stringBuilder.append("decimal").append("(`").append(precisionStr).append("`)");
                 }
                 break;
+            case DECIMAL32:
+            case DECIMAL64:
+            case DECIMAL128:
+                String typeName = Config.enable_decimal_conversion ? "decimal" 
: "decimalv3";
+                if (Strings.isNullOrEmpty(precisionStr)) {
+                    
stringBuilder.append(typeName).append("(").append(precision)
+                        .append(", ").append(scale).append(")");
+                } else if (!Strings.isNullOrEmpty(precisionStr) && 
!Strings.isNullOrEmpty(scaleStr)) {
+                    
stringBuilder.append(typeName).append("(`").append(precisionStr)
+                        .append("`, `").append(scaleStr).append("`)");
+                } else {
+                    
stringBuilder.append(typeName).append("(`").append(precisionStr).append("`)");
+                }
+                break;
             case DATETIMEV2:
                 
stringBuilder.append("datetime").append("(").append(scale).append(")");
                 break;
diff --git a/regression-test/data/decimalv3/test_decimalv3.out 
b/regression-test/data/decimalv3/test_decimalv3.out
new file mode 100644
index 0000000000..1bb8b045c0
--- /dev/null
+++ b/regression-test/data/decimalv3/test_decimalv3.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !decimalv3 --
+100.000000000000000000
+
diff --git a/regression-test/suites/decimalv3/test_decimalv3.groovy 
b/regression-test/suites/decimalv3/test_decimalv3.groovy
new file mode 100644
index 0000000000..374e554b93
--- /dev/null
+++ b/regression-test/suites/decimalv3/test_decimalv3.groovy
@@ -0,0 +1,29 @@
+// 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_decimalv3") {
+    def db = "test_decimalv3_db"
+    sql "CREATE DATABASE IF NOT EXISTS ${db}"
+    sql "use ${db}"
+    sql "drop table if exists test5"
+       sql '''CREATE  TABLE test5 (   `a` decimalv3(38,18),   `b` 
decimalv3(38,18) ) ENGINE=OLAP DUPLICATE KEY(`a`) COMMENT 'OLAP' DISTRIBUTED BY 
HASH(`a`) BUCKETS 1 PROPERTIES ( "replication_allocation" = 
"tag.location.default: 1" ) '''
+       sql "insert into test5 values(50,2)"
+       sql "drop view if exists test5_v"
+       sql "create view test5_v (amout) as select cast(a*b as 
decimalv3(38,18)) from test5"
+
+       qt_decimalv3 "select * from test5_v"
+}


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

Reply via email to