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

starocean999 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 294e7fee9b2 [fix](planner) NullLiteral should always having a correct 
Type and set to be analyzed (#43372)
294e7fee9b2 is described below

commit 294e7fee9b2bae6b62f114b78f84769cd441fdf8
Author: starocean999 <li...@selectdb.com>
AuthorDate: Wed Nov 13 17:49:28 2024 +0800

    [fix](planner) NullLiteral should always having a correct Type and set to 
be analyzed (#43372)
    
    pick from master https://github.com/apache/doris/pull/43370
---
 .../org/apache/doris/analysis/NullLiteral.java     |  1 +
 .../org/apache/doris/analysis/StringLiteral.java   |  2 +-
 regression-test/data/insert_p0/test_insert_nan.out |  4 +++
 .../suites/insert_p0/test_insert_nan.groovy        | 34 ++++++++++++++++++++++
 4 files changed, 40 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
index 7d0e38c5b60..d4c52dd71aa 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
@@ -52,6 +52,7 @@ public class NullLiteral extends LiteralExpr {
     public static NullLiteral create(Type type) {
         NullLiteral l = new NullLiteral();
         l.type = type;
+        l.analysisDone();
         return l;
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
index 542c668459a..a81e569f3ce 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
@@ -243,7 +243,7 @@ public class StringLiteral extends LiteralExpr {
                         return new FloatLiteral(Double.valueOf(value), 
targetType);
                     } catch (NumberFormatException e) {
                         // consistent with CastExpr's getResultValue() method
-                        return new NullLiteral();
+                        return NullLiteral.create(targetType);
                     }
                 case DECIMALV2:
                 case DECIMAL32:
diff --git a/regression-test/data/insert_p0/test_insert_nan.out 
b/regression-test/data/insert_p0/test_insert_nan.out
new file mode 100644
index 00000000000..f0d5ba9c2d6
--- /dev/null
+++ b/regression-test/data/insert_p0/test_insert_nan.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !select --
+1      \N
+
diff --git a/regression-test/suites/insert_p0/test_insert_nan.groovy 
b/regression-test/suites/insert_p0/test_insert_nan.groovy
new file mode 100644
index 00000000000..8650c5d0cf1
--- /dev/null
+++ b/regression-test/suites/insert_p0/test_insert_nan.groovy
@@ -0,0 +1,34 @@
+// 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_insert_nan") {
+    sql """drop table if exists `nan_table`;"""
+
+    sql """
+            CREATE TABLE `nan_table` (
+            `id` int NOT NULL ,
+            `val` double,
+            ) ENGINE=OLAP
+            UNIQUE KEY(`id`)
+            DISTRIBUTED BY HASH(`id`) BUCKETS 3
+            PROPERTIES("replication_num" = "1");
+    """
+
+    sql """insert into nan_table values ('1', 'nan');"""
+    
+    qt_select """select * from nan_table;"""
+}


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

Reply via email to