You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/10/07 03:39:42 UTC

[doris] branch master updated: [fix](Nereids) ctas throw npe when default value is null (#25009)

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

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 70f5b0006fe [fix](Nereids) ctas throw npe when default value is null (#25009)
70f5b0006fe is described below

commit 70f5b0006feebfeac02d7e018b1e0fd2e6a780b4
Author: morrySnow <10...@users.noreply.github.com>
AuthorDate: Sat Oct 7 11:39:32 2023 +0800

    [fix](Nereids) ctas throw npe when default value is null (#25009)
---
 .../nereids/trees/plans/commands/info/ColumnDefinition.java  |  4 +++-
 .../data/nereids_p0/create_table/test_create_table.out       |  5 +++++
 regression-test/suites/nereids_p0/create_table/ddl/data.sql  |  7 ++++++-
 regression-test/suites/nereids_p0/create_table/ddl/table.sql | 12 ++++++++++++
 .../suites/nereids_p0/create_table/test_create_table.groovy  |  5 +++--
 5 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ColumnDefinition.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ColumnDefinition.java
index 02f36817f64..6d98f43c0fe 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ColumnDefinition.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ColumnDefinition.java
@@ -180,7 +180,9 @@ public class ColumnDefinition {
         } else if (type.isArrayType() && !defaultValue.isPresent()) {
             defaultValue = Optional.of(DefaultValue.ARRAY_EMPTY_DEFAULT_VALUE);
         }
-        if (defaultValue.isPresent() && type.toCatalogDataType().isScalarType()) {
+        if (defaultValue.isPresent()
+                && defaultValue.get().getValue() != null
+                && type.toCatalogDataType().isScalarType()) {
             try {
                 ColumnDef.validateDefaultValue(type.toCatalogDataType(),
                         defaultValue.get().getValue(), defaultValue.get().getDefaultValueExprDef());
diff --git a/regression-test/data/nereids_p0/create_table/test_create_table.out b/regression-test/data/nereids_p0/create_table/test_create_table.out
index a7404d06ba4..85f782d873f 100644
--- a/regression-test/data/nereids_p0/create_table/test_create_table.out
+++ b/regression-test/data/nereids_p0/create_table/test_create_table.out
@@ -66,3 +66,8 @@
 5	false	3	4	5	6	7
 13	true	4	5	6	7	8
 
+-- !sql --
+1	true	2	2023-02-13T00:00
+5	false	3	2023-02-13T00:00
+13	true	4	2023-02-13T00:00
+
diff --git a/regression-test/suites/nereids_p0/create_table/ddl/data.sql b/regression-test/suites/nereids_p0/create_table/ddl/data.sql
index c898e3bb87a..e30f7e8f17b 100644
--- a/regression-test/suites/nereids_p0/create_table/ddl/data.sql
+++ b/regression-test/suites/nereids_p0/create_table/ddl/data.sql
@@ -69,4 +69,9 @@ insert into test_list_partition values
 insert into test_rollup values
     (1, true, 2, 3, 4, 5, 6),
     (5, false, 3, 4, 5, 6, 7),
-    (13, true, 4, 5, 6, 7, 8);
\ No newline at end of file
+    (13, true, 4, 5, 6, 7, 8);
+
+insert into test_default_value values
+    (1, true, 2, '2023-02-13'),
+    (5, false, 3, '2023-02-13'),
+    (13, true, 4, '2023-02-13');
\ No newline at end of file
diff --git a/regression-test/suites/nereids_p0/create_table/ddl/table.sql b/regression-test/suites/nereids_p0/create_table/ddl/table.sql
index 4f97369f4be..bcac1168b73 100644
--- a/regression-test/suites/nereids_p0/create_table/ddl/table.sql
+++ b/regression-test/suites/nereids_p0/create_table/ddl/table.sql
@@ -240,6 +240,18 @@ distributed by random buckets auto
 rollup (
     r1 (id, ktint, kbool, ktint, kbint) duplicate key(id)
 )
+properties (
+   "replication_num"="1"
+);
+
+drop table if exists test_default_value;
+create table test_default_value (
+    `id` int not null,
+    `kbool` boolean not null,
+    `ktint` tinyint(4) default null,
+    `kdtmv2` datetimev2(0) default current_timestamp
+)
+distributed by hash(id)
 properties (
    "replication_num"="1"
 );
\ No newline at end of file
diff --git a/regression-test/suites/nereids_p0/create_table/test_create_table.groovy b/regression-test/suites/nereids_p0/create_table/test_create_table.groovy
index 76756db13ed..cb3590b6f01 100644
--- a/regression-test/suites/nereids_p0/create_table/test_create_table.groovy
+++ b/regression-test/suites/nereids_p0/create_table/test_create_table.groovy
@@ -36,8 +36,9 @@ suite("nereids_create_table") {
     }
     sql 'sync'
     def tables = ['test_all_types', 'test_agg_key', 'test_uni_key', 'test_uni_key_mow', 'test_not_null',
-                             'test_random', 'test_random_auto', 'test_less_than_partition', 'test_range_partition',
-                             'test_step_partition', 'test_date_step_partition', 'test_list_partition', 'test_rollup']
+                  'test_random', 'test_random_auto', 'test_less_than_partition', 'test_range_partition',
+                  'test_step_partition', 'test_date_step_partition', 'test_list_partition', 'test_rollup',
+                  'test_default_value']
     for (String t in tables) {
         qt_sql "select * from ${t} order by id"
     }


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