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