Skip to content

Commit

Permalink
fix default value for ip
Browse files Browse the repository at this point in the history
  • Loading branch information
amorynan committed Dec 9, 2024
1 parent 447a3e9 commit 9d1d66d
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -651,6 +651,12 @@ public static void validateDefaultValue(Type type, String defaultValue, DefaultV
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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,15 @@ private static long parseIPv4toLong(String ipv4) {

private static String parseLongToIPv4(long ipv4) {
StringBuilder sb = new StringBuilder();
sb.append("\"");
for (int i = 3; i >= 0; i--) {
short octet = (short) ((ipv4 >> (i * 8)) & 0xFF);
sb.append(octet);
if (i > 0) {
sb.append(".");
}
}
sb.append("\"");
return sb.toString();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public int compareLiteral(LiteralExpr expr) {

@Override
public String getStringValue() {
return this.value;
return "\"" + this.value + "\"";
}

@Override
Expand Down
4 changes: 4 additions & 0 deletions regression-test/data/datatype_p0/ip/test_ip_basic.out
Original file line number Diff line number Diff line change
Expand Up @@ -373,3 +373,7 @@ 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

7 changes: 7 additions & 0 deletions regression-test/suites/datatype_p0/ip/test_ip_basic.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -160,4 +160,11 @@ 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""";
}

0 comments on commit 9d1d66d

Please sign in to comment.