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]

Reply via email to