duckdb 0.7.2-dev654.0 → 0.7.2-dev832.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.
Files changed (161) hide show
  1. package/binding.gyp +2 -0
  2. package/lib/duckdb.d.ts +12 -1
  3. package/lib/duckdb.js +19 -0
  4. package/package.json +1 -1
  5. package/src/duckdb/extension/json/include/json_common.hpp +1 -0
  6. package/src/duckdb/extension/json/include/json_functions.hpp +2 -0
  7. package/src/duckdb/extension/json/include/json_serializer.hpp +77 -0
  8. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +147 -0
  9. package/src/duckdb/extension/json/json_functions.cpp +12 -4
  10. package/src/duckdb/extension/json/json_scan.cpp +2 -2
  11. package/src/duckdb/extension/json/json_serializer.cpp +217 -0
  12. package/src/duckdb/src/common/enums/expression_type.cpp +8 -222
  13. package/src/duckdb/src/common/enums/join_type.cpp +3 -22
  14. package/src/duckdb/src/common/exception.cpp +2 -2
  15. package/src/duckdb/src/common/serializer/enum_serializer.cpp +1172 -0
  16. package/src/duckdb/src/common/types/column_data_collection_segment.cpp +11 -6
  17. package/src/duckdb/src/common/types/value.cpp +117 -0
  18. package/src/duckdb/src/common/types/vector.cpp +140 -1
  19. package/src/duckdb/src/common/types.cpp +166 -89
  20. package/src/duckdb/src/common/vector_operations/vector_cast.cpp +2 -1
  21. package/src/duckdb/src/execution/aggregate_hashtable.cpp +10 -5
  22. package/src/duckdb/src/execution/expression_executor/execute_cast.cpp +2 -1
  23. package/src/duckdb/src/execution/index/art/art.cpp +5 -5
  24. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +3 -0
  25. package/src/duckdb/src/execution/partitionable_hashtable.cpp +14 -2
  26. package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
  27. package/src/duckdb/src/function/cast/enum_casts.cpp +25 -3
  28. package/src/duckdb/src/function/cast/list_casts.cpp +17 -4
  29. package/src/duckdb/src/function/cast/map_cast.cpp +5 -2
  30. package/src/duckdb/src/function/cast/string_cast.cpp +36 -10
  31. package/src/duckdb/src/function/cast/struct_cast.cpp +23 -3
  32. package/src/duckdb/src/function/cast/union_casts.cpp +33 -7
  33. package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +243 -0
  34. package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +79 -0
  35. package/src/duckdb/src/function/scalar/string/regexp.cpp +21 -80
  36. package/src/duckdb/src/function/table/arrow_conversion.cpp +7 -1
  37. package/src/duckdb/src/function/table/table_scan.cpp +1 -1
  38. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  39. package/src/duckdb/src/include/duckdb/common/enums/aggregate_handling.hpp +2 -0
  40. package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +2 -3
  41. package/src/duckdb/src/include/duckdb/common/enums/joinref_type.hpp +2 -0
  42. package/src/duckdb/src/include/duckdb/common/enums/order_type.hpp +2 -0
  43. package/src/duckdb/src/include/duckdb/common/enums/set_operation_type.hpp +2 -1
  44. package/src/duckdb/src/include/duckdb/common/exception.hpp +40 -9
  45. package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +45 -0
  46. package/src/duckdb/src/include/duckdb/common/preserved_error.hpp +3 -0
  47. package/src/duckdb/src/include/duckdb/common/serializer/enum_serializer.hpp +113 -0
  48. package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +336 -0
  49. package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +268 -0
  50. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +126 -0
  51. package/src/duckdb/src/include/duckdb/common/string_util.hpp +12 -0
  52. package/src/duckdb/src/include/duckdb/common/types/value.hpp +2 -0
  53. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +3 -0
  54. package/src/duckdb/src/include/duckdb/common/types.hpp +8 -2
  55. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +1 -0
  56. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +2 -2
  57. package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +3 -0
  58. package/src/duckdb/src/include/duckdb/function/cast/bound_cast_data.hpp +84 -0
  59. package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +2 -2
  60. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +28 -64
  61. package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +81 -1
  62. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +1 -0
  63. package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +2 -0
  64. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +3 -0
  65. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +2 -0
  66. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +5 -0
  67. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +2 -0
  68. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +2 -0
  69. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +2 -0
  70. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +2 -0
  71. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +2 -0
  72. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +3 -0
  73. package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +1 -0
  74. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +2 -0
  75. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +2 -0
  76. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +2 -0
  77. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +2 -0
  78. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +2 -0
  79. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +2 -0
  80. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +2 -0
  81. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +5 -0
  82. package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +2 -0
  83. package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -0
  84. package/src/duckdb/src/include/duckdb/parser/query_node/recursive_cte_node.hpp +3 -0
  85. package/src/duckdb/src/include/duckdb/parser/query_node/select_node.hpp +5 -0
  86. package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +3 -0
  87. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +11 -1
  88. package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +24 -1
  89. package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +2 -1
  90. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +6 -1
  91. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +4 -0
  92. package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -0
  93. package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +3 -0
  94. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +3 -0
  95. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +9 -0
  96. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +3 -0
  97. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +3 -0
  98. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +3 -1
  99. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +2 -2
  100. package/src/duckdb/src/include/duckdb/storage/index.hpp +4 -3
  101. package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +2 -2
  102. package/src/duckdb/src/main/extension/extension_install.cpp +7 -2
  103. package/src/duckdb/src/optimizer/deliminator.cpp +1 -1
  104. package/src/duckdb/src/optimizer/filter_combiner.cpp +1 -1
  105. package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +3 -3
  106. package/src/duckdb/src/optimizer/rule/move_constants.cpp +2 -2
  107. package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +1 -1
  108. package/src/duckdb/src/parser/common_table_expression_info.cpp +19 -0
  109. package/src/duckdb/src/parser/expression/between_expression.cpp +17 -0
  110. package/src/duckdb/src/parser/expression/case_expression.cpp +28 -0
  111. package/src/duckdb/src/parser/expression/cast_expression.cpp +17 -0
  112. package/src/duckdb/src/parser/expression/collate_expression.cpp +16 -0
  113. package/src/duckdb/src/parser/expression/columnref_expression.cpp +15 -0
  114. package/src/duckdb/src/parser/expression/comparison_expression.cpp +16 -0
  115. package/src/duckdb/src/parser/expression/conjunction_expression.cpp +15 -0
  116. package/src/duckdb/src/parser/expression/constant_expression.cpp +14 -0
  117. package/src/duckdb/src/parser/expression/default_expression.cpp +7 -0
  118. package/src/duckdb/src/parser/expression/function_expression.cpp +35 -0
  119. package/src/duckdb/src/parser/expression/lambda_expression.cpp +16 -0
  120. package/src/duckdb/src/parser/expression/operator_expression.cpp +15 -0
  121. package/src/duckdb/src/parser/expression/parameter_expression.cpp +15 -0
  122. package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +14 -0
  123. package/src/duckdb/src/parser/expression/star_expression.cpp +20 -0
  124. package/src/duckdb/src/parser/expression/subquery_expression.cpp +20 -0
  125. package/src/duckdb/src/parser/expression/window_expression.cpp +43 -0
  126. package/src/duckdb/src/parser/parsed_data/sample_options.cpp +22 -10
  127. package/src/duckdb/src/parser/parsed_expression.cpp +72 -0
  128. package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +21 -0
  129. package/src/duckdb/src/parser/query_node/select_node.cpp +31 -0
  130. package/src/duckdb/src/parser/query_node/set_operation_node.cpp +17 -0
  131. package/src/duckdb/src/parser/query_node.cpp +50 -0
  132. package/src/duckdb/src/parser/result_modifier.cpp +78 -0
  133. package/src/duckdb/src/parser/statement/select_statement.cpp +12 -0
  134. package/src/duckdb/src/parser/tableref/basetableref.cpp +21 -0
  135. package/src/duckdb/src/parser/tableref/emptytableref.cpp +4 -0
  136. package/src/duckdb/src/parser/tableref/expressionlistref.cpp +17 -0
  137. package/src/duckdb/src/parser/tableref/joinref.cpp +25 -0
  138. package/src/duckdb/src/parser/tableref/pivotref.cpp +53 -0
  139. package/src/duckdb/src/parser/tableref/subqueryref.cpp +15 -0
  140. package/src/duckdb/src/parser/tableref/table_function.cpp +17 -0
  141. package/src/duckdb/src/parser/tableref.cpp +46 -0
  142. package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +1 -1
  143. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +1 -1
  144. package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +1 -1
  145. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +1 -1
  146. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +4 -0
  147. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +3 -1
  148. package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +1 -1
  149. package/src/duckdb/src/planner/expression/bound_expression.cpp +4 -0
  150. package/src/duckdb/src/storage/data_table.cpp +15 -13
  151. package/src/duckdb/src/storage/index.cpp +12 -1
  152. package/src/duckdb/src/storage/local_storage.cpp +20 -23
  153. package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +0 -1
  154. package/src/duckdb/third_party/re2/re2/re2.cc +9 -0
  155. package/src/duckdb/third_party/re2/re2/re2.h +2 -0
  156. package/src/duckdb/ub_extension_json_json_functions.cpp +2 -0
  157. package/src/duckdb/ub_src_common_serializer.cpp +2 -0
  158. package/src/duckdb/ub_src_function_scalar_string_regexp.cpp +4 -0
  159. package/src/duckdb/ub_src_parser.cpp +2 -0
  160. package/src/utils.cpp +12 -0
  161. package/test/extension.test.ts +44 -26
