duckdb 0.7.2-dev2995.0 → 0.7.2-dev3117.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +1 -0
- package/package.json +1 -1
- package/src/duckdb/extension/json/include/json_deserializer.hpp +1 -0
- package/src/duckdb/extension/json/include/json_serializer.hpp +8 -1
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +1 -3
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +3 -2
- package/src/duckdb/extension/parquet/parquet-extension.cpp +9 -7
- package/src/duckdb/src/common/enum_util.cpp +5908 -0
- package/src/duckdb/src/common/enums/expression_type.cpp +216 -4
- package/src/duckdb/src/common/enums/join_type.cpp +6 -5
- package/src/duckdb/src/common/enums/physical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/exception.cpp +1 -1
- package/src/duckdb/src/common/exception_format_value.cpp +2 -2
- package/src/duckdb/src/common/multi_file_reader.cpp +14 -0
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +143 -0
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +160 -0
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +3 -3
- package/src/duckdb/src/common/types.cpp +11 -10
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +2 -1
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +2 -3
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +3 -3
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/grouped_aggregate_data.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +3 -2
- package/src/duckdb/src/execution/operator/helper/physical_streaming_sample.cpp +2 -1
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +2 -1
- package/src/duckdb/src/execution/operator/join/physical_comparison_join.cpp +2 -1
- package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +165 -0
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +9 -7
- package/src/duckdb/src/execution/partitionable_hashtable.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_copy_to_file.cpp +25 -4
- package/src/duckdb/src/execution/physical_plan/plan_sample.cpp +2 -1
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +5 -4
- package/src/duckdb/src/function/table/copy_csv.cpp +85 -29
- package/src/duckdb/src/function/table/read_csv.cpp +17 -11
- package/src/duckdb/src/function/table/system/duckdb_settings.cpp +2 -1
- package/src/duckdb/src/function/table/system/duckdb_types.cpp +2 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +958 -0
- package/src/duckdb/src/include/duckdb/common/enums/join_type.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/exception.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +44 -0
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +93 -0
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +92 -0
- package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +7 -3
- package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/vector.hpp +61 -14
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +3 -2
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/distinct_aggregate_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/grouped_aggregate_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp +68 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +32 -4
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +4 -2
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/database.hpp +1 -3
- package/src/duckdb/src/include/duckdb/main/database_path_and_type.hpp +24 -0
- package/src/duckdb/src/include/duckdb/main/relation/setop_relation.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_select_node.hpp +1 -1
- package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier_v2.hpp +26 -0
- package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +1 -0
- package/src/duckdb/src/main/client_context.cpp +1 -0
- package/src/duckdb/src/main/client_verify.cpp +1 -0
- package/src/duckdb/src/main/database.cpp +11 -23
- package/src/duckdb/src/main/database_path_and_type.cpp +23 -0
- package/src/duckdb/src/main/relation/join_relation.cpp +2 -1
- package/src/duckdb/src/main/relation/setop_relation.cpp +2 -3
- package/src/duckdb/src/parser/expression/window_expression.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/sample_options.cpp +2 -2
- package/src/duckdb/src/parser/query_node/select_node.cpp +1 -1
- package/src/duckdb/src/parser/result_modifier.cpp +2 -2
- package/src/duckdb/src/parser/statement/select_statement.cpp +0 -44
- package/src/duckdb/src/parser/tableref/joinref.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +3 -3
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +6 -0
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +4 -1
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +7 -0
- package/src/duckdb/src/planner/operator/logical_aggregate.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +2 -2
- package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +2 -1
- package/src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp +20 -0
- package/src/duckdb/src/verification/statement_verifier.cpp +3 -0
- package/src/duckdb/ub_src_common.cpp +2 -2
- package/src/duckdb/ub_src_common_serializer.cpp +4 -2
- package/src/duckdb/ub_src_execution_operator_persistent.cpp +2 -0
- package/src/duckdb/ub_src_main.cpp +2 -0
- package/src/duckdb/src/common/serializer/enum_serializer.cpp +0 -1180
- package/src/duckdb/src/common/vector.cpp +0 -12
- package/src/duckdb/src/include/duckdb/common/serializer/enum_serializer.hpp +0 -113
@@ -1,1180 +0,0 @@
|
|
1
|
-
#include "duckdb/common/serializer/enum_serializer.hpp"
|
2
|
-
|
3
|
-
#include "duckdb/common/types.hpp"
|
4
|
-
#include "duckdb/common/enums/order_type.hpp"
|
5
|
-
#include "duckdb/common/enums/tableref_type.hpp"
|
6
|
-
#include "duckdb/common/enums/join_type.hpp"
|
7
|
-
#include "duckdb/common/enums/joinref_type.hpp"
|
8
|
-
#include "duckdb/common/enums/aggregate_handling.hpp"
|
9
|
-
#include "duckdb/common/enums/expression_type.hpp"
|
10
|
-
#include "duckdb/common/enums/subquery_type.hpp"
|
11
|
-
#include "duckdb/common/enums/set_operation_type.hpp"
|
12
|
-
|
13
|
-
#include "duckdb/parser/result_modifier.hpp"
|
14
|
-
#include "duckdb/parser/query_node.hpp"
|
15
|
-
#include "duckdb/parser/expression/window_expression.hpp"
|
16
|
-
#include "duckdb/parser/parsed_data/sample_options.hpp"
|
17
|
-
|
18
|
-
namespace duckdb {
|
19
|
-
|
20
|
-
//-----------------------------------------------
|
21
|
-
// OrderType
|
22
|
-
//-----------------------------------------------
|
23
|
-
template <>
|
24
|
-
OrderType EnumSerializer::StringToEnum(const char *value) {
|
25
|
-
if (StringUtil::Equals(value, "INVALID")) {
|
26
|
-
return OrderType::INVALID;
|
27
|
-
} else if (StringUtil::Equals(value, "ORDER_DEFAULT") || StringUtil::Equals(value, "DEFAULT")) {
|
28
|
-
return OrderType::ORDER_DEFAULT;
|
29
|
-
} else if (StringUtil::Equals(value, "ASCENDING") || StringUtil::Equals(value, "ASC")) {
|
30
|
-
return OrderType::ASCENDING;
|
31
|
-
} else if (StringUtil::Equals(value, "DESCENDING") || StringUtil::Equals(value, "DESC")) {
|
32
|
-
return OrderType::DESCENDING;
|
33
|
-
} else {
|
34
|
-
throw NotImplementedException("FromString not implemented for enum value");
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
|
-
template <>
|
39
|
-
const char *EnumSerializer::EnumToString(OrderType value) {
|
40
|
-
switch (value) {
|
41
|
-
case OrderType::INVALID:
|
42
|
-
return "INVALID";
|
43
|
-
case OrderType::ORDER_DEFAULT:
|
44
|
-
return "ORDER_DEFAULT";
|
45
|
-
case OrderType::ASCENDING:
|
46
|
-
return "ASCENDING";
|
47
|
-
case OrderType::DESCENDING:
|
48
|
-
return "DESCENDING";
|
49
|
-
default:
|
50
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
|
-
//-----------------------------------------------
|
55
|
-
// OrderByNullType
|
56
|
-
//-----------------------------------------------
|
57
|
-
template <>
|
58
|
-
OrderByNullType EnumSerializer::StringToEnum(const char *value) {
|
59
|
-
if (StringUtil::Equals(value, "INVALID")) {
|
60
|
-
return OrderByNullType::INVALID;
|
61
|
-
} else if (StringUtil::Equals(value, "ORDER_DEFAULT") || StringUtil::Equals(value, "DEFAULT")) {
|
62
|
-
return OrderByNullType::ORDER_DEFAULT;
|
63
|
-
} else if (StringUtil::Equals(value, "NULLS_FIRST") || StringUtil::Equals(value, "NULLS FIRST")) {
|
64
|
-
return OrderByNullType::NULLS_FIRST;
|
65
|
-
} else if (StringUtil::Equals(value, "NULLS_LAST") || StringUtil::Equals(value, "NULLS LAST")) {
|
66
|
-
return OrderByNullType::NULLS_LAST;
|
67
|
-
} else {
|
68
|
-
throw NotImplementedException("FromString not implemented for enum value");
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
template <>
|
73
|
-
const char *EnumSerializer::EnumToString(OrderByNullType value) {
|
74
|
-
switch (value) {
|
75
|
-
case OrderByNullType::INVALID:
|
76
|
-
return "INVALID";
|
77
|
-
case OrderByNullType::ORDER_DEFAULT:
|
78
|
-
return "ORDER_DEFAULT";
|
79
|
-
case OrderByNullType::NULLS_FIRST:
|
80
|
-
return "NULLS_FIRST";
|
81
|
-
case OrderByNullType::NULLS_LAST:
|
82
|
-
return "NULLS_LAST";
|
83
|
-
default:
|
84
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
//-----------------------------------------------
|
89
|
-
// ResultModifierType
|
90
|
-
//-----------------------------------------------
|
91
|
-
template <>
|
92
|
-
ResultModifierType EnumSerializer::StringToEnum(const char *value) {
|
93
|
-
if (StringUtil::Equals(value, "LIMIT_MODIFIER")) {
|
94
|
-
return ResultModifierType::LIMIT_MODIFIER;
|
95
|
-
} else if (StringUtil::Equals(value, "ORDER_MODIFIER")) {
|
96
|
-
return ResultModifierType::ORDER_MODIFIER;
|
97
|
-
} else if (StringUtil::Equals(value, "DISTINCT_MODIFIER")) {
|
98
|
-
return ResultModifierType::DISTINCT_MODIFIER;
|
99
|
-
} else if (StringUtil::Equals(value, "LIMIT_PERCENT_MODIFIER")) {
|
100
|
-
return ResultModifierType::LIMIT_PERCENT_MODIFIER;
|
101
|
-
} else {
|
102
|
-
throw NotImplementedException("FromString not implement for enum value");
|
103
|
-
}
|
104
|
-
}
|
105
|
-
|
106
|
-
template <>
|
107
|
-
const char *EnumSerializer::EnumToString(ResultModifierType value) {
|
108
|
-
switch (value) {
|
109
|
-
case ResultModifierType::LIMIT_MODIFIER:
|
110
|
-
return "LIMIT_MODIFIER";
|
111
|
-
case ResultModifierType::ORDER_MODIFIER:
|
112
|
-
return "ORDER_MODIFIER";
|
113
|
-
case ResultModifierType::DISTINCT_MODIFIER:
|
114
|
-
return "DISTINCT_MODIFIER";
|
115
|
-
case ResultModifierType::LIMIT_PERCENT_MODIFIER:
|
116
|
-
return "LIMIT_PERCENT_MODIFIER";
|
117
|
-
default:
|
118
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
//-----------------------------------------------
|
123
|
-
// ExtraTypeInfoType
|
124
|
-
//-----------------------------------------------
|
125
|
-
template <>
|
126
|
-
ExtraTypeInfoType EnumSerializer::StringToEnum(const char *value) {
|
127
|
-
if (StringUtil::Equals(value, "INVALID_TYPE_INFO")) {
|
128
|
-
return ExtraTypeInfoType::INVALID_TYPE_INFO;
|
129
|
-
} else if (StringUtil::Equals(value, "GENERIC_TYPE_INFO")) {
|
130
|
-
return ExtraTypeInfoType::GENERIC_TYPE_INFO;
|
131
|
-
} else if (StringUtil::Equals(value, "DECIMAL_TYPE_INFO")) {
|
132
|
-
return ExtraTypeInfoType::DECIMAL_TYPE_INFO;
|
133
|
-
} else if (StringUtil::Equals(value, "STRING_TYPE_INFO")) {
|
134
|
-
return ExtraTypeInfoType::STRING_TYPE_INFO;
|
135
|
-
} else if (StringUtil::Equals(value, "LIST_TYPE_INFO")) {
|
136
|
-
return ExtraTypeInfoType::LIST_TYPE_INFO;
|
137
|
-
} else if (StringUtil::Equals(value, "STRUCT_TYPE_INFO")) {
|
138
|
-
return ExtraTypeInfoType::STRUCT_TYPE_INFO;
|
139
|
-
} else if (StringUtil::Equals(value, "ENUM_TYPE_INFO")) {
|
140
|
-
return ExtraTypeInfoType::USER_TYPE_INFO;
|
141
|
-
} else if (StringUtil::Equals(value, "USER_TYPE_INFO")) {
|
142
|
-
return ExtraTypeInfoType::USER_TYPE_INFO;
|
143
|
-
} else if (StringUtil::Equals(value, "AGGREGATE_STATE_TYPE_INFO")) {
|
144
|
-
return ExtraTypeInfoType::AGGREGATE_STATE_TYPE_INFO;
|
145
|
-
} else {
|
146
|
-
throw NotImplementedException("FromString not implemented for enum value");
|
147
|
-
}
|
148
|
-
}
|
149
|
-
|
150
|
-
template <>
|
151
|
-
const char *EnumSerializer::EnumToString(ExtraTypeInfoType value) {
|
152
|
-
switch (value) {
|
153
|
-
case ExtraTypeInfoType::INVALID_TYPE_INFO:
|
154
|
-
return "INVALID_TYPE_INFO";
|
155
|
-
case ExtraTypeInfoType::GENERIC_TYPE_INFO:
|
156
|
-
return "GENERIC_TYPE_INFO";
|
157
|
-
case ExtraTypeInfoType::DECIMAL_TYPE_INFO:
|
158
|
-
return "DECIMAL_TYPE_INFO";
|
159
|
-
case ExtraTypeInfoType::STRING_TYPE_INFO:
|
160
|
-
return "STRING_TYPE_INFO";
|
161
|
-
case ExtraTypeInfoType::LIST_TYPE_INFO:
|
162
|
-
return "LIST_TYPE_INFO";
|
163
|
-
case ExtraTypeInfoType::STRUCT_TYPE_INFO:
|
164
|
-
return "STRUCT_TYPE_INFO";
|
165
|
-
case ExtraTypeInfoType::ENUM_TYPE_INFO:
|
166
|
-
return "ENUM_TYPE_INFO";
|
167
|
-
case ExtraTypeInfoType::USER_TYPE_INFO:
|
168
|
-
return "USER_TYPE_INFO";
|
169
|
-
case ExtraTypeInfoType::AGGREGATE_STATE_TYPE_INFO:
|
170
|
-
return "AGGREGATE_STATE_TYPE_INFO";
|
171
|
-
default:
|
172
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
173
|
-
}
|
174
|
-
}
|
175
|
-
|
176
|
-
//-----------------------------------------------
|
177
|
-
// TableReferenceType
|
178
|
-
//-----------------------------------------------
|
179
|
-
template <>
|
180
|
-
TableReferenceType EnumSerializer::StringToEnum(const char *value) {
|
181
|
-
if (StringUtil::Equals(value, "INVALID")) {
|
182
|
-
return TableReferenceType::INVALID;
|
183
|
-
} else if (StringUtil::Equals(value, "BASE_TABLE")) {
|
184
|
-
return TableReferenceType::BASE_TABLE;
|
185
|
-
} else if (StringUtil::Equals(value, "SUBQUERY")) {
|
186
|
-
return TableReferenceType::SUBQUERY;
|
187
|
-
} else if (StringUtil::Equals(value, "JOIN")) {
|
188
|
-
return TableReferenceType::JOIN;
|
189
|
-
} else if (StringUtil::Equals(value, "TABLE_FUNCTION")) {
|
190
|
-
return TableReferenceType::TABLE_FUNCTION;
|
191
|
-
} else if (StringUtil::Equals(value, "EXPRESSION_LIST")) {
|
192
|
-
return TableReferenceType::EXPRESSION_LIST;
|
193
|
-
} else if (StringUtil::Equals(value, "CTE")) {
|
194
|
-
return TableReferenceType::CTE;
|
195
|
-
} else if (StringUtil::Equals(value, "PIVOT")) {
|
196
|
-
return TableReferenceType::PIVOT;
|
197
|
-
} else if (StringUtil::Equals(value, "EMPTY")) {
|
198
|
-
return TableReferenceType::EMPTY;
|
199
|
-
} else {
|
200
|
-
throw NotImplementedException("FromString not implemented for enum value");
|
201
|
-
}
|
202
|
-
}
|
203
|
-
|
204
|
-
template <>
|
205
|
-
const char *EnumSerializer::EnumToString(TableReferenceType value) {
|
206
|
-
switch (value) {
|
207
|
-
case TableReferenceType::INVALID:
|
208
|
-
return "INVALID";
|
209
|
-
case TableReferenceType::BASE_TABLE:
|
210
|
-
return "BASE_TABLE";
|
211
|
-
case TableReferenceType::SUBQUERY:
|
212
|
-
return "SUBQUERY";
|
213
|
-
case TableReferenceType::JOIN:
|
214
|
-
return "JOIN";
|
215
|
-
case TableReferenceType::TABLE_FUNCTION:
|
216
|
-
return "TABLE_FUNCTION";
|
217
|
-
case TableReferenceType::EXPRESSION_LIST:
|
218
|
-
return "EXPRESSION_LIST";
|
219
|
-
case TableReferenceType::CTE:
|
220
|
-
return "CTE";
|
221
|
-
case TableReferenceType::PIVOT:
|
222
|
-
return "PIVOT";
|
223
|
-
case TableReferenceType::EMPTY:
|
224
|
-
return "EMPTY";
|
225
|
-
default:
|
226
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
227
|
-
}
|
228
|
-
}
|
229
|
-
|
230
|
-
//-----------------------------------------------
|
231
|
-
// JoinRefType
|
232
|
-
//-----------------------------------------------
|
233
|
-
template <>
|
234
|
-
JoinRefType EnumSerializer::StringToEnum(const char *value) {
|
235
|
-
if (StringUtil::Equals(value, "REGULAR")) {
|
236
|
-
return JoinRefType::REGULAR;
|
237
|
-
} else if (StringUtil::Equals(value, "NATURAL")) {
|
238
|
-
return JoinRefType::NATURAL;
|
239
|
-
} else if (StringUtil::Equals(value, "CROSS")) {
|
240
|
-
return JoinRefType::CROSS;
|
241
|
-
} else if (StringUtil::Equals(value, "POSITIONAL")) {
|
242
|
-
return JoinRefType::POSITIONAL;
|
243
|
-
} else if (StringUtil::Equals(value, "ASOF")) {
|
244
|
-
return JoinRefType::ASOF;
|
245
|
-
} else {
|
246
|
-
throw NotImplementedException("EnumSerializer::StringToEnum not implemented for enum value");
|
247
|
-
}
|
248
|
-
}
|
249
|
-
|
250
|
-
template <>
|
251
|
-
const char *EnumSerializer::EnumToString(JoinRefType value) {
|
252
|
-
switch (value) {
|
253
|
-
case JoinRefType::REGULAR:
|
254
|
-
return "REGULAR";
|
255
|
-
case JoinRefType::NATURAL:
|
256
|
-
return "NATURAL";
|
257
|
-
case JoinRefType::CROSS:
|
258
|
-
return "CROSS";
|
259
|
-
case JoinRefType::POSITIONAL:
|
260
|
-
return "POSITIONAL";
|
261
|
-
case JoinRefType::ASOF:
|
262
|
-
return "ASOF";
|
263
|
-
default:
|
264
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
265
|
-
}
|
266
|
-
}
|
267
|
-
|
268
|
-
//-----------------------------------------------
|
269
|
-
// JoinType
|
270
|
-
//-----------------------------------------------
|
271
|
-
|
272
|
-
template <>
|
273
|
-
JoinType EnumSerializer::StringToEnum(const char *value) {
|
274
|
-
if (StringUtil::Equals(value, "LEFT")) {
|
275
|
-
return JoinType::LEFT;
|
276
|
-
} else if (StringUtil::Equals(value, "RIGHT")) {
|
277
|
-
return JoinType::RIGHT;
|
278
|
-
} else if (StringUtil::Equals(value, "INNER")) {
|
279
|
-
return JoinType::INNER;
|
280
|
-
} else if (StringUtil::Equals(value, "FULL")) {
|
281
|
-
return JoinType::OUTER;
|
282
|
-
} else if (StringUtil::Equals(value, "SEMI")) {
|
283
|
-
return JoinType::SEMI;
|
284
|
-
} else if (StringUtil::Equals(value, "ANTI")) {
|
285
|
-
return JoinType::ANTI;
|
286
|
-
} else if (StringUtil::Equals(value, "SINGLE")) {
|
287
|
-
return JoinType::SINGLE;
|
288
|
-
} else if (StringUtil::Equals(value, "MARK")) {
|
289
|
-
return JoinType::MARK;
|
290
|
-
} else {
|
291
|
-
throw NotImplementedException("EnumSerializer::StringToEnum not implemented for enum value");
|
292
|
-
}
|
293
|
-
}
|
294
|
-
|
295
|
-
template <>
|
296
|
-
const char *EnumSerializer::EnumToString(JoinType value) {
|
297
|
-
switch (value) {
|
298
|
-
case JoinType::LEFT:
|
299
|
-
return "LEFT";
|
300
|
-
case JoinType::RIGHT:
|
301
|
-
return "RIGHT";
|
302
|
-
case JoinType::INNER:
|
303
|
-
return "INNER";
|
304
|
-
case JoinType::OUTER:
|
305
|
-
return "FULL";
|
306
|
-
case JoinType::SEMI:
|
307
|
-
return "SEMI";
|
308
|
-
case JoinType::ANTI:
|
309
|
-
return "ANTI";
|
310
|
-
case JoinType::SINGLE:
|
311
|
-
return "SINGLE";
|
312
|
-
case JoinType::MARK:
|
313
|
-
return "MARK";
|
314
|
-
case JoinType::INVALID:
|
315
|
-
return "INVALID";
|
316
|
-
}
|
317
|
-
return "INVALID";
|
318
|
-
}
|
319
|
-
|
320
|
-
//-----------------------------------------------
|
321
|
-
// AggregateHandling
|
322
|
-
//-----------------------------------------------
|
323
|
-
|
324
|
-
template <>
|
325
|
-
AggregateHandling EnumSerializer::StringToEnum(const char *value) {
|
326
|
-
if (StringUtil::Equals(value, "STANDARD_HANDLING")) {
|
327
|
-
return AggregateHandling::STANDARD_HANDLING;
|
328
|
-
} else if (StringUtil::Equals(value, "NO_AGGREGATES_ALLOWED")) {
|
329
|
-
return AggregateHandling::NO_AGGREGATES_ALLOWED;
|
330
|
-
} else if (StringUtil::Equals(value, "FORCE_AGGREGATES")) {
|
331
|
-
return AggregateHandling::FORCE_AGGREGATES;
|
332
|
-
} else {
|
333
|
-
throw NotImplementedException("EnumSerializer::StringToEnum not implemented for enum value");
|
334
|
-
}
|
335
|
-
}
|
336
|
-
|
337
|
-
template <>
|
338
|
-
const char *EnumSerializer::EnumToString(AggregateHandling value) {
|
339
|
-
switch (value) {
|
340
|
-
case AggregateHandling::STANDARD_HANDLING:
|
341
|
-
return "STANDARD_HANDLING";
|
342
|
-
case AggregateHandling::NO_AGGREGATES_ALLOWED:
|
343
|
-
return "NO_AGGREGATES_ALLOWED";
|
344
|
-
case AggregateHandling::FORCE_AGGREGATES:
|
345
|
-
return "FORCE_AGGREGATES";
|
346
|
-
default:
|
347
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
348
|
-
}
|
349
|
-
}
|
350
|
-
|
351
|
-
//-----------------------------------------------
|
352
|
-
// QueryNodeType
|
353
|
-
//-----------------------------------------------
|
354
|
-
template <>
|
355
|
-
QueryNodeType EnumSerializer::StringToEnum(const char *value) {
|
356
|
-
if (StringUtil::Equals(value, "SELECT_NODE")) {
|
357
|
-
return QueryNodeType::SELECT_NODE;
|
358
|
-
} else if (StringUtil::Equals(value, "SET_OPERATION_NODE")) {
|
359
|
-
return QueryNodeType::SET_OPERATION_NODE;
|
360
|
-
} else if (StringUtil::Equals(value, "BOUND_SUBQUERY_NODE")) {
|
361
|
-
return QueryNodeType::BOUND_SUBQUERY_NODE;
|
362
|
-
} else if (StringUtil::Equals(value, "RECURSIVE_CTE_NODE")) {
|
363
|
-
return QueryNodeType::RECURSIVE_CTE_NODE;
|
364
|
-
} else {
|
365
|
-
throw NotImplementedException("EnumSerializer::StringToEnum not implemented for string value");
|
366
|
-
}
|
367
|
-
}
|
368
|
-
|
369
|
-
template <>
|
370
|
-
const char *EnumSerializer::EnumToString(QueryNodeType value) {
|
371
|
-
switch (value) {
|
372
|
-
case QueryNodeType::SELECT_NODE:
|
373
|
-
return "SELECT_NODE";
|
374
|
-
case QueryNodeType::SET_OPERATION_NODE:
|
375
|
-
return "SET_OPERATION_NODE";
|
376
|
-
case QueryNodeType::BOUND_SUBQUERY_NODE:
|
377
|
-
return "BOUND_SUBQUERY_NODE";
|
378
|
-
case QueryNodeType::RECURSIVE_CTE_NODE:
|
379
|
-
return "RECURSIVE_CTE_NODE";
|
380
|
-
default:
|
381
|
-
throw NotImplementedException("EnumSerializer::EnumToString not implemented for enum value");
|
382
|
-
}
|
383
|
-
}
|
384
|
-
|
385
|
-
//-----------------------------------------------
|
386
|
-
// SetOperationType
|
387
|
-
//-----------------------------------------------
|
388
|
-
template <>
|
389
|
-
SetOperationType EnumSerializer::StringToEnum(const char *value) {
|
390
|
-
if (StringUtil::Equals(value, "NONE")) {
|
391
|
-
return SetOperationType::NONE;
|
392
|
-
} else if (StringUtil::Equals(value, "UNION")) {
|
393
|
-
return SetOperationType::UNION;
|
394
|
-
} else if (StringUtil::Equals(value, "EXCEPT")) {
|
395
|
-
return SetOperationType::EXCEPT;
|
396
|
-
} else if (StringUtil::Equals(value, "INTERSECT")) {
|
397
|
-
return SetOperationType::INTERSECT;
|
398
|
-
} else if (StringUtil::Equals(value, "UNION_BY_NAME")) {
|
399
|
-
return SetOperationType::UNION_BY_NAME;
|
400
|
-
} else {
|
401
|
-
throw NotImplementedException("EnumSerializer::StringToEnum not implemented for enum value");
|
402
|
-
}
|
403
|
-
}
|
404
|
-
|
405
|
-
template <>
|
406
|
-
const char *EnumSerializer::EnumToString(SetOperationType value) {
|
407
|
-
switch (value) {
|
408
|
-
case SetOperationType::NONE:
|
409
|
-
return "NONE";
|
410
|
-
case SetOperationType::UNION:
|
411
|
-
return "UNION";
|
412
|
-
case SetOperationType::EXCEPT:
|
413
|
-
return "EXCEPT";
|
414
|
-
case SetOperationType::INTERSECT:
|
415
|
-
return "INTERSECT";
|
416
|
-
case SetOperationType::UNION_BY_NAME:
|
417
|
-
return "UNION_BY_NAME";
|
418
|
-
default:
|
419
|
-
throw NotImplementedException("EnumSerializer::EnumToString not implemented for enum value");
|
420
|
-
}
|
421
|
-
}
|
422
|
-
|
423
|
-
//-----------------------------------------------
|
424
|
-
// WindowBoundary
|
425
|
-
//-----------------------------------------------
|
426
|
-
template <>
|
427
|
-
WindowBoundary EnumSerializer::StringToEnum(const char *value) {
|
428
|
-
if (StringUtil::Equals(value, "INVALID")) {
|
429
|
-
return WindowBoundary::INVALID;
|
430
|
-
} else if (StringUtil::Equals(value, "UNBOUNDED_PRECEDING")) {
|
431
|
-
return WindowBoundary::UNBOUNDED_PRECEDING;
|
432
|
-
} else if (StringUtil::Equals(value, "UNBOUNDED_FOLLOWING")) {
|
433
|
-
return WindowBoundary::UNBOUNDED_FOLLOWING;
|
434
|
-
} else if (StringUtil::Equals(value, "CURRENT_ROW_RANGE")) {
|
435
|
-
return WindowBoundary::CURRENT_ROW_RANGE;
|
436
|
-
} else if (StringUtil::Equals(value, "CURRENT_ROW_ROWS")) {
|
437
|
-
return WindowBoundary::CURRENT_ROW_ROWS;
|
438
|
-
} else if (StringUtil::Equals(value, "EXPR_PRECEDING_ROWS")) {
|
439
|
-
return WindowBoundary::EXPR_PRECEDING_ROWS;
|
440
|
-
} else if (StringUtil::Equals(value, "EXPR_FOLLOWING_ROWS")) {
|
441
|
-
return WindowBoundary::EXPR_FOLLOWING_ROWS;
|
442
|
-
} else if (StringUtil::Equals(value, "EXPR_PRECEDING_RANGE")) {
|
443
|
-
return WindowBoundary::EXPR_PRECEDING_RANGE;
|
444
|
-
} else if (StringUtil::Equals(value, "EXPR_FOLLOWING_RANGE")) {
|
445
|
-
return WindowBoundary::EXPR_FOLLOWING_RANGE;
|
446
|
-
} else {
|
447
|
-
throw NotImplementedException("FromString not implemented for enum value");
|
448
|
-
}
|
449
|
-
}
|
450
|
-
|
451
|
-
template <>
|
452
|
-
const char *EnumSerializer::EnumToString(WindowBoundary value) {
|
453
|
-
switch (value) {
|
454
|
-
case WindowBoundary::INVALID:
|
455
|
-
return "INVALID";
|
456
|
-
case WindowBoundary::UNBOUNDED_PRECEDING:
|
457
|
-
return "UNBOUNDED_PRECEDING";
|
458
|
-
case WindowBoundary::UNBOUNDED_FOLLOWING:
|
459
|
-
return "UNBOUNDED_FOLLOWING";
|
460
|
-
case WindowBoundary::CURRENT_ROW_RANGE:
|
461
|
-
return "CURRENT_ROW_RANGE";
|
462
|
-
case WindowBoundary::CURRENT_ROW_ROWS:
|
463
|
-
return "CURRENT_ROW_ROWS";
|
464
|
-
case WindowBoundary::EXPR_PRECEDING_ROWS:
|
465
|
-
return "EXPR_PRECEDING_ROWS";
|
466
|
-
case WindowBoundary::EXPR_FOLLOWING_ROWS:
|
467
|
-
return "EXPR_FOLLOWING_ROWS";
|
468
|
-
case WindowBoundary::EXPR_PRECEDING_RANGE:
|
469
|
-
return "EXPR_PRECEDING_RANGE";
|
470
|
-
case WindowBoundary::EXPR_FOLLOWING_RANGE:
|
471
|
-
return "EXPR_FOLLOWING_RANGE";
|
472
|
-
default:
|
473
|
-
throw NotImplementedException("ToString not implemented for enum value");
|
474
|
-
}
|
475
|
-
}
|
476
|
-
|
477
|
-
//-----------------------------------------------
|
478
|
-
// SubqueryType
|
479
|
-
//-----------------------------------------------
|
480
|
-
template <>
|
481
|
-
SubqueryType EnumSerializer::StringToEnum(const char *value) {
|
482
|
-
if (StringUtil::Equals(value, "INVALID")) {
|
483
|
-
return SubqueryType::INVALID;
|
484
|
-
} else if (StringUtil::Equals(value, "SCALAR")) {
|
485
|
-
return SubqueryType::SCALAR;
|
486
|
-
} else if (StringUtil::Equals(value, "EXISTS")) {
|
487
|
-
return SubqueryType::EXISTS;
|
488
|
-
} else if (StringUtil::Equals(value, "NOT_EXISTS")) {
|
489
|
-
return SubqueryType::NOT_EXISTS;
|
490
|
-
} else if (StringUtil::Equals(value, "ANY")) {
|
491
|
-
return SubqueryType::ANY;
|
492
|
-
} else {
|
493
|
-
throw NotImplementedException("EnumSerializer::StringToEnum not implemented for enum value");
|
494
|
-
}
|
495
|
-
}
|
496
|
-
|
497
|
-
template <>
|
498
|
-
const char *EnumSerializer::EnumToString(SubqueryType value) {
|
499
|
-
switch (value) {
|
500
|
-
case SubqueryType::INVALID:
|
501
|
-
return "INVALID";
|
502
|
-
case SubqueryType::SCALAR:
|
503
|
-
return "SCALAR";
|
504
|
-
case SubqueryType::EXISTS:
|
505
|
-
return "EXISTS";
|
506
|
-
case SubqueryType::NOT_EXISTS:
|
507
|
-
return "NOT_EXISTS";
|
508
|
-
case SubqueryType::ANY:
|
509
|
-
return "ANY";
|
510
|
-
default:
|
511
|
-
throw NotImplementedException("EnumSerializer::EnumToString not implemented for enum value");
|
512
|
-
}
|
513
|
-
}
|
514
|
-
|
515
|
-
//-----------------------------------------------
|
516
|
-
// ExpressionType
|
517
|
-
//-----------------------------------------------
|
518
|
-
template <>
|
519
|
-
ExpressionType EnumSerializer::StringToEnum(const char *value) {
|
520
|
-
if (StringUtil::Equals(value, "CAST")) {
|
521
|
-
return ExpressionType::OPERATOR_CAST;
|
522
|
-
} else if (StringUtil::Equals(value, "NOT")) {
|
523
|
-
return ExpressionType::OPERATOR_NOT;
|
524
|
-
} else if (StringUtil::Equals(value, "IS_NULL")) {
|
525
|
-
return ExpressionType::OPERATOR_IS_NULL;
|
526
|
-
} else if (StringUtil::Equals(value, "IS_NOT_NULL")) {
|
527
|
-
return ExpressionType::OPERATOR_IS_NOT_NULL;
|
528
|
-
} else if (StringUtil::Equals(value, "EQUAL")) {
|
529
|
-
return ExpressionType::COMPARE_EQUAL;
|
530
|
-
} else if (StringUtil::Equals(value, "NOTEQUAL")) {
|
531
|
-
return ExpressionType::COMPARE_NOTEQUAL;
|
532
|
-
} else if (StringUtil::Equals(value, "LESSTHAN")) {
|
533
|
-
return ExpressionType::COMPARE_LESSTHAN;
|
534
|
-
} else if (StringUtil::Equals(value, "GREATERTHAN")) {
|
535
|
-
return ExpressionType::COMPARE_GREATERTHAN;
|
536
|
-
} else if (StringUtil::Equals(value, "LESSTHANOREQUALTO")) {
|
537
|
-
return ExpressionType::COMPARE_LESSTHANOREQUALTO;
|
538
|
-
} else if (StringUtil::Equals(value, "GREATERTHANOREQUALTO")) {
|
539
|
-
return ExpressionType::COMPARE_GREATERTHANOREQUALTO;
|
540
|
-
} else if (StringUtil::Equals(value, "IN")) {
|
541
|
-
return ExpressionType::COMPARE_IN;
|
542
|
-
} else if (StringUtil::Equals(value, "DISTINCT_FROM")) {
|
543
|
-
return ExpressionType::COMPARE_DISTINCT_FROM;
|
544
|
-
} else if (StringUtil::Equals(value, "NOT_DISTINCT_FROM")) {
|
545
|
-
return ExpressionType::COMPARE_NOT_DISTINCT_FROM;
|
546
|
-
} else if (StringUtil::Equals(value, "AND")) {
|
547
|
-
return ExpressionType::CONJUNCTION_AND;
|
548
|
-
} else if (StringUtil::Equals(value, "OR")) {
|
549
|
-
return ExpressionType::CONJUNCTION_OR;
|
550
|
-
} else if (StringUtil::Equals(value, "CONSTANT")) {
|
551
|
-
return ExpressionType::VALUE_CONSTANT;
|
552
|
-
} else if (StringUtil::Equals(value, "PARAMETER")) {
|
553
|
-
return ExpressionType::VALUE_PARAMETER;
|
554
|
-
} else if (StringUtil::Equals(value, "TUPLE")) {
|
555
|
-
return ExpressionType::VALUE_TUPLE;
|
556
|
-
} else if (StringUtil::Equals(value, "TUPLE_ADDRESS")) {
|
557
|
-
return ExpressionType::VALUE_TUPLE_ADDRESS;
|
558
|
-
} else if (StringUtil::Equals(value, "NULL")) {
|
559
|
-
return ExpressionType::VALUE_NULL;
|
560
|
-
} else if (StringUtil::Equals(value, "VECTOR")) {
|
561
|
-
return ExpressionType::VALUE_VECTOR;
|
562
|
-
} else if (StringUtil::Equals(value, "SCALAR")) {
|
563
|
-
return ExpressionType::VALUE_SCALAR;
|
564
|
-
} else if (StringUtil::Equals(value, "AGGREGATE")) {
|
565
|
-
return ExpressionType::AGGREGATE;
|
566
|
-
} else if (StringUtil::Equals(value, "WINDOW_AGGREGATE")) {
|
567
|
-
return ExpressionType::WINDOW_AGGREGATE;
|
568
|
-
} else if (StringUtil::Equals(value, "RANK")) {
|
569
|
-
return ExpressionType::WINDOW_RANK;
|
570
|
-
} else if (StringUtil::Equals(value, "RANK_DENSE")) {
|
571
|
-
return ExpressionType::WINDOW_RANK_DENSE;
|
572
|
-
} else if (StringUtil::Equals(value, "PERCENT_RANK")) {
|
573
|
-
return ExpressionType::WINDOW_PERCENT_RANK;
|
574
|
-
} else if (StringUtil::Equals(value, "ROW_NUMBER")) {
|
575
|
-
return ExpressionType::WINDOW_ROW_NUMBER;
|
576
|
-
} else if (StringUtil::Equals(value, "FIRST_VALUE")) {
|
577
|
-
return ExpressionType::WINDOW_FIRST_VALUE;
|
578
|
-
} else if (StringUtil::Equals(value, "LAST_VALUE")) {
|
579
|
-
return ExpressionType::WINDOW_LAST_VALUE;
|
580
|
-
} else if (StringUtil::Equals(value, "NTH_VALUE")) {
|
581
|
-
return ExpressionType::WINDOW_NTH_VALUE;
|
582
|
-
} else if (StringUtil::Equals(value, "CUME_DIST")) {
|
583
|
-
return ExpressionType::WINDOW_CUME_DIST;
|
584
|
-
} else if (StringUtil::Equals(value, "LEAD")) {
|
585
|
-
return ExpressionType::WINDOW_LEAD;
|
586
|
-
} else if (StringUtil::Equals(value, "LAG")) {
|
587
|
-
return ExpressionType::WINDOW_LAG;
|
588
|
-
} else if (StringUtil::Equals(value, "NTILE")) {
|
589
|
-
return ExpressionType::WINDOW_NTILE;
|
590
|
-
} else if (StringUtil::Equals(value, "FUNCTION")) {
|
591
|
-
return ExpressionType::FUNCTION;
|
592
|
-
} else if (StringUtil::Equals(value, "CASE")) {
|
593
|
-
return ExpressionType::CASE_EXPR;
|
594
|
-
} else if (StringUtil::Equals(value, "NULLIF")) {
|
595
|
-
return ExpressionType::OPERATOR_NULLIF;
|
596
|
-
} else if (StringUtil::Equals(value, "COALESCE")) {
|
597
|
-
return ExpressionType::OPERATOR_COALESCE;
|
598
|
-
} else if (StringUtil::Equals(value, "ARRAY_EXTRACT")) {
|
599
|
-
return ExpressionType::ARRAY_EXTRACT;
|
600
|
-
} else if (StringUtil::Equals(value, "ARRAY_SLICE")) {
|
601
|
-
return ExpressionType::ARRAY_SLICE;
|
602
|
-
} else if (StringUtil::Equals(value, "STRUCT_EXTRACT")) {
|
603
|
-
return ExpressionType::STRUCT_EXTRACT;
|
604
|
-
} else if (StringUtil::Equals(value, "SUBQUERY")) {
|
605
|
-
return ExpressionType::SUBQUERY;
|
606
|
-
} else if (StringUtil::Equals(value, "STAR")) {
|
607
|
-
return ExpressionType::STAR;
|
608
|
-
} else if (StringUtil::Equals(value, "PLACEHOLDER")) {
|
609
|
-
return ExpressionType::PLACEHOLDER;
|
610
|
-
} else if (StringUtil::Equals(value, "COLUMN_REF")) {
|
611
|
-
return ExpressionType::COLUMN_REF;
|
612
|
-
} else if (StringUtil::Equals(value, "FUNCTION_REF")) {
|
613
|
-
return ExpressionType::FUNCTION_REF;
|
614
|
-
} else if (StringUtil::Equals(value, "TABLE_REF")) {
|
615
|
-
return ExpressionType::TABLE_REF;
|
616
|
-
} else if (StringUtil::Equals(value, "CAST")) {
|
617
|
-
return ExpressionType::CAST;
|
618
|
-
} else if (StringUtil::Equals(value, "COMPARE_NOT_IN")) {
|
619
|
-
return ExpressionType::COMPARE_NOT_IN;
|
620
|
-
} else if (StringUtil::Equals(value, "COMPARE_BETWEEN")) {
|
621
|
-
return ExpressionType::COMPARE_BETWEEN;
|
622
|
-
} else if (StringUtil::Equals(value, "COMPARE_NOT_BETWEEN")) {
|
623
|
-
return ExpressionType::COMPARE_NOT_BETWEEN;
|
624
|
-
} else if (StringUtil::Equals(value, "VALUE_DEFAULT")) {
|
625
|
-
return ExpressionType::VALUE_DEFAULT;
|
626
|
-
} else if (StringUtil::Equals(value, "BOUND_REF")) {
|
627
|
-
return ExpressionType::BOUND_REF;
|
628
|
-
} else if (StringUtil::Equals(value, "BOUND_COLUMN_REF")) {
|
629
|
-
return ExpressionType::BOUND_COLUMN_REF;
|
630
|
-
} else if (StringUtil::Equals(value, "BOUND_FUNCTION")) {
|
631
|
-
return ExpressionType::BOUND_FUNCTION;
|
632
|
-
} else if (StringUtil::Equals(value, "BOUND_AGGREGATE")) {
|
633
|
-
return ExpressionType::BOUND_AGGREGATE;
|
634
|
-
} else if (StringUtil::Equals(value, "GROUPING")) {
|
635
|
-
return ExpressionType::GROUPING_FUNCTION;
|
636
|
-
} else if (StringUtil::Equals(value, "ARRAY_CONSTRUCTOR")) {
|
637
|
-
return ExpressionType::ARRAY_CONSTRUCTOR;
|
638
|
-
} else if (StringUtil::Equals(value, "TABLE_STAR")) {
|
639
|
-
return ExpressionType::TABLE_STAR;
|
640
|
-
} else if (StringUtil::Equals(value, "BOUND_UNNEST")) {
|
641
|
-
return ExpressionType::BOUND_UNNEST;
|
642
|
-
} else if (StringUtil::Equals(value, "COLLATE")) {
|
643
|
-
return ExpressionType::COLLATE;
|
644
|
-
} else if (StringUtil::Equals(value, "POSITIONAL_REFERENCE")) {
|
645
|
-
return ExpressionType::POSITIONAL_REFERENCE;
|
646
|
-
} else if (StringUtil::Equals(value, "BOUND_LAMBDA_REF")) {
|
647
|
-
return ExpressionType::BOUND_LAMBDA_REF;
|
648
|
-
} else if (StringUtil::Equals(value, "LAMBDA")) {
|
649
|
-
return ExpressionType::LAMBDA;
|
650
|
-
} else if (StringUtil::Equals(value, "ARROW")) {
|
651
|
-
return ExpressionType::ARROW;
|
652
|
-
} else {
|
653
|
-
return ExpressionType::INVALID;
|
654
|
-
}
|
655
|
-
}
|
656
|
-
|
657
|
-
template <>
|
658
|
-
const char *EnumSerializer::EnumToString(ExpressionType value) {
|
659
|
-
switch (value) {
|
660
|
-
case ExpressionType::OPERATOR_CAST:
|
661
|
-
return "CAST";
|
662
|
-
case ExpressionType::OPERATOR_NOT:
|
663
|
-
return "NOT";
|
664
|
-
case ExpressionType::OPERATOR_IS_NULL:
|
665
|
-
return "IS_NULL";
|
666
|
-
case ExpressionType::OPERATOR_IS_NOT_NULL:
|
667
|
-
return "IS_NOT_NULL";
|
668
|
-
case ExpressionType::COMPARE_EQUAL:
|
669
|
-
return "EQUAL";
|
670
|
-
case ExpressionType::COMPARE_NOTEQUAL:
|
671
|
-
return "NOTEQUAL";
|
672
|
-
case ExpressionType::COMPARE_LESSTHAN:
|
673
|
-
return "LESSTHAN";
|
674
|
-
case ExpressionType::COMPARE_GREATERTHAN:
|
675
|
-
return "GREATERTHAN";
|
676
|
-
case ExpressionType::COMPARE_LESSTHANOREQUALTO:
|
677
|
-
return "LESSTHANOREQUALTO";
|
678
|
-
case ExpressionType::COMPARE_GREATERTHANOREQUALTO:
|
679
|
-
return "GREATERTHANOREQUALTO";
|
680
|
-
case ExpressionType::COMPARE_IN:
|
681
|
-
return "IN";
|
682
|
-
case ExpressionType::COMPARE_DISTINCT_FROM:
|
683
|
-
return "DISTINCT_FROM";
|
684
|
-
case ExpressionType::COMPARE_NOT_DISTINCT_FROM:
|
685
|
-
return "NOT_DISTINCT_FROM";
|
686
|
-
case ExpressionType::CONJUNCTION_AND:
|
687
|
-
return "AND";
|
688
|
-
case ExpressionType::CONJUNCTION_OR:
|
689
|
-
return "OR";
|
690
|
-
case ExpressionType::VALUE_CONSTANT:
|
691
|
-
return "CONSTANT";
|
692
|
-
case ExpressionType::VALUE_PARAMETER:
|
693
|
-
return "PARAMETER";
|
694
|
-
case ExpressionType::VALUE_TUPLE:
|
695
|
-
return "TUPLE";
|
696
|
-
case ExpressionType::VALUE_TUPLE_ADDRESS:
|
697
|
-
return "TUPLE_ADDRESS";
|
698
|
-
case ExpressionType::VALUE_NULL:
|
699
|
-
return "NULL";
|
700
|
-
case ExpressionType::VALUE_VECTOR:
|
701
|
-
return "VECTOR";
|
702
|
-
case ExpressionType::VALUE_SCALAR:
|
703
|
-
return "SCALAR";
|
704
|
-
case ExpressionType::AGGREGATE:
|
705
|
-
return "AGGREGATE";
|
706
|
-
case ExpressionType::WINDOW_AGGREGATE:
|
707
|
-
return "WINDOW_AGGREGATE";
|
708
|
-
case ExpressionType::WINDOW_RANK:
|
709
|
-
return "RANK";
|
710
|
-
case ExpressionType::WINDOW_RANK_DENSE:
|
711
|
-
return "RANK_DENSE";
|
712
|
-
case ExpressionType::WINDOW_PERCENT_RANK:
|
713
|
-
return "PERCENT_RANK";
|
714
|
-
case ExpressionType::WINDOW_ROW_NUMBER:
|
715
|
-
return "ROW_NUMBER";
|
716
|
-
case ExpressionType::WINDOW_FIRST_VALUE:
|
717
|
-
return "FIRST_VALUE";
|
718
|
-
case ExpressionType::WINDOW_LAST_VALUE:
|
719
|
-
return "LAST_VALUE";
|
720
|
-
case ExpressionType::WINDOW_NTH_VALUE:
|
721
|
-
return "NTH_VALUE";
|
722
|
-
case ExpressionType::WINDOW_CUME_DIST:
|
723
|
-
return "CUME_DIST";
|
724
|
-
case ExpressionType::WINDOW_LEAD:
|
725
|
-
return "LEAD";
|
726
|
-
case ExpressionType::WINDOW_LAG:
|
727
|
-
return "LAG";
|
728
|
-
case ExpressionType::WINDOW_NTILE:
|
729
|
-
return "NTILE";
|
730
|
-
case ExpressionType::FUNCTION:
|
731
|
-
return "FUNCTION";
|
732
|
-
case ExpressionType::CASE_EXPR:
|
733
|
-
return "CASE";
|
734
|
-
case ExpressionType::OPERATOR_NULLIF:
|
735
|
-
return "NULLIF";
|
736
|
-
case ExpressionType::OPERATOR_COALESCE:
|
737
|
-
return "COALESCE";
|
738
|
-
case ExpressionType::ARRAY_EXTRACT:
|
739
|
-
return "ARRAY_EXTRACT";
|
740
|
-
case ExpressionType::ARRAY_SLICE:
|
741
|
-
return "ARRAY_SLICE";
|
742
|
-
case ExpressionType::STRUCT_EXTRACT:
|
743
|
-
return "STRUCT_EXTRACT";
|
744
|
-
case ExpressionType::SUBQUERY:
|
745
|
-
return "SUBQUERY";
|
746
|
-
case ExpressionType::STAR:
|
747
|
-
return "STAR";
|
748
|
-
case ExpressionType::PLACEHOLDER:
|
749
|
-
return "PLACEHOLDER";
|
750
|
-
case ExpressionType::COLUMN_REF:
|
751
|
-
return "COLUMN_REF";
|
752
|
-
case ExpressionType::FUNCTION_REF:
|
753
|
-
return "FUNCTION_REF";
|
754
|
-
case ExpressionType::TABLE_REF:
|
755
|
-
return "TABLE_REF";
|
756
|
-
case ExpressionType::CAST:
|
757
|
-
return "CAST";
|
758
|
-
case ExpressionType::COMPARE_NOT_IN:
|
759
|
-
return "COMPARE_NOT_IN";
|
760
|
-
case ExpressionType::COMPARE_BETWEEN:
|
761
|
-
return "COMPARE_BETWEEN";
|
762
|
-
case ExpressionType::COMPARE_NOT_BETWEEN:
|
763
|
-
return "COMPARE_NOT_BETWEEN";
|
764
|
-
case ExpressionType::VALUE_DEFAULT:
|
765
|
-
return "VALUE_DEFAULT";
|
766
|
-
case ExpressionType::BOUND_REF:
|
767
|
-
return "BOUND_REF";
|
768
|
-
case ExpressionType::BOUND_COLUMN_REF:
|
769
|
-
return "BOUND_COLUMN_REF";
|
770
|
-
case ExpressionType::BOUND_FUNCTION:
|
771
|
-
return "BOUND_FUNCTION";
|
772
|
-
case ExpressionType::BOUND_AGGREGATE:
|
773
|
-
return "BOUND_AGGREGATE";
|
774
|
-
case ExpressionType::GROUPING_FUNCTION:
|
775
|
-
return "GROUPING";
|
776
|
-
case ExpressionType::ARRAY_CONSTRUCTOR:
|
777
|
-
return "ARRAY_CONSTRUCTOR";
|
778
|
-
case ExpressionType::TABLE_STAR:
|
779
|
-
return "TABLE_STAR";
|
780
|
-
case ExpressionType::BOUND_UNNEST:
|
781
|
-
return "BOUND_UNNEST";
|
782
|
-
case ExpressionType::COLLATE:
|
783
|
-
return "COLLATE";
|
784
|
-
case ExpressionType::POSITIONAL_REFERENCE:
|
785
|
-
return "POSITIONAL_REFERENCE";
|
786
|
-
case ExpressionType::BOUND_LAMBDA_REF:
|
787
|
-
return "BOUND_LAMBDA_REF";
|
788
|
-
case ExpressionType::LAMBDA:
|
789
|
-
return "LAMBDA";
|
790
|
-
case ExpressionType::ARROW:
|
791
|
-
return "ARROW";
|
792
|
-
case ExpressionType::INVALID:
|
793
|
-
break;
|
794
|
-
}
|
795
|
-
return "INVALID";
|
796
|
-
}
|
797
|
-
|
798
|
-
//-----------------------------------------------
|
799
|
-
// ExpressionClass
|
800
|
-
//-----------------------------------------------
|
801
|
-
template <>
|
802
|
-
ExpressionClass EnumSerializer::StringToEnum(const char *value) {
|
803
|
-
if (StringUtil::Equals(value, "INVALID")) {
|
804
|
-
return ExpressionClass::INVALID;
|
805
|
-
} else if (StringUtil::Equals(value, "AGGREGATE")) {
|
806
|
-
return ExpressionClass::AGGREGATE;
|
807
|
-
} else if (StringUtil::Equals(value, "CASE")) {
|
808
|
-
return ExpressionClass::CASE;
|
809
|
-
} else if (StringUtil::Equals(value, "CAST")) {
|
810
|
-
return ExpressionClass::CAST;
|
811
|
-
} else if (StringUtil::Equals(value, "COLUMN_REF")) {
|
812
|
-
return ExpressionClass::COLUMN_REF;
|
813
|
-
} else if (StringUtil::Equals(value, "COMPARISON")) {
|
814
|
-
return ExpressionClass::COMPARISON;
|
815
|
-
} else if (StringUtil::Equals(value, "CONJUNCTION")) {
|
816
|
-
return ExpressionClass::CONJUNCTION;
|
817
|
-
} else if (StringUtil::Equals(value, "CONSTANT")) {
|
818
|
-
return ExpressionClass::CONSTANT;
|
819
|
-
} else if (StringUtil::Equals(value, "DEFAULT")) {
|
820
|
-
return ExpressionClass::DEFAULT;
|
821
|
-
} else if (StringUtil::Equals(value, "FUNCTION")) {
|
822
|
-
return ExpressionClass::FUNCTION;
|
823
|
-
} else if (StringUtil::Equals(value, "OPERATOR")) {
|
824
|
-
return ExpressionClass::OPERATOR;
|
825
|
-
} else if (StringUtil::Equals(value, "STAR")) {
|
826
|
-
return ExpressionClass::STAR;
|
827
|
-
} else if (StringUtil::Equals(value, "SUBQUERY")) {
|
828
|
-
return ExpressionClass::SUBQUERY;
|
829
|
-
} else if (StringUtil::Equals(value, "WINDOW")) {
|
830
|
-
return ExpressionClass::WINDOW;
|
831
|
-
} else if (StringUtil::Equals(value, "PARAMETER")) {
|
832
|
-
return ExpressionClass::PARAMETER;
|
833
|
-
} else if (StringUtil::Equals(value, "COLLATE")) {
|
834
|
-
return ExpressionClass::COLLATE;
|
835
|
-
} else if (StringUtil::Equals(value, "LAMBDA")) {
|
836
|
-
return ExpressionClass::LAMBDA;
|
837
|
-
} else if (StringUtil::Equals(value, "POSITIONAL_REFERENCE")) {
|
838
|
-
return ExpressionClass::POSITIONAL_REFERENCE;
|
839
|
-
} else if (StringUtil::Equals(value, "BETWEEN")) {
|
840
|
-
return ExpressionClass::BETWEEN;
|
841
|
-
} else if (StringUtil::Equals(value, "BOUND_AGGREGATE")) {
|
842
|
-
return ExpressionClass::BOUND_AGGREGATE;
|
843
|
-
} else if (StringUtil::Equals(value, "BOUND_CASE")) {
|
844
|
-
return ExpressionClass::BOUND_CASE;
|
845
|
-
} else if (StringUtil::Equals(value, "BOUND_CAST")) {
|
846
|
-
return ExpressionClass::BOUND_CAST;
|
847
|
-
} else if (StringUtil::Equals(value, "BOUND_COLUMN_REF")) {
|
848
|
-
return ExpressionClass::BOUND_COLUMN_REF;
|
849
|
-
} else if (StringUtil::Equals(value, "BOUND_COMPARISON")) {
|
850
|
-
return ExpressionClass::BOUND_COMPARISON;
|
851
|
-
} else if (StringUtil::Equals(value, "BOUND_CONJUNCTION")) {
|
852
|
-
return ExpressionClass::BOUND_CONJUNCTION;
|
853
|
-
} else if (StringUtil::Equals(value, "BOUND_CONSTANT")) {
|
854
|
-
return ExpressionClass::BOUND_CONSTANT;
|
855
|
-
} else if (StringUtil::Equals(value, "BOUND_DEFAULT")) {
|
856
|
-
return ExpressionClass::BOUND_DEFAULT;
|
857
|
-
} else if (StringUtil::Equals(value, "BOUND_FUNCTION")) {
|
858
|
-
return ExpressionClass::BOUND_FUNCTION;
|
859
|
-
} else if (StringUtil::Equals(value, "BOUND_OPERATOR")) {
|
860
|
-
return ExpressionClass::BOUND_OPERATOR;
|
861
|
-
} else if (StringUtil::Equals(value, "BOUND_PARAMETER")) {
|
862
|
-
return ExpressionClass::BOUND_PARAMETER;
|
863
|
-
} else if (StringUtil::Equals(value, "BOUND_REF")) {
|
864
|
-
return ExpressionClass::BOUND_REF;
|
865
|
-
} else if (StringUtil::Equals(value, "BOUND_SUBQUERY")) {
|
866
|
-
return ExpressionClass::BOUND_SUBQUERY;
|
867
|
-
} else if (StringUtil::Equals(value, "BOUND_WINDOW")) {
|
868
|
-
return ExpressionClass::BOUND_WINDOW;
|
869
|
-
} else if (StringUtil::Equals(value, "BOUND_BETWEEN")) {
|
870
|
-
return ExpressionClass::BOUND_BETWEEN;
|
871
|
-
} else if (StringUtil::Equals(value, "BOUND_UNNEST")) {
|
872
|
-
return ExpressionClass::BOUND_UNNEST;
|
873
|
-
} else if (StringUtil::Equals(value, "BOUND_LAMBDA")) {
|
874
|
-
return ExpressionClass::BOUND_LAMBDA;
|
875
|
-
} else if (StringUtil::Equals(value, "BOUND_EXPRESSION")) {
|
876
|
-
return ExpressionClass::BOUND_EXPRESSION;
|
877
|
-
} else {
|
878
|
-
throw NotImplementedException("Unrecognized ExpressionClass value");
|
879
|
-
}
|
880
|
-
}
|
881
|
-
|
882
|
-
template <>
|
883
|
-
const char *EnumSerializer::EnumToString(ExpressionClass value) {
|
884
|
-
switch (value) {
|
885
|
-
case ExpressionClass::INVALID:
|
886
|
-
return "INVALID";
|
887
|
-
case ExpressionClass::AGGREGATE:
|
888
|
-
return "AGGREGATE";
|
889
|
-
case ExpressionClass::CASE:
|
890
|
-
return "CASE";
|
891
|
-
case ExpressionClass::CAST:
|
892
|
-
return "CAST";
|
893
|
-
case ExpressionClass::COLUMN_REF:
|
894
|
-
return "COLUMN_REF";
|
895
|
-
case ExpressionClass::COMPARISON:
|
896
|
-
return "COMPARISON";
|
897
|
-
case ExpressionClass::CONJUNCTION:
|
898
|
-
return "CONJUNCTION";
|
899
|
-
case ExpressionClass::CONSTANT:
|
900
|
-
return "CONSTANT";
|
901
|
-
case ExpressionClass::DEFAULT:
|
902
|
-
return "DEFAULT";
|
903
|
-
case ExpressionClass::FUNCTION:
|
904
|
-
return "FUNCTION";
|
905
|
-
case ExpressionClass::OPERATOR:
|
906
|
-
return "OPERATOR";
|
907
|
-
case ExpressionClass::STAR:
|
908
|
-
return "STAR";
|
909
|
-
case ExpressionClass::SUBQUERY:
|
910
|
-
return "SUBQUERY";
|
911
|
-
case ExpressionClass::WINDOW:
|
912
|
-
return "WINDOW";
|
913
|
-
case ExpressionClass::PARAMETER:
|
914
|
-
return "PARAMETER";
|
915
|
-
case ExpressionClass::COLLATE:
|
916
|
-
return "COLLATE";
|
917
|
-
case ExpressionClass::LAMBDA:
|
918
|
-
return "LAMBDA";
|
919
|
-
case ExpressionClass::POSITIONAL_REFERENCE:
|
920
|
-
return "POSITIONAL_REFERENCE";
|
921
|
-
case ExpressionClass::BETWEEN:
|
922
|
-
return "BETWEEN";
|
923
|
-
case ExpressionClass::BOUND_AGGREGATE:
|
924
|
-
return "BOUND_AGGREGATE";
|
925
|
-
case ExpressionClass::BOUND_CASE:
|
926
|
-
return "BOUND_CASE";
|
927
|
-
case ExpressionClass::BOUND_CAST:
|
928
|
-
return "BOUND_CAST";
|
929
|
-
case ExpressionClass::BOUND_COLUMN_REF:
|
930
|
-
return "BOUND_COLUMN_REF";
|
931
|
-
case ExpressionClass::BOUND_COMPARISON:
|
932
|
-
return "BOUND_COMPARISON";
|
933
|
-
case ExpressionClass::BOUND_CONJUNCTION:
|
934
|
-
return "BOUND_CONJUNCTION";
|
935
|
-
case ExpressionClass::BOUND_CONSTANT:
|
936
|
-
return "BOUND_CONSTANT";
|
937
|
-
case ExpressionClass::BOUND_DEFAULT:
|
938
|
-
return "BOUND_DEFAULT";
|
939
|
-
case ExpressionClass::BOUND_FUNCTION:
|
940
|
-
return "BOUND_FUNCTION";
|
941
|
-
case ExpressionClass::BOUND_OPERATOR:
|
942
|
-
return "BOUND_OPERATOR";
|
943
|
-
case ExpressionClass::BOUND_PARAMETER:
|
944
|
-
return "BOUND_PARAMETER";
|
945
|
-
case ExpressionClass::BOUND_REF:
|
946
|
-
return "BOUND_REF";
|
947
|
-
case ExpressionClass::BOUND_SUBQUERY:
|
948
|
-
return "BOUND_SUBQUERY";
|
949
|
-
case ExpressionClass::BOUND_WINDOW:
|
950
|
-
return "BOUND_WINDOW";
|
951
|
-
case ExpressionClass::BOUND_BETWEEN:
|
952
|
-
return "BOUND_BETWEEN";
|
953
|
-
case ExpressionClass::BOUND_UNNEST:
|
954
|
-
return "BOUND_UNNEST";
|
955
|
-
case ExpressionClass::BOUND_LAMBDA:
|
956
|
-
return "BOUND_LAMBDA";
|
957
|
-
case ExpressionClass::BOUND_EXPRESSION:
|
958
|
-
return "BOUND_EXPRESSION";
|
959
|
-
default:
|
960
|
-
return "ExpressionClass::!!UNIMPLEMENTED_CASE!!";
|
961
|
-
}
|
962
|
-
}
|
963
|
-
|
964
|
-
//-----------------------------------------------
|
965
|
-
// SampleMethod
|
966
|
-
//-----------------------------------------------
|
967
|
-
template <>
|
968
|
-
SampleMethod EnumSerializer::StringToEnum(const char *value) {
|
969
|
-
if (StringUtil::Equals(value, "System")) {
|
970
|
-
return SampleMethod::SYSTEM_SAMPLE;
|
971
|
-
} else if (StringUtil::Equals(value, "Bernoulli")) {
|
972
|
-
return SampleMethod::BERNOULLI_SAMPLE;
|
973
|
-
} else if (StringUtil::Equals(value, "Reservoir")) {
|
974
|
-
return SampleMethod::RESERVOIR_SAMPLE;
|
975
|
-
} else {
|
976
|
-
throw NotImplementedException("Unrecognized sample method type \"%s\"", value);
|
977
|
-
}
|
978
|
-
}
|
979
|
-
|
980
|
-
template <>
|
981
|
-
const char *EnumSerializer::EnumToString(SampleMethod value) {
|
982
|
-
switch (value) {
|
983
|
-
case SampleMethod::SYSTEM_SAMPLE:
|
984
|
-
return "System";
|
985
|
-
case SampleMethod::BERNOULLI_SAMPLE:
|
986
|
-
return "Bernoulli";
|
987
|
-
case SampleMethod::RESERVOIR_SAMPLE:
|
988
|
-
return "Reservoir";
|
989
|
-
default:
|
990
|
-
return "Unknown";
|
991
|
-
}
|
992
|
-
}
|
993
|
-
|
994
|
-
//-----------------------------------------------
|
995
|
-
// LogicalType
|
996
|
-
//-----------------------------------------------
|
997
|
-
template <>
|
998
|
-
LogicalTypeId EnumSerializer::StringToEnum(const char *value) {
|
999
|
-
if (StringUtil::Equals(value, "BOOLEAN")) {
|
1000
|
-
return LogicalTypeId::BOOLEAN;
|
1001
|
-
} else if (StringUtil::Equals(value, "TINYINT")) {
|
1002
|
-
return LogicalTypeId::TINYINT;
|
1003
|
-
} else if (StringUtil::Equals(value, "SMALLINT")) {
|
1004
|
-
return LogicalTypeId::SMALLINT;
|
1005
|
-
} else if (StringUtil::Equals(value, "INTEGER")) {
|
1006
|
-
return LogicalTypeId::INTEGER;
|
1007
|
-
} else if (StringUtil::Equals(value, "BIGINT")) {
|
1008
|
-
return LogicalTypeId::BIGINT;
|
1009
|
-
} else if (StringUtil::Equals(value, "HUGEINT")) {
|
1010
|
-
return LogicalTypeId::HUGEINT;
|
1011
|
-
} else if (StringUtil::Equals(value, "UUID")) {
|
1012
|
-
return LogicalTypeId::UUID;
|
1013
|
-
} else if (StringUtil::Equals(value, "UTINYINT")) {
|
1014
|
-
return LogicalTypeId::UTINYINT;
|
1015
|
-
} else if (StringUtil::Equals(value, "USMALLINT")) {
|
1016
|
-
return LogicalTypeId::USMALLINT;
|
1017
|
-
} else if (StringUtil::Equals(value, "UINTEGER")) {
|
1018
|
-
return LogicalTypeId::UINTEGER;
|
1019
|
-
} else if (StringUtil::Equals(value, "UBIGINT")) {
|
1020
|
-
return LogicalTypeId::UBIGINT;
|
1021
|
-
} else if (StringUtil::Equals(value, "DATE")) {
|
1022
|
-
return LogicalTypeId::DATE;
|
1023
|
-
} else if (StringUtil::Equals(value, "TIME")) {
|
1024
|
-
return LogicalTypeId::TIME;
|
1025
|
-
} else if (StringUtil::Equals(value, "TIMESTAMP")) {
|
1026
|
-
return LogicalTypeId::TIMESTAMP;
|
1027
|
-
} else if (StringUtil::Equals(value, "TIMESTAMP_MS")) {
|
1028
|
-
return LogicalTypeId::TIMESTAMP_MS;
|
1029
|
-
} else if (StringUtil::Equals(value, "TIMESTAMP_NS")) {
|
1030
|
-
return LogicalTypeId::TIMESTAMP_NS;
|
1031
|
-
} else if (StringUtil::Equals(value, "TIMESTAMP_S")) {
|
1032
|
-
return LogicalTypeId::TIMESTAMP_SEC;
|
1033
|
-
} else if (StringUtil::Equals(value, "TIMESTAMP WITH TIME ZONE")) {
|
1034
|
-
return LogicalTypeId::TIMESTAMP_TZ;
|
1035
|
-
} else if (StringUtil::Equals(value, "TIME WITH TIME ZONE")) {
|
1036
|
-
return LogicalTypeId::TIME_TZ;
|
1037
|
-
} else if (StringUtil::Equals(value, "FLOAT")) {
|
1038
|
-
return LogicalTypeId::FLOAT;
|
1039
|
-
} else if (StringUtil::Equals(value, "DOUBLE")) {
|
1040
|
-
return LogicalTypeId::DOUBLE;
|
1041
|
-
} else if (StringUtil::Equals(value, "DECIMAL")) {
|
1042
|
-
return LogicalTypeId::DECIMAL;
|
1043
|
-
} else if (StringUtil::Equals(value, "VARCHAR")) {
|
1044
|
-
return LogicalTypeId::VARCHAR;
|
1045
|
-
} else if (StringUtil::Equals(value, "BLOB")) {
|
1046
|
-
return LogicalTypeId::BLOB;
|
1047
|
-
} else if (StringUtil::Equals(value, "CHAR")) {
|
1048
|
-
return LogicalTypeId::CHAR;
|
1049
|
-
} else if (StringUtil::Equals(value, "INTERVAL")) {
|
1050
|
-
return LogicalTypeId::INTERVAL;
|
1051
|
-
} else if (StringUtil::Equals(value, "NULL")) {
|
1052
|
-
return LogicalTypeId::SQLNULL;
|
1053
|
-
} else if (StringUtil::Equals(value, "ANY")) {
|
1054
|
-
return LogicalTypeId::ANY;
|
1055
|
-
} else if (StringUtil::Equals(value, "VALIDITY")) {
|
1056
|
-
return LogicalTypeId::VALIDITY;
|
1057
|
-
} else if (StringUtil::Equals(value, "STRUCT")) {
|
1058
|
-
return LogicalTypeId::STRUCT;
|
1059
|
-
} else if (StringUtil::Equals(value, "LIST")) {
|
1060
|
-
return LogicalTypeId::LIST;
|
1061
|
-
} else if (StringUtil::Equals(value, "MAP")) {
|
1062
|
-
return LogicalTypeId::MAP;
|
1063
|
-
} else if (StringUtil::Equals(value, "POINTER")) {
|
1064
|
-
return LogicalTypeId::POINTER;
|
1065
|
-
} else if (StringUtil::Equals(value, "TABLE")) {
|
1066
|
-
return LogicalTypeId::TABLE;
|
1067
|
-
} else if (StringUtil::Equals(value, "LAMBDA")) {
|
1068
|
-
return LogicalTypeId::LAMBDA;
|
1069
|
-
} else if (StringUtil::Equals(value, "INVALID")) {
|
1070
|
-
return LogicalTypeId::INVALID;
|
1071
|
-
} else if (StringUtil::Equals(value, "UNION")) {
|
1072
|
-
return LogicalTypeId::UNION;
|
1073
|
-
} else if (StringUtil::Equals(value, "UNKNOWN")) {
|
1074
|
-
return LogicalTypeId::UNKNOWN;
|
1075
|
-
} else if (StringUtil::Equals(value, "ENUM")) {
|
1076
|
-
return LogicalTypeId::ENUM;
|
1077
|
-
} else if (StringUtil::Equals(value, "AGGREGATE_STATE")) {
|
1078
|
-
return LogicalTypeId::AGGREGATE_STATE;
|
1079
|
-
} else if (StringUtil::Equals(value, "USER")) {
|
1080
|
-
return LogicalTypeId::USER;
|
1081
|
-
} else if (StringUtil::Equals(value, "BIT")) {
|
1082
|
-
return LogicalTypeId::BIT;
|
1083
|
-
} else {
|
1084
|
-
throw NotImplementedException(
|
1085
|
-
"Unrecognized type LogicalTypeId in EnumSerializer::EnumSerializer::StringToEnum");
|
1086
|
-
}
|
1087
|
-
}
|
1088
|
-
|
1089
|
-
template <>
|
1090
|
-
const char *EnumSerializer::EnumToString(LogicalTypeId value) {
|
1091
|
-
switch (value) {
|
1092
|
-
case LogicalTypeId::BOOLEAN:
|
1093
|
-
return "BOOLEAN";
|
1094
|
-
case LogicalTypeId::TINYINT:
|
1095
|
-
return "TINYINT";
|
1096
|
-
case LogicalTypeId::SMALLINT:
|
1097
|
-
return "SMALLINT";
|
1098
|
-
case LogicalTypeId::INTEGER:
|
1099
|
-
return "INTEGER";
|
1100
|
-
case LogicalTypeId::BIGINT:
|
1101
|
-
return "BIGINT";
|
1102
|
-
case LogicalTypeId::HUGEINT:
|
1103
|
-
return "HUGEINT";
|
1104
|
-
case LogicalTypeId::UUID:
|
1105
|
-
return "UUID";
|
1106
|
-
case LogicalTypeId::UTINYINT:
|
1107
|
-
return "UTINYINT";
|
1108
|
-
case LogicalTypeId::USMALLINT:
|
1109
|
-
return "USMALLINT";
|
1110
|
-
case LogicalTypeId::UINTEGER:
|
1111
|
-
return "UINTEGER";
|
1112
|
-
case LogicalTypeId::UBIGINT:
|
1113
|
-
return "UBIGINT";
|
1114
|
-
case LogicalTypeId::DATE:
|
1115
|
-
return "DATE";
|
1116
|
-
case LogicalTypeId::TIME:
|
1117
|
-
return "TIME";
|
1118
|
-
case LogicalTypeId::TIMESTAMP:
|
1119
|
-
return "TIMESTAMP";
|
1120
|
-
case LogicalTypeId::TIMESTAMP_MS:
|
1121
|
-
return "TIMESTAMP_MS";
|
1122
|
-
case LogicalTypeId::TIMESTAMP_NS:
|
1123
|
-
return "TIMESTAMP_NS";
|
1124
|
-
case LogicalTypeId::TIMESTAMP_SEC:
|
1125
|
-
return "TIMESTAMP_S";
|
1126
|
-
case LogicalTypeId::TIMESTAMP_TZ:
|
1127
|
-
return "TIMESTAMP WITH TIME ZONE";
|
1128
|
-
case LogicalTypeId::TIME_TZ:
|
1129
|
-
return "TIME WITH TIME ZONE";
|
1130
|
-
case LogicalTypeId::FLOAT:
|
1131
|
-
return "FLOAT";
|
1132
|
-
case LogicalTypeId::DOUBLE:
|
1133
|
-
return "DOUBLE";
|
1134
|
-
case LogicalTypeId::DECIMAL:
|
1135
|
-
return "DECIMAL";
|
1136
|
-
case LogicalTypeId::VARCHAR:
|
1137
|
-
return "VARCHAR";
|
1138
|
-
case LogicalTypeId::BLOB:
|
1139
|
-
return "BLOB";
|
1140
|
-
case LogicalTypeId::CHAR:
|
1141
|
-
return "CHAR";
|
1142
|
-
case LogicalTypeId::INTERVAL:
|
1143
|
-
return "INTERVAL";
|
1144
|
-
case LogicalTypeId::SQLNULL:
|
1145
|
-
return "NULL";
|
1146
|
-
case LogicalTypeId::ANY:
|
1147
|
-
return "ANY";
|
1148
|
-
case LogicalTypeId::VALIDITY:
|
1149
|
-
return "VALIDITY";
|
1150
|
-
case LogicalTypeId::STRUCT:
|
1151
|
-
return "STRUCT";
|
1152
|
-
case LogicalTypeId::LIST:
|
1153
|
-
return "LIST";
|
1154
|
-
case LogicalTypeId::MAP:
|
1155
|
-
return "MAP";
|
1156
|
-
case LogicalTypeId::POINTER:
|
1157
|
-
return "POINTER";
|
1158
|
-
case LogicalTypeId::TABLE:
|
1159
|
-
return "TABLE";
|
1160
|
-
case LogicalTypeId::LAMBDA:
|
1161
|
-
return "LAMBDA";
|
1162
|
-
case LogicalTypeId::INVALID:
|
1163
|
-
return "INVALID";
|
1164
|
-
case LogicalTypeId::UNION:
|
1165
|
-
return "UNION";
|
1166
|
-
case LogicalTypeId::UNKNOWN:
|
1167
|
-
return "UNKNOWN";
|
1168
|
-
case LogicalTypeId::ENUM:
|
1169
|
-
return "ENUM";
|
1170
|
-
case LogicalTypeId::AGGREGATE_STATE:
|
1171
|
-
return "AGGREGATE_STATE";
|
1172
|
-
case LogicalTypeId::USER:
|
1173
|
-
return "USER";
|
1174
|
-
case LogicalTypeId::BIT:
|
1175
|
-
return "BIT";
|
1176
|
-
}
|
1177
|
-
return "UNDEFINED";
|
1178
|
-
}
|
1179
|
-
|
1180
|
-
} // namespace duckdb
|