Cherry-picked from #45194 Co-authored-by: amory <wangqiannan@selectdb.com>
This commit is contained in:
committed by
GitHub
parent
d13241115d
commit
4df7069e59
@ -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);
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ public class IPv4Literal extends LiteralExpr {
|
||||
|
||||
@Override
|
||||
protected String toSqlImpl() {
|
||||
return getStringValue();
|
||||
return "\"" + getStringValue() + "\"";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -72,7 +72,7 @@ public class IPv6Literal extends LiteralExpr {
|
||||
|
||||
@Override
|
||||
protected String toSqlImpl() {
|
||||
return getStringValue();
|
||||
return "\"" + getStringValue() + "\"";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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 """
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user