[fix](function) fix ipv4 funcs get failed error, improve an ipv6 func and exception message (#30269)
This commit is contained in:
@ -20,30 +20,41 @@
|
||||
namespace doris::vectorized {
|
||||
|
||||
void register_function_ip(SimpleFunctionFactory& factory) {
|
||||
/// IPv4 convert between string and num part
|
||||
factory.register_function<FunctionIPv4NumToString>();
|
||||
factory.register_alias(FunctionIPv4NumToString::name, "inet_ntoa");
|
||||
factory.register_function<FunctionIPv4StringToNum<IPExceptionMode::Throw>>();
|
||||
factory.register_function<FunctionIPv4StringToNum<IPExceptionMode::Default>>();
|
||||
factory.register_function<FunctionIPv4StringToNum<IPExceptionMode::Null>>();
|
||||
factory.register_alias(FunctionIPv4StringToNum<IPExceptionMode::Null>::name, "inet_aton");
|
||||
factory.register_function<FunctionIPv4StringToNum<IPConvertExceptionMode::Throw>>();
|
||||
factory.register_function<FunctionIPv4StringToNum<IPConvertExceptionMode::Default>>();
|
||||
factory.register_function<FunctionIPv4StringToNum<IPConvertExceptionMode::Null>>();
|
||||
factory.register_alias(FunctionIPv4StringToNum<IPConvertExceptionMode::Null>::name,
|
||||
"inet_aton");
|
||||
|
||||
/// IPv6 convert between string and num part
|
||||
factory.register_function<FunctionIPv6NumToString>();
|
||||
factory.register_alias(FunctionIPv6NumToString::name, "inet6_ntoa");
|
||||
factory.register_function<FunctionIPv6StringToNum<IPExceptionMode::Throw>>();
|
||||
factory.register_function<FunctionIPv6StringToNum<IPExceptionMode::Default>>();
|
||||
factory.register_function<FunctionIPv6StringToNum<IPExceptionMode::Null>>();
|
||||
factory.register_alias(FunctionIPv6StringToNum<IPExceptionMode::Null>::name, "inet6_aton");
|
||||
factory.register_function<FunctionIPv6StringToNum<IPConvertExceptionMode::Throw>>();
|
||||
factory.register_function<FunctionIPv6StringToNum<IPConvertExceptionMode::Default>>();
|
||||
factory.register_function<FunctionIPv6StringToNum<IPConvertExceptionMode::Null>>();
|
||||
factory.register_alias(FunctionIPv6StringToNum<IPConvertExceptionMode::Null>::name,
|
||||
"inet6_aton");
|
||||
|
||||
/// Judge part
|
||||
factory.register_function<FunctionIsIPv4Compat>();
|
||||
factory.register_function<FunctionIsIPv4Mapped>();
|
||||
factory.register_function<FunctionIsIPString<IPv4>>();
|
||||
factory.register_function<FunctionIsIPString<IPv6>>();
|
||||
factory.register_function<FunctionIsIPAddressInRange>();
|
||||
|
||||
/// CIDR part
|
||||
factory.register_function<FunctionIPv4CIDRToRange>();
|
||||
factory.register_function<FunctionIPv6CIDRToRange>();
|
||||
factory.register_function<FunctionToIP<IPExceptionMode::Throw, IPv4>>();
|
||||
factory.register_function<FunctionToIP<IPExceptionMode::Default, IPv4>>();
|
||||
factory.register_function<FunctionToIP<IPExceptionMode::Null, IPv4>>();
|
||||
factory.register_function<FunctionToIP<IPExceptionMode::Throw, IPv6>>();
|
||||
factory.register_function<FunctionToIP<IPExceptionMode::Default, IPv6>>();
|
||||
factory.register_function<FunctionToIP<IPExceptionMode::Null, IPv6>>();
|
||||
|
||||
/// Convert to IPv4/IPv6 part
|
||||
factory.register_function<FunctionToIP<IPConvertExceptionMode::Throw, IPv4>>();
|
||||
factory.register_function<FunctionToIP<IPConvertExceptionMode::Default, IPv4>>();
|
||||
factory.register_function<FunctionToIP<IPConvertExceptionMode::Null, IPv4>>();
|
||||
factory.register_function<FunctionToIP<IPConvertExceptionMode::Throw, IPv6>>();
|
||||
factory.register_function<FunctionToIP<IPConvertExceptionMode::Default, IPv6>>();
|
||||
factory.register_function<FunctionToIP<IPConvertExceptionMode::Null, IPv6>>();
|
||||
}
|
||||
} // namespace doris::vectorized
|
||||
Reference in New Issue
Block a user