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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 5bc1618c2df branch-2.1: [fix](Nereids) could not work well when check 
precision for null literal #50815 (#50899)
5bc1618c2df is described below

commit 5bc1618c2dff30d75fbec91397a69f3be2199c29
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu May 22 14:38:39 2025 +0800

    branch-2.1: [fix](Nereids) could not work well when check precision for 
null literal #50815 (#50899)
    
    Cherry-picked from #50815
    
    Co-authored-by: morrySnow <zhangwen...@selectdb.com>
---
 .../expressions/functions/SearchSignature.java     |  4 +-
 .../decimal_percision_compute.groovy               | 48 ++++++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignature.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignature.java
index 5fa426a99a2..bf5fd042307 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignature.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignature.java
@@ -152,7 +152,9 @@ public class SearchSignature {
                 finalType = 
DecimalV3Type.forType(arguments.get(i).getDataType());
             } else {
                 Expression arg = arguments.get(i);
-                if (arg.isLiteral() && arg.getDataType().isIntegralType()) {
+                if (arg.isNullLiteral()) {
+                    // do nothing
+                } else if (arg.isLiteral() && 
arg.getDataType().isIntegralType()) {
                     // create decimalV3 with minimum scale enough to hold the 
integral literal
                     finalType = DecimalV3Type.createDecimalV3Type(new 
BigDecimal(((Literal) arg).getStringValue()));
                 } else {
diff --git 
a/regression-test/suites/nereids_syntax_p0/decimal_percision_compute.groovy 
b/regression-test/suites/nereids_syntax_p0/decimal_percision_compute.groovy
new file mode 100644
index 00000000000..0a3603012d2
--- /dev/null
+++ b/regression-test/suites/nereids_syntax_p0/decimal_percision_compute.groovy
@@ -0,0 +1,48 @@
+// 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("decimal_precision") {
+
+    sql """
+        CREATE TABLE IF NOT EXISTS test_null_literal_compute (
+            id INT,
+            name VARCHAR(50),
+            age INT,
+            score DECIMAL(5,2),
+            create_time DATETIME,
+            is_active BOOLEAN
+        ) ENGINE=OLAP
+        DUPLICATE KEY(id)
+        DISTRIBUTED BY HASH(id) BUCKETS 10
+        PROPERTIES (
+            "replication_num" = "1"
+        );
+    """
+
+    sql """
+        INSERT INTO test_null_literal_compute VALUES 
+        (1, 'Alice', 25, 89.5, '2023-01-01 10:00:00', true),
+        (2, 'Bob', 30, 76.2, '2023-01-02 11:00:00', true),
+        (3, 'Charlie', 22, 92.0, '2023-01-03 12:00:00', false),
+        (4, 'David', 28, 85.7, '2023-01-04 13:00:00', true),
+        (5, 'Eve', 35, 67.8, '2023-01-05 14:00:00', false);
+    """
+
+    sql """
+        SELECT name, age, LAG(age, 1) OVER (ORDER BY id) AS prev_age FROM 
test_null_literal_compute;
+    """
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to