diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java index 5996b29960..74f3035285 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java @@ -451,6 +451,12 @@ public class BinaryPredicate extends Predicate implements Writable { return Type.getAssignmentCompatibleType(getChild(0).getType(), getChild(1).getType(), false, SessionVariable.getEnableDecimal256()); } + + if (t1 == PrimitiveType.DECIMALV2 && t2 == PrimitiveType.DECIMALV2) { + return ScalarType.getAssignmentCompatibleDecimalV2Type((ScalarType) getChild(0).getType(), + (ScalarType) getChild(1).getType()); + } + if ((t1 == PrimitiveType.BIGINT && t2 == PrimitiveType.DECIMALV2) || (t2 == PrimitiveType.BIGINT && t1 == PrimitiveType.DECIMALV2) || (t1 == PrimitiveType.LARGEINT && t2 == PrimitiveType.DECIMALV2) diff --git a/regression-test/suites/delete_p0/test_delete.groovy b/regression-test/suites/delete_p0/test_delete.groovy index aff35b978c..2fef1c7be6 100644 --- a/regression-test/suites/delete_p0/test_delete.groovy +++ b/regression-test/suites/delete_p0/test_delete.groovy @@ -280,4 +280,24 @@ PROPERTIES """ sql "delete from dwd_pay partitions(p202310) where pay_time = '20231002';" + + sql """ + ADMIN SET FRONTEND CONFIG ('disable_decimalv2' = 'false'); + """ + + sql "drop table if exists test" + sql """ + CREATE TABLE `test` + ( + col_1 int, + col_2 decimalv2(10,3) + )ENGINE=OLAP + duplicate KEY(`col_1`) + COMMENT 'OLAP' + DISTRIBUTED BY HASH(`col_1`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + sql "DELETE FROM test WHERE col_2 = cast(123.45 as decimalv2(10,3));" }