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 4df7069e59e branch-2.1: [fix](ip)fix default value for ip #45194
(#45392)
4df7069e59e is described below
commit 4df7069e59ef7d2b5c52e766058d0cf71e61fc9a
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Dec 16 14:38:12 2024 +0800
branch-2.1: [fix](ip)fix default value for ip #45194 (#45392)
Cherry-picked from #45194
Co-authored-by: amory <[email protected]>
---
.../java/org/apache/doris/analysis/ColumnDef.java | 6 +++++
.../org/apache/doris/analysis/IPv4Literal.java | 2 +-
.../org/apache/doris/analysis/IPv6Literal.java | 2 +-
.../data/datatype_p0/ip/test_ip_basic.out | 31 ++++++++++++++++++++++
.../suites/datatype_p0/ip/test_ip_basic.groovy | 26 ++++++++++++++++++
5 files changed, 65 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
index 3702f502778..160dbd4f868 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
@@ -545,6 +545,12 @@ public class ColumnDef {
case BOOLEAN:
new BoolLiteral(defaultValue);
break;
+ case IPV4:
+ new IPv4Literal(defaultValue);
+ break;
+ case IPV6:
+ new IPv6Literal(defaultValue);
+ break;
default:
throw new AnalysisException("Unsupported type: " + type);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
index b69bddf804c..11bf73569c1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
@@ -112,7 +112,7 @@ public class IPv4Literal extends LiteralExpr {
@Override
protected String toSqlImpl() {
- return getStringValue();
+ return "\"" + getStringValue() + "\"";
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
index 33ca95aad36..4b4f99cfd73 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
@@ -72,7 +72,7 @@ public class IPv6Literal extends LiteralExpr {
@Override
protected String toSqlImpl() {
- return getStringValue();
+ return "\"" + getStringValue() + "\"";
}
@Override
diff --git a/regression-test/data/datatype_p0/ip/test_ip_basic.out
b/regression-test/data/datatype_p0/ip/test_ip_basic.out
index b69f9708a1b..e1b85abe00c 100644
--- a/regression-test/data/datatype_p0/ip/test_ip_basic.out
+++ b/regression-test/data/datatype_p0/ip/test_ip_basic.out
@@ -373,3 +373,34 @@ ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 4
-- !sql --
1 false 127.0.0.1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+-- !sql --
+1 5be8:dde9:7f0b:d5a7:bd01:b3be:9c69:573b 0.0.0.1
+2 :: 127.0.0.1
+
+-- !sql --
+table_ip_default UNIQUE_KEYS col0 bigint bigint No true
\N true
+ col4 ipv6 ipv6 Yes false :: NONE true
+ col24 ipv4 ipv4 Yes false 127.0.0.1 NONE
true
+
+-- !sql --
+table_ip_default_like UNIQUE_KEYS col0 bigint bigint No true
\N true
+ col4 ipv6 ipv6 Yes false :: NONE true
+ col24 ipv4 ipv4 Yes false 127.0.0.1 NONE
true
+
+-- !sql --
+2
+
+-- !sql --
+1 5be8:dde9:7f0b:d5a7:bd01:b3be:9c69:573b 0.0.0.1
+2 :: 127.0.0.1
+
+-- !sql --
+0
+
+-- !sql --
+0
+
+-- !sql --
+1 5be8:dde9:7f0b:d5a7:bd01:b3be:9c69:573b 0.0.0.1 :: 127.0.0.1
+2 :: 127.0.0.1 :: 127.0.0.1
+
diff --git a/regression-test/suites/datatype_p0/ip/test_ip_basic.groovy
b/regression-test/suites/datatype_p0/ip/test_ip_basic.groovy
index 468b6f6f146..5a4ab2ca94a 100644
--- a/regression-test/suites/datatype_p0/ip/test_ip_basic.groovy
+++ b/regression-test/suites/datatype_p0/ip/test_ip_basic.groovy
@@ -160,4 +160,30 @@ suite("test_ip_basic") {
qt_sql """ select * from table_ip where col0 = 1"""
sql """ Update table_ip set col25 =
'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' where col0 = 1 """
qt_sql """ select * from table_ip where col0 = 1"""
+
+ // test ip with default value
+ sql """ DROP TABLE IF EXISTS table_ip_default """
+ sql """ CREATE TABLE IF NOT EXISTS `table_ip_default` (`col0` bigint NOT
NULL, `col4` ipv6 NULL DEFAULT "::", `col24` ipv4 NULL DEFAULT "127.0.0.1")
ENGINE=OLAP UNIQUE KEY(`col0`) DISTRIBUTED BY HASH(`col0`) BUCKETS 4 PROPERTIES
("replication_allocation" = "tag.location.default: 1") """
+ sql """ insert into table_ip_default values (1,
"5be8:dde9:7f0b:d5a7:bd01:b3be:9c69:573b", "0.0.0.1") """
+ sql """ insert into table_ip_default(col0) values (2); """
+ qt_sql """ select * from table_ip_default order by col0"""
+ // add cases for default value to make sure in all cases, the default
value is not lost.
+ // show create table
+ // desc table
+ // create table like
+ // insert into table
+ // alter new ip column with default value
+ def result = sql """ show create table table_ip_default """
+ log.info("show result : ${result}")
+ assertTrue(result.toString().containsIgnoreCase("`col4` ipv6 NULL DEFAULT
\"::\""))
+ assertTrue(result.toString().containsIgnoreCase("`col24` ipv4 NULL DEFAULT
\"127.0.0.1\""))
+ qt_sql """ desc table_ip_default all"""
+ sql """ DROP TABLE IF EXISTS table_ip_default_like """
+ sql """ create table table_ip_default_like like table_ip_default """
+ qt_sql """ desc table_ip_default_like all"""
+ qt_sql """ insert into table_ip_default_like select * from
table_ip_default """
+ qt_sql """ select * from table_ip_default_like order by col0 """
+ qt_sql """ alter table table_ip_default_like add column col25 ipv6 NULL
DEFAULT "::" """
+ qt_sql """ alter table table_ip_default_like add column col26 ipv4 NULL
DEFAULT "127.0.0.1" """
+ qt_sql """ select * from table_ip_default_like order by col0 """
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]