This is an automated email from the ASF dual-hosted git repository.

lihaopeng 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 a9dd715991a [improvement](function) switch inet(6)_aton alias origin 
function (#30196)
a9dd715991a is described below

commit a9dd715991ab008826c8cfc2039493b00ee5f8c7
Author: Chester <[email protected]>
AuthorDate: Mon Jan 22 11:33:04 2024 +0800

    [improvement](function) switch inet(6)_aton alias origin function (#30196)
---
 be/src/vec/functions/function_ip.cpp               |  4 +--
 .../sql-functions/ip-functions/inet-aton.md        | 20 ++++++++----
 .../sql-functions/ip-functions/inet6-aton.md       | 30 ++++++++++-------
 .../sql-functions/ip-functions/inet-aton.md        | 19 +++++++----
 .../sql-functions/ip-functions/inet6-aton.md       | 29 ++++++++++-------
 .../doris/catalog/BuiltinScalarFunctions.java      |  8 ++---
 .../org/apache/doris/rewrite/FunctionAlias.java    |  4 +--
 gensrc/script/doris_builtins_functions.py          | 16 ++++-----
 .../data/nereids_function_p0/ip_functions.out      | 38 +++++++++++++++++++++-
 .../ip_functions/test_ip_functions.out             | 38 +++++++++++++++++++++-
 .../suites/nereids_function_p0/ip_functions.groovy | 12 +++++++
 .../ip_functions/test_ip_functions.groovy          | 12 +++++++
 12 files changed, 174 insertions(+), 56 deletions(-)

diff --git a/be/src/vec/functions/function_ip.cpp 
b/be/src/vec/functions/function_ip.cpp
index 140100d22b3..349e095b4a2 100644
--- a/be/src/vec/functions/function_ip.cpp
+++ b/be/src/vec/functions/function_ip.cpp
@@ -25,7 +25,7 @@ void register_function_ip(SimpleFunctionFactory& factory) {
     
factory.register_function<FunctionIPv4StringToNum<IPStringToNumExceptionMode::Throw>>();
     
factory.register_function<FunctionIPv4StringToNum<IPStringToNumExceptionMode::Default>>();
     
factory.register_function<FunctionIPv4StringToNum<IPStringToNumExceptionMode::Null>>();
-    
factory.register_alias(FunctionIPv4StringToNum<IPStringToNumExceptionMode::Throw>::name,
+    
factory.register_alias(FunctionIPv4StringToNum<IPStringToNumExceptionMode::Null>::name,
                            "inet_aton");
 
     factory.register_function<FunctionIPv6NumToString>();
@@ -33,7 +33,7 @@ void register_function_ip(SimpleFunctionFactory& factory) {
     
factory.register_function<FunctionIPv6StringToNum<IPStringToNumExceptionMode::Throw>>();
     
factory.register_function<FunctionIPv6StringToNum<IPStringToNumExceptionMode::Default>>();
     
factory.register_function<FunctionIPv6StringToNum<IPStringToNumExceptionMode::Null>>();
-    
factory.register_alias(FunctionIPv6StringToNum<IPStringToNumExceptionMode::Throw>::name,
+    
factory.register_alias(FunctionIPv6StringToNum<IPStringToNumExceptionMode::Null>::name,
                            "inet6_aton");
 
     factory.register_function<FunctionIsIPv4Compat>();
diff --git a/docs/en/docs/sql-manual/sql-functions/ip-functions/inet-aton.md 
b/docs/en/docs/sql-manual/sql-functions/ip-functions/inet-aton.md
index 1120a4852f4..56f9308f347 100644
--- a/docs/en/docs/sql-manual/sql-functions/ip-functions/inet-aton.md
+++ b/docs/en/docs/sql-manual/sql-functions/ip-functions/inet-aton.md
@@ -40,20 +40,26 @@ Takes a string containing an IPv4 address in the format 
A.B.C.D (dot-separated n
 
 ### notice
 
-`will return an error if the input string is not a valid IPv4 address`
+`It is the alias of ipv4_string_to_num_or_null. 
+It will return NULL if the input string is not a valid IP address or NULL, 
which is the same with MySQL`
 
 ### example
 ```
 mysql> select inet_aton('192.168.0.1'); 
-+--------------------------------+ 
-| inet_aton('192.168.0.1') | 
-+--------------------------------+ 
-| 3232235521                     | 
-+--------------------------------+ 
++-------------------------------------------+ 
+| ipv4_string_to_num_or_null('192.168.0.1') | 
++-------------------------------------------+ 
+| 3232235521                                | 
++-------------------------------------------+ 
 1 row in set (0.01 sec)
 
 mysql> SELECT inet_aton('192.168');
-ERROR 1105 (HY000): errCode = 2, detailMessage = 
(172.17.0.2)[CANCELLED][INVALID_ARGUMENT][E33] Invalid IPv4 value
++---------------------------------------+ 
+| ipv4_string_to_num_or_null('192.168') | 
++---------------------------------------+ 
+| NULL                                  | 
++---------------------------------------+ 
+1 row in set (0.01 sec)
 ```
 
 ### keywords
diff --git a/docs/en/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md 
b/docs/en/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md
index 69bf4a44861..25f60b2cb8c 100644
--- a/docs/en/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md
+++ b/docs/en/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md
@@ -41,28 +41,34 @@ If the input string contains a valid IPv4 address, returns 
its IPv6 equivalent.
 
 ### notice
 
-`will return an error if the input string is not a valid IP address`
+`It is the alias of ipv6_string_to_num_or_null. 
+It will return NULL if the input string is not a valid IP address or NULL, 
which is the same with MySQL`
 
 ### example
 ```
 mysql> select hex(inet6_aton('1111::ffff'));
-+----------------------------------+
-| hex(inet6_aton('1111::ffff'))    |
-+----------------------------------+
-| 1111000000000000000000000000FFFF |
-+----------------------------------+
++-----------------------------------------------+
+| hex(ipv6_string_to_num_or_null('1111::ffff')) |
++-----------------------------------------------+
+| 1111000000000000000000000000FFFF              |
++-----------------------------------------------+
 1 row in set (0.02 sec)
 
 mysql> select hex(inet6_aton('192.168.0.1'));
-+----------------------------------+
-| hex(inet6_aton('192.168.0.1'))   |
-+----------------------------------+
-| 00000000000000000000FFFFC0A80001 |
-+----------------------------------+
++------------------------------------------------+
+| hex(ipv6_string_to_num_or_null('192.168.0.1')) |
++------------------------------------------------+
+| 00000000000000000000FFFFC0A80001               |
++------------------------------------------------+
 1 row in set (0.02 sec)
 
 mysql> select hex(inet6_aton('notaaddress'));
-ERROR 1105 (HY000): errCode = 2, detailMessage = (172.17.0.2)[CANCELLED][E33] 
Invalid IPv6 value
++--------------------------------------------------+
+| hex(ipv6_string_to_num_or_null('notaaddress'))   |
++--------------------------------------------------+
+| NULL                                             |
++--------------------------------------------------+
+1 row in set (0.02 sec)
 ```
 
 ### keywords
diff --git a/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet-aton.md 
b/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet-aton.md
index 2260dfbc49d..50a31f17994 100644
--- a/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet-aton.md
+++ b/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet-aton.md
@@ -40,20 +40,25 @@ inet_aton
 
 ### notice
 
-`如果输入字符串不是有效的 IPv4 地址,将返回错误`
+`该函数为ipv4_string_to_num_or_null的别称。如果输入字符串不是有效的 IPv4 地址或者NULL,将返回NULL,和MySQL一样`
 
 ### example
 ```
 mysql> select inet_aton('192.168.0.1'); 
-+--------------------------------+ 
-| inet_aton('192.168.0.1') | 
-+--------------------------------+ 
-| 3232235521                     | 
-+--------------------------------+ 
++-------------------------------------------+ 
+| ipv4_string_to_num_or_null('192.168.0.1') | 
++-------------------------------------------+ 
+| 3232235521                                | 
++-------------------------------------------+ 
 1 row in set (0.01 sec)
 
 mysql> SELECT inet_aton('192.168');
-ERROR 1105 (HY000): errCode = 2, detailMessage = 
(172.17.0.2)[CANCELLED][INVALID_ARGUMENT][E33] Invalid IPv4 value
++---------------------------------------+ 
+| ipv4_string_to_num_or_null('192.168') | 
++---------------------------------------+ 
+| NULL                                  | 
++---------------------------------------+ 
+1 row in set (0.01 sec)
 ```
 
 ### keywords
diff --git 
a/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md 
b/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md
index cc2bd6f04d2..53eac5cb900 100644
--- a/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md
+++ b/docs/zh-CN/docs/sql-manual/sql-functions/ip-functions/inet6-aton.md
@@ -41,28 +41,33 @@ IPv6NumToString 的反向函数,它接受一个 IP 地址字符串并返回二
 
 ### notice
 
-`如果输入非法的IP地址,会抛出异常`
+`该函数为ipv6_string_to_num_or_null的别称。如果输入字符串不是有效的 IPv4 地址或者NULL,将返回NULL,和MySQL一样`
 
 ### example
 ```
 mysql> select hex(inet6_aton('1111::ffff'));
-+----------------------------------+
-| hex(inet6_aton('1111::ffff'))    |
-+----------------------------------+
-| 1111000000000000000000000000FFFF |
-+----------------------------------+
++-----------------------------------------------+
+| hex(ipv6_string_to_num_or_null('1111::ffff')) |
++-----------------------------------------------+
+| 1111000000000000000000000000FFFF              |
++-----------------------------------------------+
 1 row in set (0.02 sec)
 
 mysql> select hex(inet6_aton('192.168.0.1'));
-+----------------------------------+
-| hex(inet6_aton('192.168.0.1'))   |
-+----------------------------------+
-| 00000000000000000000FFFFC0A80001 |
-+----------------------------------+
++------------------------------------------------+
+| hex(ipv6_string_to_num_or_null('192.168.0.1')) |
++------------------------------------------------+
+| 00000000000000000000FFFFC0A80001               |
++------------------------------------------------+
 1 row in set (0.02 sec)
 
 mysql> select hex(inet6_aton('notaaddress'));
-ERROR 1105 (HY000): errCode = 2, detailMessage = (172.17.0.2)[CANCELLED][E33] 
Invalid IPv6 value
++--------------------------------------------------+
+| hex(ipv6_string_to_num_or_null('notaaddress'))   |
++--------------------------------------------------+
+| NULL                                             |
++--------------------------------------------------+
+1 row in set (0.02 sec)
 ```
 
 ### keywords
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
index 68da4df08ab..fcc2a351bf0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
@@ -604,13 +604,13 @@ public class BuiltinScalarFunctions implements 
FunctionHelper {
             scalar(InnerProduct.class, "inner_product"),
             scalar(Instr.class, "instr"),
             scalar(Ipv4NumToString.class, "ipv4_num_to_string", "inet_ntoa"),
-            scalar(Ipv4StringToNum.class, "ipv4_string_to_num", "inet_aton"),
+            scalar(Ipv4StringToNum.class, "ipv4_string_to_num"),
             scalar(Ipv4StringToNumOrDefault.class, 
"ipv4_string_to_num_or_default"),
-            scalar(Ipv4StringToNumOrNull.class, "ipv4_string_to_num_or_null"),
+            scalar(Ipv4StringToNumOrNull.class, "ipv4_string_to_num_or_null", 
"inet_aton"),
             scalar(Ipv6NumToString.class, "ipv6_num_to_string", "inet6_ntoa"),
-            scalar(Ipv6StringToNum.class, "ipv6_string_to_num", "inet6_aton"),
+            scalar(Ipv6StringToNum.class, "ipv6_string_to_num"),
             scalar(Ipv6StringToNumOrDefault.class, 
"ipv6_string_to_num_or_default"),
-            scalar(Ipv6StringToNumOrNull.class, "ipv6_string_to_num_or_null"),
+            scalar(Ipv6StringToNumOrNull.class, "ipv6_string_to_num_or_null", 
"inet6_aton"),
             scalar(IsIpv4Compat.class, "is_ipv4_compat"),
             scalar(IsIpv4Mapped.class, "is_ipv4_mapped"),
             scalar(IsIpv4String.class, "is_ipv4_string"),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/rewrite/FunctionAlias.java 
b/fe/fe-core/src/main/java/org/apache/doris/rewrite/FunctionAlias.java
index 9e9c6dc9f75..b32cc9919b1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/rewrite/FunctionAlias.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/rewrite/FunctionAlias.java
@@ -38,8 +38,8 @@ public final class FunctionAlias implements ExprRewriteRule {
             .put("char_length", "character_length").put("curdate", 
"current_date").put("curtime", "current_time")
             .put("schema", "database").put("day", 
"dayofmonth").put("date_add", "days_add").put("adddate", "days_add")
             .put("date_sub", "days_sub").put("subdate", 
"days_sub").put("inet_ntoa", "ipv4_num_to_string")
-            .put("inet_aton", "ipv4_string_to_num").put("inet6_ntoa", 
"ipv6_num_to_string")
-            .put("inet6_aton", "ipv6_string_to_num").put("lcase", 
"lower").put("add_months", "months_add")
+            .put("inet_aton", "ipv4_string_to_num_or_null").put("inet6_ntoa", 
"ipv6_num_to_string")
+            .put("inet6_aton", "ipv6_string_to_num_or_null").put("lcase", 
"lower").put("add_months", "months_add")
             .put("current_timestamp", "now").put("localtime", 
"now").put("localtimestamp", "now").put("ifnull", "nvl")
             .put("rand", "random").put("sha", "sha1").put("substr", 
"substring").put("ucase", "upper").build();
 
diff --git a/gensrc/script/doris_builtins_functions.py 
b/gensrc/script/doris_builtins_functions.py
index 6a6ff96e83d..183b38bdfda 100644
--- a/gensrc/script/doris_builtins_functions.py
+++ b/gensrc/script/doris_builtins_functions.py
@@ -1998,22 +1998,22 @@ visible_functions = {
         [['ipv4_num_to_string','inet_ntoa'], 'VARCHAR', ['SMALLINT'], 
'ALWAYS_NULLABLE'],
         [['ipv4_num_to_string','inet_ntoa'], 'VARCHAR', ['INT'], 
'ALWAYS_NULLABLE'],
         [['ipv4_num_to_string','inet_ntoa'], 'VARCHAR', ['BIGINT'], 
'ALWAYS_NULLABLE'],
-        [['ipv4_string_to_num','inet_aton'], 'BIGINT', ['VARCHAR'], 
'ALWAYS_NOT_NULLABLE'],
-        [['ipv4_string_to_num','inet_aton'], 'BIGINT', ['STRING'], 
'ALWAYS_NOT_NULLABLE'],
+        [['ipv4_string_to_num'], 'BIGINT', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'],
+        [['ipv4_string_to_num'], 'BIGINT', ['STRING'], 'ALWAYS_NOT_NULLABLE'],
         [['ipv4_string_to_num_or_default'], 'BIGINT', ['VARCHAR'], 
'ALWAYS_NOT_NULLABLE'],
         [['ipv4_string_to_num_or_default'], 'BIGINT', ['STRING'], 
'ALWAYS_NOT_NULLABLE'],
-        [['ipv4_string_to_num_or_null'], 'BIGINT', ['VARCHAR'], 
'ALWAYS_NULLABLE'],
-        [['ipv4_string_to_num_or_null'], 'BIGINT', ['STRING'], 
'ALWAYS_NULLABLE'],  
+        [['ipv4_string_to_num_or_null','inet_aton'], 'BIGINT', ['VARCHAR'], 
'ALWAYS_NULLABLE'],
+        [['ipv4_string_to_num_or_null','inet_aton'], 'BIGINT', ['STRING'], 
'ALWAYS_NULLABLE'],  
         [['ipv6_num_to_string','inet6_ntoa'], 'VARCHAR', ['VARCHAR'], 
'ALWAYS_NULLABLE'],     
         [['ipv6_num_to_string','inet6_ntoa'], 'STRING', ['STRING'], 
'ALWAYS_NULLABLE'],
         [['ipv6_num_to_string','inet6_ntoa'], 'VARCHAR', ['IPV6'], 
'ALWAYS_NULLABLE'],
         [['ipv6_num_to_string','inet6_ntoa'], 'STRING', ['IPV6'], 
'ALWAYS_NULLABLE'],
-        [['ipv6_string_to_num','inet6_aton'], 'VARCHAR', ['VARCHAR'], 
'ALWAYS_NOT_NULLABLE'],
-        [['ipv6_string_to_num','inet6_aton'], 'STRING', ['STRING'], 
'ALWAYS_NOT_NULLABLE'],
+        [['ipv6_string_to_num'], 'VARCHAR', ['VARCHAR'], 
'ALWAYS_NOT_NULLABLE'],
+        [['ipv6_string_to_num'], 'STRING', ['STRING'], 'ALWAYS_NOT_NULLABLE'],
         [['ipv6_string_to_num_or_default'], 'VARCHAR', ['VARCHAR'], 
'ALWAYS_NOT_NULLABLE'],
         [['ipv6_string_to_num_or_default'], 'STRING', ['STRING'], 
'ALWAYS_NOT_NULLABLE'],
-        [['ipv6_string_to_num_or_null'], 'VARCHAR', ['VARCHAR'], 
'ALWAYS_NULLABLE'],
-        [['ipv6_string_to_num_or_null'], 'STRING', ['STRING'], 
'ALWAYS_NULLABLE'],  
+        [['ipv6_string_to_num_or_null','inet6_aton'], 'VARCHAR', ['VARCHAR'], 
'ALWAYS_NULLABLE'],
+        [['ipv6_string_to_num_or_null','inet6_aton'], 'STRING', ['STRING'], 
'ALWAYS_NULLABLE'],  
         [['is_ipv4_compat'], 'BOOLEAN', ['VARCHAR'], ''],
         [['is_ipv4_compat'], 'BOOLEAN', ['STRING'], ''],
         [['is_ipv4_mapped'], 'BOOLEAN', ['VARCHAR'], ''],
diff --git a/regression-test/data/nereids_function_p0/ip_functions.out 
b/regression-test/data/nereids_function_p0/ip_functions.out
index 914b5ccd683..a89ca34fe60 100644
--- a/regression-test/data/nereids_function_p0/ip_functions.out
+++ b/regression-test/data/nereids_function_p0/ip_functions.out
@@ -35,6 +35,15 @@
 -- !ip12 --
 3232235521
 
+-- !ip12_1 --
+\N
+
+-- !ip12_2 --
+\N
+
+-- !ip12_3 --
+\N
+
 -- !ip13 --
 \N
 
@@ -152,6 +161,15 @@ AAAAAAAAFFFFFFFFFFFFFFFFAAAAAAAA
 -- !ip51 --
 2A0206B8000000000000000000000011
 
+-- !ip51_1 --
+\N
+
+-- !ip51_2 --
+\N
+
+-- !ip51_3 --
+\N
+
 -- !ip52 --
 true
 
@@ -182,6 +200,15 @@ false
 -- !ip61 --
 true
 
+-- !ip61_1 --
+\N
+
+-- !ip61_2 --
+\N
+
+-- !ip61_3 --
+\N
+
 -- !ip62 --
 false
 
@@ -192,4 +219,13 @@ true
 false
 
 -- !ip65 --
-true
\ No newline at end of file
+true
+
+-- !ip65_1 --
+\N
+
+-- !ip65_2 --
+\N
+
+-- !ip65_3 --
+\N
\ No newline at end of file
diff --git 
a/regression-test/data/query_p0/sql_functions/ip_functions/test_ip_functions.out
 
b/regression-test/data/query_p0/sql_functions/ip_functions/test_ip_functions.out
index 1837acc4bab..569dc78a1e0 100644
--- 
a/regression-test/data/query_p0/sql_functions/ip_functions/test_ip_functions.out
+++ 
b/regression-test/data/query_p0/sql_functions/ip_functions/test_ip_functions.out
@@ -25,6 +25,15 @@
 -- !sql --
 \N
 
+-- !sql --
+\N
+
+-- !sql --
+\N
+
+-- !sql --
+\N
+
 -- !sql --
 2a02:6b8::11
 
@@ -139,6 +148,15 @@ AAAAAAAAFFFFFFFFFFFFFFFFAAAAAAAA
 -- !sql --
 2A0206B8000000000000000000000011
 
+-- !sql --
+\N
+
+-- !sql --
+\N
+
+-- !sql --
+\N
+
 -- !sql --
 true
 
@@ -157,6 +175,15 @@ false
 -- !sql --
 true
 
+-- !sql --
+\N
+
+-- !sql --
+\N
+
+-- !sql --
+\N
+
 -- !sql --
 false
 
@@ -167,4 +194,13 @@ true
 false
 
 -- !sql --
-true
\ No newline at end of file
+true
+
+-- !sql --
+\N
+
+-- !sql --
+\N
+
+-- !sql --
+\N
\ No newline at end of file
diff --git a/regression-test/suites/nereids_function_p0/ip_functions.groovy 
b/regression-test/suites/nereids_function_p0/ip_functions.groovy
index b5d4d177e89..98a2574e62f 100644
--- a/regression-test/suites/nereids_function_p0/ip_functions.groovy
+++ b/regression-test/suites/nereids_function_p0/ip_functions.groovy
@@ -31,6 +31,9 @@ suite("ip_functions") {
     qt_ip10 "SELECT ipv4_string_to_num_or_null('');"
     qt_ip11 "SELECT ipv4_string_to_num_or_default('');"
     qt_ip12 "SELECT inet_aton('192.168.0.1');"
+    qt_ip12_1 "SELECT inet_aton('192.168');"
+    qt_ip12_2 "SELECT inet_aton('');"
+    qt_ip12_3 "SELECT inet_aton(NULL);"
 
     qt_ip13 "SELECT ipv6_num_to_string(unhex('0A0005091'));"
     qt_ip14 "SELECT 
ipv6_num_to_string(unhex('2A0206B8000000000000000000000011'));"
@@ -72,6 +75,9 @@ suite("ip_functions") {
     qt_ip49 "SELECT 
hex(ipv6_string_to_num_or_null('aaaa:aaaa:ffff:ffff:ffff:ffff:aaaa:aaaa'));"
     qt_ip50 "SELECT hex(inet6_aton('192.168.0.1'));"
     qt_ip51 "SELECT hex(inet6_aton('2a02:6b8::11'));"
+    qt_ip51_1 "SELECT hex(inet6_aton(''));"
+    qt_ip51_2 "SELECT hex(inet6_aton(NULL));"
+    qt_ip51_3 "SELECT hex(inet6_aton('KK'));"
 
     qt_ip52 "SELECT is_ipv4_string('255.255.255.255');"
     qt_ip53 "SELECT is_ipv4_string('255.255.255.256');"
@@ -84,9 +90,15 @@ suite("ip_functions") {
     qt_ip59 "SELECT is_ipv4_compat(inet6_aton('::c0a8:0001'));"
     qt_ip60 "SELECT is_ipv4_compat(inet6_aton('::0.0.0.0'));"
     qt_ip61 "SELECT is_ipv4_compat(inet6_aton('::255.255.255.255'));"
+    qt_ip61_1 "SELECT is_ipv4_compat(inet6_aton(''));"
+    qt_ip61_2 "SELECT is_ipv4_compat(inet6_aton(NULL));"
+    qt_ip61_3 "SELECT is_ipv4_compat(inet6_aton('KK'));"
 
     qt_ip62 "SELECT is_ipv4_mapped(inet6_aton('::10.0.5.9'));"
     qt_ip63 "SELECT is_ipv4_mapped(inet6_aton('::ffff:10.0.5.9'));"
     qt_ip64 "SELECT is_ipv4_mapped(inet6_aton('::'));"
     qt_ip65 "SELECT is_ipv4_mapped(inet6_aton('::ffff:c0a8:0001'));"
+    qt_ip65_1 "SELECT is_ipv4_mapped(inet6_aton(''));"
+    qt_ip65_2 "SELECT is_ipv4_mapped(inet6_aton(NULL));"
+    qt_ip65_3 "SELECT is_ipv4_mapped(inet6_aton('KK'));"
 }
\ No newline at end of file
diff --git 
a/regression-test/suites/query_p0/sql_functions/ip_functions/test_ip_functions.groovy
 
b/regression-test/suites/query_p0/sql_functions/ip_functions/test_ip_functions.groovy
index c5ff6d36a13..5cbf59ac36c 100644
--- 
a/regression-test/suites/query_p0/sql_functions/ip_functions/test_ip_functions.groovy
+++ 
b/regression-test/suites/query_p0/sql_functions/ip_functions/test_ip_functions.groovy
@@ -26,6 +26,9 @@ suite("test_ip_functions", "arrow_flight_sql") {
     qt_sql "SELECT ipv4_string_to_num_or_null('');"
     qt_sql "SELECT ipv4_string_to_num_or_default('');"
     qt_sql "SELECT inet_aton('192.168.0.1');"
+    qt_sql "SELECT inet_aton('192.168');"
+    qt_sql "SELECT inet_aton('');"
+    qt_sql "SELECT inet_aton(NULL);"
 
     qt_sql "SELECT ipv6_num_to_string(unhex('0A0005091'));"
     qt_sql "SELECT 
ipv6_num_to_string(unhex('2A0206B8000000000000000000000011'));"
@@ -67,6 +70,9 @@ suite("test_ip_functions", "arrow_flight_sql") {
     qt_sql "SELECT 
hex(ipv6_string_to_num_or_null('aaaa:aaaa:ffff:ffff:ffff:ffff:aaaa:aaaa'));"
     qt_sql "SELECT hex(inet6_aton('192.168.0.1'));"
     qt_sql "SELECT hex(inet6_aton('2a02:6b8::11'));"
+    qt_sql "SELECT hex(inet6_aton(''));"
+    qt_sql "SELECT hex(inet6_aton(NULL));"
+    qt_sql "SELECT hex(inet6_aton('KK'));"
 
     qt_sql "SELECT is_ipv4_compat(inet6_aton('::10.0.5.9'));"
     qt_sql "SELECT is_ipv4_compat(inet6_aton('::ffff:10.0.5.9'));"
@@ -74,9 +80,15 @@ suite("test_ip_functions", "arrow_flight_sql") {
     qt_sql "SELECT is_ipv4_compat(inet6_aton('::c0a8:0001'));"
     qt_sql "SELECT is_ipv4_compat(inet6_aton('::0.0.0.0'));"
     qt_sql "SELECT is_ipv4_compat(inet6_aton('::255.255.255.255'));"
+    qt_sql "SELECT is_ipv4_compat(inet6_aton(''));"
+    qt_sql "SELECT is_ipv4_compat(inet6_aton(NULL));"
+    qt_sql "SELECT is_ipv4_compat(inet6_aton('KK'));"
 
     qt_sql "SELECT is_ipv4_mapped(inet6_aton('::10.0.5.9'));"
     qt_sql "SELECT is_ipv4_mapped(inet6_aton('::ffff:10.0.5.9'));"
     qt_sql "SELECT is_ipv4_mapped(inet6_aton('::'));"
     qt_sql "SELECT is_ipv4_mapped(inet6_aton('::ffff:c0a8:0001'));"
+    qt_sql "SELECT is_ipv4_mapped(inet6_aton(''));"
+    qt_sql "SELECT is_ipv4_mapped(inet6_aton(NULL));"
+    qt_sql "SELECT is_ipv4_mapped(inet6_aton('KK'));"
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to