[Bug](decimalv3) select view of decimalv3 error (#15404)

This commit is contained in:
HappenLee
2022-12-28 08:38:33 +08:00
committed by GitHub
parent 5ac7b09765
commit 22b31e516c
3 changed files with 47 additions and 3 deletions

View File

@ -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;

View File

@ -0,0 +1,4 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !decimalv3 --
100.000000000000000000

View File

@ -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"
}