@@ -1,150 +1,17 @@
1
1
  #include "duckdb/common/enums/expression_type.hpp"
2
2
 
3
3
  #include "duckdb/common/exception.hpp"
4
+ #include "duckdb/common/serializer/enum_serializer.hpp"
4
5
 
5
6
  namespace duckdb {
6
7
 
7
- // LCOV_EXCL_START
8
8
  string ExpressionTypeToString(ExpressionType type) {
9
- switch (type) {
10
- case ExpressionType::OPERATOR_CAST:
11
- return "CAST";
12
- case ExpressionType::OPERATOR_NOT:
13
- return "NOT";
14
- case ExpressionType::OPERATOR_IS_NULL:
15
- return "IS_NULL";
16
- case ExpressionType::OPERATOR_IS_NOT_NULL:
17
- return "IS_NOT_NULL";
18
- case ExpressionType::COMPARE_EQUAL:
19
- return "EQUAL";
20
- case ExpressionType::COMPARE_NOTEQUAL:
21
- return "NOTEQUAL";
22
- case ExpressionType::COMPARE_LESSTHAN:
23
- return "LESSTHAN";
24
- case ExpressionType::COMPARE_GREATERTHAN:
25
- return "GREATERTHAN";
26
- case ExpressionType::COMPARE_LESSTHANOREQUALTO:
27
- return "LESSTHANOREQUALTO";
28
- case ExpressionType::COMPARE_GREATERTHANOREQUALTO:
29
- return "GREATERTHANOREQUALTO";
30
- case ExpressionType::COMPARE_IN:
31
- return "IN";
32
- case ExpressionType::COMPARE_DISTINCT_FROM:
33
- return "DISTINCT_FROM";
34
- case ExpressionType::COMPARE_NOT_DISTINCT_FROM:
35
- return "NOT_DISTINCT_FROM";
36
- case ExpressionType::CONJUNCTION_AND:
37
- return "AND";
38
- case ExpressionType::CONJUNCTION_OR:
39
- return "OR";
40
- case ExpressionType::VALUE_CONSTANT:
41
- return "CONSTANT";
42
- case ExpressionType::VALUE_PARAMETER:
43
- return "PARAMETER";
44
- case ExpressionType::VALUE_TUPLE:
45
- return "TUPLE";
46
- case ExpressionType::VALUE_TUPLE_ADDRESS:
47
- return "TUPLE_ADDRESS";
48
- case ExpressionType::VALUE_NULL:
49
- return "NULL";
50
- case ExpressionType::VALUE_VECTOR:
51
- return "VECTOR";
52
- case ExpressionType::VALUE_SCALAR:
53
- return "SCALAR";
54
- case ExpressionType::AGGREGATE:
55
- return "AGGREGATE";
56
- case ExpressionType::WINDOW_AGGREGATE:
57
- return "WINDOW_AGGREGATE";
58
- case ExpressionType::WINDOW_RANK:
59
- return "RANK";
60
- case ExpressionType::WINDOW_RANK_DENSE:
61
- return "RANK_DENSE";
62
- case ExpressionType::WINDOW_PERCENT_RANK:
63
- return "PERCENT_RANK";
64
- case ExpressionType::WINDOW_ROW_NUMBER:
65
- return "ROW_NUMBER";
66
- case ExpressionType::WINDOW_FIRST_VALUE:
67
- return "FIRST_VALUE";
68
- case ExpressionType::WINDOW_LAST_VALUE:
69
- return "LAST_VALUE";
70
- case ExpressionType::WINDOW_NTH_VALUE:
71
- return "NTH_VALUE";
72
- case ExpressionType::WINDOW_CUME_DIST:
73
- return "CUME_DIST";
74
- case ExpressionType::WINDOW_LEAD:
75
- return "LEAD";
76
- case ExpressionType::WINDOW_LAG:
77
- return "LAG";
78
- case ExpressionType::WINDOW_NTILE:
79
- return "NTILE";
80
- case ExpressionType::FUNCTION:
81
- return "FUNCTION";
82
- case ExpressionType::CASE_EXPR:
83
- return "CASE";
84
- case ExpressionType::OPERATOR_NULLIF:
85
- return "NULLIF";
86
- case ExpressionType::OPERATOR_COALESCE:
87
- return "COALESCE";
88
- case ExpressionType::ARRAY_EXTRACT:
89
- return "ARRAY_EXTRACT";
90
- case ExpressionType::ARRAY_SLICE:
91
- return "ARRAY_SLICE";
92
- case ExpressionType::STRUCT_EXTRACT:
93
- return "STRUCT_EXTRACT";
94
- case ExpressionType::SUBQUERY:
95
- return "SUBQUERY";
96
- case ExpressionType::STAR:
97
- return "STAR";
98
- case ExpressionType::PLACEHOLDER:
99
- return "PLACEHOLDER";
100
- case ExpressionType::COLUMN_REF:
101
- return "COLUMN_REF";
102
- case ExpressionType::FUNCTION_REF:
103
- return "FUNCTION_REF";
104
- case ExpressionType::TABLE_REF:
105
- return "TABLE_REF";
106
- case ExpressionType::CAST:
107
- return "CAST";
108
- case ExpressionType::COMPARE_NOT_IN:
109
- return "COMPARE_NOT_IN";
110
- case ExpressionType::COMPARE_BETWEEN:
111
- return "COMPARE_BETWEEN";
112
- case ExpressionType::COMPARE_NOT_BETWEEN:
113
- return "COMPARE_NOT_BETWEEN";
114
- case ExpressionType::VALUE_DEFAULT:
115
- return "VALUE_DEFAULT";
116
- case ExpressionType::BOUND_REF:
117
- return "BOUND_REF";
118
- case ExpressionType::BOUND_COLUMN_REF:
119
- return "BOUND_COLUMN_REF";
120
- case ExpressionType::BOUND_FUNCTION:
121
- return "BOUND_FUNCTION";
122
- case ExpressionType::BOUND_AGGREGATE:
123
- return "BOUND_AGGREGATE";
124
- case ExpressionType::GROUPING_FUNCTION:
125
- return "GROUPING";
126
- case ExpressionType::ARRAY_CONSTRUCTOR:
127
- return "ARRAY_CONSTRUCTOR";
128
- case ExpressionType::TABLE_STAR:
129
- return "TABLE_STAR";
130
- case ExpressionType::BOUND_UNNEST:
131
- return "BOUND_UNNEST";
132
- case ExpressionType::COLLATE:
133
- return "COLLATE";
134
- case ExpressionType::POSITIONAL_REFERENCE:
135
- return "POSITIONAL_REFERENCE";
136
- case ExpressionType::BOUND_LAMBDA_REF:
137
- return "BOUND_LAMBDA_REF";
138
- case ExpressionType::LAMBDA:
139
- return "LAMBDA";
140
- case ExpressionType::ARROW:
141
- return "ARROW";
142
- case ExpressionType::INVALID:
143
- break;
144
- }
145
- return "INVALID";
9
+ return EnumSerializer::EnumToString(type);
10
+ }
11
+
12
+ string ExpressionClassToString(ExpressionClass type) {
13
+ return EnumSerializer::EnumToString(type);
146
14
  }
147
- // LCOV_EXCL_STOP
148
15
 
149
16
  string ExpressionTypeToOperator(ExpressionType type) {
150
17
  switch (type) {
@@ -173,7 +40,7 @@ string ExpressionTypeToOperator(ExpressionType type) {
173
40
  }
174
41
  }
175
42
 
176
- ExpressionType NegateComparisionExpression(ExpressionType type) {
43
+ ExpressionType NegateComparisonExpression(ExpressionType type) {
177
44
  ExpressionType negated_type = ExpressionType::INVALID;
178
45
  switch (type) {
179
46
  case ExpressionType::COMPARE_EQUAL:
@@ -200,7 +67,7 @@ ExpressionType NegateComparisionExpression(ExpressionType type) {
200
67
  return negated_type;
201
68
  }
202
69
 
203
- ExpressionType FlipComparisionExpression(ExpressionType type) {
70
+ ExpressionType FlipComparisonExpression(ExpressionType type) {
204
71
  ExpressionType flipped_type = ExpressionType::INVALID;
205
72
  switch (type) {
206
73
  case ExpressionType::COMPARE_NOT_DISTINCT_FROM:
@@ -244,85 +111,4 @@ ExpressionType OperatorToExpressionType(const string &op) {
244
111
  return ExpressionType::INVALID;
245
112
  }
246
113
 
247
- string ExpressionClassToString(ExpressionClass type) {
248
- switch (type) {
249
- case ExpressionClass::INVALID:
250
- return "INVALID";
251
- case ExpressionClass::AGGREGATE:
252
- return "AGGREGATE";
253
- case ExpressionClass::CASE:
254
- return "CASE";
255
- case ExpressionClass::CAST:
256
- return "CAST";
257
- case ExpressionClass::COLUMN_REF:
258
- return "COLUMN_REF";
259
- case ExpressionClass::COMPARISON:
260
- return "COMPARISON";
261
- case ExpressionClass::CONJUNCTION:
262
- return "CONJUNCTION";
263
- case ExpressionClass::CONSTANT:
264
- return "CONSTANT";
265
- case ExpressionClass::DEFAULT:
266
- return "DEFAULT";
267
- case ExpressionClass::FUNCTION:
268
- return "FUNCTION";
269
- case ExpressionClass::OPERATOR:
270
- return "OPERATOR";
271
- case ExpressionClass::STAR:
272
- return "STAR";
273
- case ExpressionClass::SUBQUERY:
274
- return "SUBQUERY";
275
- case ExpressionClass::WINDOW:
276
- return "WINDOW";
277
- case ExpressionClass::PARAMETER:
278
- return "PARAMETER";
279
- case ExpressionClass::COLLATE:
280
- return "COLLATE";
281
- case ExpressionClass::LAMBDA:
282
- return "LAMBDA";
283
- case ExpressionClass::POSITIONAL_REFERENCE:
284
- return "POSITIONAL_REFERENCE";
285
- case ExpressionClass::BETWEEN:
286
- return "BETWEEN";
287
- case ExpressionClass::BOUND_AGGREGATE:
288
- return "BOUND_AGGREGATE";
289
- case ExpressionClass::BOUND_CASE:
290
- return "BOUND_CASE";
291
- case ExpressionClass::BOUND_CAST:
292
- return "BOUND_CAST";
293
- case ExpressionClass::BOUND_COLUMN_REF:
294
- return "BOUND_COLUMN_REF";
295
- case ExpressionClass::BOUND_COMPARISON:
296
- return "BOUND_COMPARISON";
297
- case ExpressionClass::BOUND_CONJUNCTION:
298
- return "BOUND_CONJUNCTION";
299
- case ExpressionClass::BOUND_CONSTANT:
300
- return "BOUND_CONSTANT";
301
- case ExpressionClass::BOUND_DEFAULT:
302
- return "BOUND_DEFAULT";
303
- case ExpressionClass::BOUND_FUNCTION:
304
- return "BOUND_FUNCTION";
305
- case ExpressionClass::BOUND_OPERATOR:
306
- return "BOUND_OPERATOR";
307
- case ExpressionClass::BOUND_PARAMETER:
308
- return "BOUND_PARAMETER";
309
- case ExpressionClass::BOUND_REF:
310
- return "BOUND_REF";
311
- case ExpressionClass::BOUND_SUBQUERY:
312
- return "BOUND_SUBQUERY";
313
- case ExpressionClass::BOUND_WINDOW:
314
- return "BOUND_WINDOW";
315
- case ExpressionClass::BOUND_BETWEEN:
316
- return "BOUND_BETWEEN";
317
- case ExpressionClass::BOUND_UNNEST:
318
- return "BOUND_UNNEST";
319
- case ExpressionClass::BOUND_LAMBDA:
320
- return "BOUND_LAMBDA";
321
- case ExpressionClass::BOUND_EXPRESSION:
322
- return "BOUND_EXPRESSION";
323
- default:
324
- return "ExpressionClass::!!UNIMPLEMENTED_CASE!!";
325
- }
326
- }
327
-
328
114
  } // namespace duckdb
@@ -1,30 +1,11 @@
1
1
  #include "duckdb/common/enums/join_type.hpp"
2
+ #include "duckdb/common/serializer/enum_serializer.hpp"
2
3
 
3
4
  namespace duckdb {
4
5
 
5
6
  string JoinTypeToString(JoinType type) {
6
- switch (type) {
7
- case JoinType::LEFT:
8
- return "LEFT";
9
- case JoinType::RIGHT:
10
- return "RIGHT";
11
- case JoinType::INNER:
12
- return "INNER";
13
- case JoinType::OUTER:
14
- return "FULL";
15
- case JoinType::SEMI:
16
- return "SEMI";
17
- case JoinType::ANTI:
18
- return "ANTI";
19
- case JoinType::SINGLE:
20
- return "SINGLE";
21
- case JoinType::MARK:
22
- return "MARK";
23
- case JoinType::INVALID: // LCOV_EXCL_START
24
- break;
25
- }
26
- return "INVALID";
27
- } // LCOV_EXCL_STOP
7
+ return EnumSerializer::EnumToString(type);
8
+ }
28
9
 
29
10
  bool IsLeftOuterJoin(JoinType type) {
30
11
  return type == JoinType::LEFT || type == JoinType::OUTER;
@@ -149,6 +149,7 @@ const HTTPException &Exception::AsHTTPException() const {
149
149
  D_ASSERT(type == ExceptionType::HTTP);
150
150
  const auto &e = static_cast<const HTTPException *>(this);
151
151
  D_ASSERT(e->GetStatusCode() != 0);
152
+ D_ASSERT(e->GetHeaders().size() > 0);
152
153
  return *e;
153
154
  }
154
155
 
@@ -202,8 +203,7 @@ void Exception::ThrowAsTypeWithMessage(ExceptionType type, const string &message
202
203
  case ExceptionType::DEPENDENCY:
203
204
  throw DependencyException(message);
204
205
  case ExceptionType::HTTP: {
205
- auto exc = original->AsHTTPException();
206
- throw HTTPException(exc.GetStatusCode(), exc.GetResponse(), exc.what());
206
+ original->AsHTTPException().Throw();
207
207
  }
208
208
  default:
209
209
  throw Exception(type, message);