mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-18 04:12:19 +00:00
2716df8ab2
Added: * IDataTypeDomain interface; * method DataTypeFactory::registerDataTypeDomain for registering domains; * DataTypeDomainWithSimpleSerialization domain base class with simple serialization/deserialization; * Concrete IPv4 and IPv6 domain implementations: DataTypeDomanIPv6 and DataTypeDomanIPv4; Updated: * IDataType text serialization/deserialization methods; * IDataType implementation to use domain for text serialization/deserialization; * Refactored implementation of the IPv4/IPv6 functions to use formatIPv4/v6 and parseIPv4/v6 from Common/formatIPv6.h; Tests: * Added test cases for IPv4 and IPv6 domains. * Updated IPv4/v6 functions tests to validate more cases; * Added performance tests for IPv4 and IPv6 related functions;
34 lines
1.4 KiB
C++
34 lines
1.4 KiB
C++
#include <Functions/FunctionFactory.h>
|
|
#include <Functions/FunctionsCoding.h>
|
|
|
|
namespace DB
|
|
{
|
|
|
|
struct NameFunctionIPv4NumToString { static constexpr auto name = "IPv4NumToString"; };
|
|
struct NameFunctionIPv4NumToStringClassC { static constexpr auto name = "IPv4NumToStringClassC"; };
|
|
|
|
|
|
void registerFunctionsCoding(FunctionFactory & factory)
|
|
{
|
|
factory.registerFunction<FunctionToStringCutToZero>();
|
|
factory.registerFunction<FunctionIPv6NumToString>();
|
|
factory.registerFunction<FunctionCutIPv6>();
|
|
factory.registerFunction<FunctionIPv6StringToNum>();
|
|
factory.registerFunction<FunctionIPv4NumToString<0, NameFunctionIPv4NumToString>>();
|
|
factory.registerFunction<FunctionIPv4NumToString<1, NameFunctionIPv4NumToStringClassC>>();
|
|
factory.registerFunction<FunctionIPv4StringToNum>();
|
|
factory.registerFunction<FunctionIPv4ToIPv6>();
|
|
factory.registerFunction<FunctionMACNumToString>();
|
|
factory.registerFunction<FunctionMACStringTo<ParseMACImpl>>();
|
|
factory.registerFunction<FunctionMACStringTo<ParseOUIImpl>>();
|
|
factory.registerFunction<FunctionUUIDNumToString>();
|
|
factory.registerFunction<FunctionUUIDStringToNum>();
|
|
factory.registerFunction<FunctionHex>();
|
|
factory.registerFunction<FunctionUnhex>();
|
|
factory.registerFunction<FunctionBitmaskToArray>();
|
|
factory.registerFunction<FunctionToIPv4>();
|
|
factory.registerFunction<FunctionToIPv6>();
|
|
}
|
|
|
|
}
|