1#include <Functions/FunctionFactory.h>
2#include <Functions/FunctionsConversion.h>
3
4
5namespace DB
6{
7
8void registerFunctionsConversion(FunctionFactory & factory)
9{
10 factory.registerFunction<FunctionToUInt8>();
11 factory.registerFunction<FunctionToUInt16>();
12 factory.registerFunction<FunctionToUInt32>();
13 factory.registerFunction<FunctionToUInt64>();
14 factory.registerFunction<FunctionToInt8>();
15 factory.registerFunction<FunctionToInt16>();
16 factory.registerFunction<FunctionToInt32>();
17 factory.registerFunction<FunctionToInt64>();
18 factory.registerFunction<FunctionToFloat32>();
19 factory.registerFunction<FunctionToFloat64>();
20
21 factory.registerFunction<FunctionToDecimal32>();
22 factory.registerFunction<FunctionToDecimal64>();
23 factory.registerFunction<FunctionToDecimal128>();
24
25 factory.registerFunction<FunctionToDate>();
26 factory.registerFunction<FunctionToDateTime>();
27 factory.registerFunction<FunctionToDateTime64>();
28 factory.registerFunction<FunctionToUUID>();
29 factory.registerFunction<FunctionToString>();
30 factory.registerFunction<FunctionToFixedString>();
31
32 factory.registerFunction<FunctionToUnixTimestamp>();
33 factory.registerFunction<CastOverloadResolver>(FunctionFactory::CaseInsensitive);
34
35 factory.registerFunction<FunctionToUInt8OrZero>();
36 factory.registerFunction<FunctionToUInt16OrZero>();
37 factory.registerFunction<FunctionToUInt32OrZero>();
38 factory.registerFunction<FunctionToUInt64OrZero>();
39 factory.registerFunction<FunctionToInt8OrZero>();
40 factory.registerFunction<FunctionToInt16OrZero>();
41 factory.registerFunction<FunctionToInt32OrZero>();
42 factory.registerFunction<FunctionToInt64OrZero>();
43 factory.registerFunction<FunctionToFloat32OrZero>();
44 factory.registerFunction<FunctionToFloat64OrZero>();
45 factory.registerFunction<FunctionToDateOrZero>();
46 factory.registerFunction<FunctionToDateTimeOrZero>();
47 factory.registerFunction<FunctionToDateTime64OrZero>();
48
49 factory.registerFunction<FunctionToDecimal32OrZero>();
50 factory.registerFunction<FunctionToDecimal64OrZero>();
51 factory.registerFunction<FunctionToDecimal128OrZero>();
52
53 factory.registerFunction<FunctionToUInt8OrNull>();
54 factory.registerFunction<FunctionToUInt16OrNull>();
55 factory.registerFunction<FunctionToUInt32OrNull>();
56 factory.registerFunction<FunctionToUInt64OrNull>();
57 factory.registerFunction<FunctionToInt8OrNull>();
58 factory.registerFunction<FunctionToInt16OrNull>();
59 factory.registerFunction<FunctionToInt32OrNull>();
60 factory.registerFunction<FunctionToInt64OrNull>();
61 factory.registerFunction<FunctionToFloat32OrNull>();
62 factory.registerFunction<FunctionToFloat64OrNull>();
63 factory.registerFunction<FunctionToDateOrNull>();
64 factory.registerFunction<FunctionToDateTimeOrNull>();
65 factory.registerFunction<FunctionToDateTime64OrNull>();
66
67 factory.registerFunction<FunctionToDecimal32OrNull>();
68 factory.registerFunction<FunctionToDecimal64OrNull>();
69 factory.registerFunction<FunctionToDecimal128OrNull>();
70
71 factory.registerFunction<FunctionParseDateTimeBestEffort>();
72 factory.registerFunction<FunctionParseDateTimeBestEffortOrZero>();
73 factory.registerFunction<FunctionParseDateTimeBestEffortOrNull>();
74 factory.registerFunction<FunctionParseDateTime64BestEffort>();
75 factory.registerFunction<FunctionParseDateTime64BestEffortOrZero>();
76 factory.registerFunction<FunctionParseDateTime64BestEffortOrNull>();
77
78 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalSecond, PositiveMonotonicity>>();
79 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalMinute, PositiveMonotonicity>>();
80 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalHour, PositiveMonotonicity>>();
81 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalDay, PositiveMonotonicity>>();
82 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalWeek, PositiveMonotonicity>>();
83 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalMonth, PositiveMonotonicity>>();
84 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalQuarter, PositiveMonotonicity>>();
85 factory.registerFunction<FunctionConvert<DataTypeInterval, NameToIntervalYear, PositiveMonotonicity>>();
86}
87
88}
89