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