duckdb 0.8.2-dev1968.0 → 0.8.2-dev2068.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 (213) hide show
  1. package/configure.py +7 -2
  2. package/package.json +1 -1
  3. package/src/duckdb/src/catalog/catalog.cpp +1 -1
  4. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +17 -41
  5. package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +2 -10
  6. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +4 -14
  7. package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +11 -28
  8. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +11 -38
  9. package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +11 -27
  10. package/src/duckdb/src/catalog/catalog_entry.cpp +25 -1
  11. package/src/duckdb/src/common/adbc/adbc.cpp +18 -4
  12. package/src/duckdb/src/common/enum_util.cpp +159 -0
  13. package/src/duckdb/src/common/extra_type_info.cpp +1 -2
  14. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +3 -0
  15. package/src/duckdb/src/common/serializer/binary_serializer.cpp +4 -4
  16. package/src/duckdb/src/common/types/column/column_data_collection.cpp +43 -0
  17. package/src/duckdb/src/common/types/vector.cpp +1 -1
  18. package/src/duckdb/src/common/types.cpp +0 -12
  19. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
  20. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  21. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +1 -2
  22. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +1 -4
  23. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +2 -5
  24. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -6
  25. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +2 -11
  26. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +2 -5
  27. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +14 -0
  28. package/src/duckdb/src/include/duckdb/common/assert.hpp +1 -1
  29. package/src/duckdb/src/include/duckdb/common/constants.hpp +2 -0
  30. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +32 -0
  31. package/src/duckdb/src/include/duckdb/common/enums/index_type.hpp +1 -1
  32. package/src/duckdb/src/include/duckdb/common/index_vector.hpp +12 -0
  33. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +28 -4
  34. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +12 -5
  35. package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +110 -0
  36. package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +46 -1
  37. package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +23 -21
  38. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +12 -4
  39. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +3 -0
  40. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +3 -3
  41. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +3 -0
  42. package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +3 -0
  43. package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +3 -0
  44. package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +6 -5
  45. package/src/duckdb/src/include/duckdb/parser/column_list.hpp +4 -0
  46. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +5 -0
  47. package/src/duckdb/src/include/duckdb/parser/constraints/check_constraint.hpp +3 -0
  48. package/src/duckdb/src/include/duckdb/parser/constraints/foreign_key_constraint.hpp +6 -0
  49. package/src/duckdb/src/include/duckdb/parser/constraints/not_null_constraint.hpp +3 -0
  50. package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +6 -0
  51. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
  52. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
  53. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
  54. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
  55. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
  56. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
  57. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
  58. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
  59. package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +1 -1
  60. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
  61. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
  62. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
  63. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
  64. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
  65. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
  66. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
  67. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
  68. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +12 -1
  69. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +66 -2
  70. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +8 -1
  71. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +8 -1
  72. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +4 -1
  73. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +9 -2
  74. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +3 -0
  75. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +3 -0
  76. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_sequence_info.hpp +3 -0
  77. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +3 -0
  78. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +3 -0
  79. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +3 -0
  80. package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +7 -0
  81. package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +7 -0
  82. package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +7 -0
  83. package/src/duckdb/src/include/duckdb/parser/parsed_data/load_info.hpp +13 -3
  84. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +22 -0
  85. package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +10 -0
  86. package/src/duckdb/src/include/duckdb/parser/parsed_data/show_select_info.hpp +7 -0
  87. package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +10 -0
  88. package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +10 -0
  89. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +0 -8
  90. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +6 -0
  91. package/src/duckdb/src/include/duckdb/planner/column_binding.hpp +5 -0
  92. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +6 -0
  93. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +6 -0
  94. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +6 -0
  95. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +3 -0
  96. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +3 -0
  97. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +3 -0
  98. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +3 -0
  99. package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +3 -0
  100. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +3 -1
  101. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +3 -0
  102. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +3 -0
  103. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_data.hpp +5 -2
  104. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +7 -0
  105. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +3 -0
  106. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +3 -0
  107. package/src/duckdb/src/include/duckdb/planner/expression/list.hpp +1 -0
  108. package/src/duckdb/src/include/duckdb/planner/expression.hpp +3 -0
  109. package/src/duckdb/src/include/duckdb/planner/joinside.hpp +3 -0
  110. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +3 -0
  111. package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +3 -0
  112. package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +3 -0
  113. package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +4 -0
  114. package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +9 -2
  115. package/src/duckdb/src/include/duckdb/planner/operator/logical_create.hpp +9 -6
  116. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +2 -16
  117. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_table.hpp +10 -6
  118. package/src/duckdb/src/include/duckdb/planner/operator/logical_cross_product.hpp +3 -0
  119. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -0
  120. package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +7 -0
  121. package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +3 -0
  122. package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +6 -10
  123. package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +2 -0
  124. package/src/duckdb/src/include/duckdb/planner/operator/logical_empty_result.hpp +2 -0
  125. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +4 -0
  126. package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +3 -0
  127. package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +3 -0
  128. package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +6 -0
  129. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit.hpp +3 -0
  130. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +3 -0
  131. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +5 -2
  132. package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +7 -35
  133. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +6 -0
  134. package/src/duckdb/src/include/duckdb/planner/operator/logical_positional_join.hpp +3 -0
  135. package/src/duckdb/src/include/duckdb/planner/operator/logical_projection.hpp +3 -0
  136. package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +5 -3
  137. package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +4 -0
  138. package/src/duckdb/src/include/duckdb/planner/operator/logical_sample.hpp +6 -0
  139. package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +4 -0
  140. package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +4 -0
  141. package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +3 -0
  142. package/src/duckdb/src/include/duckdb/planner/operator/logical_simple.hpp +3 -0
  143. package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +4 -0
  144. package/src/duckdb/src/include/duckdb/planner/operator/logical_unnest.hpp +2 -0
  145. package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +6 -0
  146. package/src/duckdb/src/include/duckdb/planner/operator/logical_window.hpp +3 -0
  147. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
  148. package/src/duckdb/src/optimizer/deliminator.cpp +5 -3
  149. package/src/duckdb/src/parser/column_definition.cpp +20 -32
  150. package/src/duckdb/src/parser/column_list.cpp +8 -0
  151. package/src/duckdb/src/parser/constraints/foreign_key_constraint.cpp +3 -0
  152. package/src/duckdb/src/parser/constraints/unique_constraint.cpp +3 -0
  153. package/src/duckdb/src/parser/expression/case_expression.cpp +0 -12
  154. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +5 -2
  155. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +38 -0
  156. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +3 -1
  157. package/src/duckdb/src/parser/parsed_data/create_sequence_info.cpp +2 -0
  158. package/src/duckdb/src/parser/parsed_data/detach_info.cpp +1 -1
  159. package/src/duckdb/src/parser/parsed_data/drop_info.cpp +1 -1
  160. package/src/duckdb/src/parser/parsed_data/sample_options.cpp +0 -18
  161. package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +4 -1
  162. package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +1 -1
  163. package/src/duckdb/src/parser/query_node.cpp +0 -10
  164. package/src/duckdb/src/parser/result_modifier.cpp +0 -13
  165. package/src/duckdb/src/parser/statement/select_statement.cpp +0 -10
  166. package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -16
  167. package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +5 -4
  168. package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +1 -1
  169. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +6 -1
  170. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +4 -0
  171. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +13 -6
  172. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +20 -12
  173. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +1 -4
  174. package/src/duckdb/src/planner/logical_operator.cpp +13 -1
  175. package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +16 -2
  176. package/src/duckdb/src/planner/operator/logical_create.cpp +14 -0
  177. package/src/duckdb/src/planner/operator/logical_create_index.cpp +20 -0
  178. package/src/duckdb/src/planner/operator/logical_create_table.cpp +16 -0
  179. package/src/duckdb/src/planner/operator/logical_delete.cpp +9 -2
  180. package/src/duckdb/src/planner/operator/logical_delim_join.cpp +2 -4
  181. package/src/duckdb/src/planner/operator/logical_distinct.cpp +13 -0
  182. package/src/duckdb/src/planner/operator/logical_explain.cpp +1 -1
  183. package/src/duckdb/src/planner/operator/logical_insert.cpp +8 -2
  184. package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +3 -2
  185. package/src/duckdb/src/planner/operator/logical_order.cpp +39 -0
  186. package/src/duckdb/src/planner/operator/logical_pivot.cpp +3 -0
  187. package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +5 -5
  188. package/src/duckdb/src/planner/operator/logical_sample.cpp +3 -0
  189. package/src/duckdb/src/planner/operator/logical_update.cpp +8 -2
  190. package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +4 -2
  191. package/src/duckdb/src/planner/planner.cpp +11 -0
  192. package/src/duckdb/src/storage/checkpoint_manager.cpp +23 -23
  193. package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +98 -0
  194. package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +188 -0
  195. package/src/duckdb/src/storage/serialization/serialize_expression.cpp +274 -0
  196. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +729 -0
  197. package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +62 -0
  198. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +242 -0
  199. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +419 -0
  200. package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +40 -38
  201. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +36 -36
  202. package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +25 -14
  203. package/src/duckdb/src/storage/serialization/serialize_statement.cpp +22 -0
  204. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +47 -47
  205. package/src/duckdb/src/storage/serialization/serialize_types.cpp +25 -25
  206. package/src/duckdb/src/storage/storage_info.cpp +3 -2
  207. package/src/duckdb/src/storage/wal_replay.cpp +20 -19
  208. package/src/duckdb/third_party/concurrentqueue/lightweightsemaphore.h +3 -76
  209. package/src/duckdb/third_party/libpg_query/pg_functions.cpp +13 -0
  210. package/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp +9 -0
  211. package/src/duckdb/ub_src_parser.cpp +0 -2
  212. package/src/duckdb/ub_src_storage_serialization.cpp +16 -0
  213. package/src/duckdb/src/parser/common_table_expression_info.cpp +0 -21
@@ -0,0 +1,110 @@
1
+ //===----------------------------------------------------------------------===//
2
+ // DuckDB
3
+ //
4
+ // duckdb/common/serializer/deserialization_data.hpp
5
+ //
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
9
+ #pragma once
10
+
11
+ #include "duckdb/common/common.hpp"
12
+ #include "duckdb/common/stack.hpp"
13
+ #include "duckdb/planner/bound_parameter_map.hpp"
14
+
15
+ namespace duckdb {
16
+ class ClientContext;
17
+ class Catalog;
18
+ enum class ExpressionType : uint8_t;
19
+
20
+ struct DeserializationData {
21
+ stack<reference<ClientContext>> contexts;
22
+ stack<idx_t> enums;
23
+ stack<reference<bound_parameter_map_t>> parameter_data;
24
+
25
+ template <class T>
26
+ void Set(T entry) = delete;
27
+
28
+ template <class T>
29
+ T Get() = delete;
30
+
31
+ template <class T>
32
+ void Unset() = delete;
33
+
34
+ template <class T>
35
+ inline void AssertNotEmpty(const stack<T> &e) {
36
+ if (e.empty()) {
37
+ throw InternalException("DeserializationData - unexpected empty stack");
38
+ }
39
+ }
40
+ };
41
+
42
+ template <>
43
+ inline void DeserializationData::Set(ExpressionType type) {
44
+ enums.push(idx_t(type));
45
+ }
46
+
47
+ template <>
48
+ inline ExpressionType DeserializationData::Get() {
49
+ AssertNotEmpty(enums);
50
+ return ExpressionType(enums.top());
51
+ }
52
+
53
+ template <>
54
+ inline void DeserializationData::Unset<ExpressionType>() {
55
+ AssertNotEmpty(enums);
56
+ enums.pop();
57
+ }
58
+
59
+ template <>
60
+ inline void DeserializationData::Set(LogicalOperatorType type) {
61
+ enums.push(idx_t(type));
62
+ }
63
+
64
+ template <>
65
+ inline LogicalOperatorType DeserializationData::Get() {
66
+ AssertNotEmpty(enums);
67
+ return LogicalOperatorType(enums.top());
68
+ }
69
+
70
+ template <>
71
+ inline void DeserializationData::Unset<LogicalOperatorType>() {
72
+ AssertNotEmpty(enums);
73
+ enums.pop();
74
+ }
75
+
76
+ template <>
77
+ inline void DeserializationData::Set(ClientContext &context) {
78
+ contexts.push(context);
79
+ }
80
+
81
+ template <>
82
+ inline ClientContext &DeserializationData::Get() {
83
+ AssertNotEmpty(contexts);
84
+ return contexts.top();
85
+ }
86
+
87
+ template <>
88
+ inline void DeserializationData::Unset<ClientContext>() {
89
+ AssertNotEmpty(contexts);
90
+ contexts.pop();
91
+ }
92
+
93
+ template <>
94
+ inline void DeserializationData::Set(bound_parameter_map_t &context) {
95
+ parameter_data.push(context);
96
+ }
97
+
98
+ template <>
99
+ inline bound_parameter_map_t &DeserializationData::Get() {
100
+ AssertNotEmpty(parameter_data);
101
+ return parameter_data.top();
102
+ }
103
+
104
+ template <>
105
+ inline void DeserializationData::Unset<bound_parameter_map_t>() {
106
+ AssertNotEmpty(parameter_data);
107
+ parameter_data.pop();
108
+ }
109
+
110
+ } // namespace duckdb
@@ -12,6 +12,7 @@
12
12
  #include "duckdb/common/serializer.hpp"
13
13
  #include "duckdb/common/enum_util.hpp"
14
14
  #include "duckdb/common/serializer/serialization_traits.hpp"
15
+ #include "duckdb/common/serializer/deserialization_data.hpp"
15
16
  #include "duckdb/common/types/interval.hpp"
16
17
  #include "duckdb/common/types/string_type.hpp"
17
18
  #include "duckdb/common/unordered_map.hpp"
@@ -24,6 +25,7 @@ class FormatDeserializer {
24
25
 
25
26
  protected:
26
27
  bool deserialize_enum_from_string = false;
28
+ DeserializationData data;
27
29
 
28
30
  public:
29
31
  // Read into an existing value
@@ -107,6 +109,24 @@ public:
107
109
  ReadDataPtr(ret, count);
108
110
  }
109
111
 
112
+ //! Set a serialization property
113
+ template <class T>
114
+ void Set(T entry) {
115
+ return data.Set<T>(entry);
116
+ }
117
+
118
+ //! Retrieve the last set serialization property of this type
119
+ template <class T>
120
+ T Get() {
121
+ return data.Get<T>();
122
+ }
123
+
124
+ //! Unset a serialization property
125
+ template <class T>
126
+ void Unset() {
127
+ return data.Unset<T>();
128
+ }
129
+
110
130
  private:
111
131
  // Deserialize anything implementing a FormatDeserialize method
112
132
  template <typename T = void>
@@ -152,6 +172,19 @@ private:
152
172
  return vec;
153
173
  }
154
174
 
175
+ template <typename T = void>
176
+ inline typename std::enable_if<is_unsafe_vector<T>::value, T>::type Read() {
177
+ using ELEMENT_TYPE = typename is_unsafe_vector<T>::ELEMENT_TYPE;
178
+ T vec;
179
+ auto size = OnListBegin();
180
+ for (idx_t i = 0; i < size; i++) {
181
+ vec.push_back(Read<ELEMENT_TYPE>());
182
+ }
183
+ OnListEnd();
184
+
185
+ return vec;
186
+ }
187
+
155
188
  // Deserialize a map
156
189
  template <typename T = void>
157
190
  inline typename std::enable_if<is_unordered_map<T>::value, T>::type Read() {
@@ -308,12 +341,24 @@ private:
308
341
  return ReadInterval();
309
342
  }
310
343
 
311
- // Deserialize a interval_t
344
+ // Deserialize a hugeint_t
312
345
  template <typename T = void>
313
346
  inline typename std::enable_if<std::is_same<T, hugeint_t>::value, T>::type Read() {
314
347
  return ReadHugeInt();
315
348
  }
316
349
 
350
+ // Deserialize a LogicalIndex
351
+ template <typename T = void>
352
+ inline typename std::enable_if<std::is_same<T, LogicalIndex>::value, T>::type Read() {
353
+ return LogicalIndex(ReadUnsignedInt64());
354
+ }
355
+
356
+ // Deserialize a PhysicalIndex
357
+ template <typename T = void>
358
+ inline typename std::enable_if<std::is_same<T, PhysicalIndex>::value, T>::type Read() {
359
+ return PhysicalIndex(ReadUnsignedInt64());
360
+ }
361
+
317
362
  protected:
318
363
  virtual void SetTag(const char *tag) {
319
364
  (void)tag;
@@ -28,7 +28,7 @@ protected:
28
28
  public:
29
29
  // Serialize a value
30
30
  template <class T>
31
- typename std::enable_if<!std::is_enum<T>::value, void>::type WriteProperty(const char *tag, T &value) {
31
+ typename std::enable_if<!std::is_enum<T>::value, void>::type WriteProperty(const char *tag, const T &value) {
32
32
  SetTag(tag);
33
33
  WriteValue(value);
34
34
  }
@@ -48,22 +48,8 @@ public:
48
48
  }
49
49
 
50
50
  // Optional pointer
51
- template <class T>
52
- void WriteOptionalProperty(const char *tag, T *ptr) {
53
- SetTag(tag);
54
- if (ptr == nullptr) {
55
- OnOptionalBegin(false);
56
- OnOptionalEnd(false);
57
- } else {
58
- OnOptionalBegin(true);
59
- WriteValue(*ptr);
60
- OnOptionalEnd(true);
61
- }
62
- }
63
-
64
- // Optional unique_ptr
65
- template <class T>
66
- void WriteOptionalProperty(const char *tag, const unique_ptr<T> &ptr) {
51
+ template <class POINTER>
52
+ void WriteOptionalProperty(const char *tag, POINTER &&ptr) {
67
53
  SetTag(tag);
68
54
  if (ptr == nullptr) {
69
55
  OnOptionalBegin(false);
@@ -122,10 +108,20 @@ protected:
122
108
  OnListEnd(count);
123
109
  }
124
110
 
111
+ template <class T>
112
+ void WriteValue(const unsafe_vector<T> &vec) {
113
+ auto count = vec.size();
114
+ OnListBegin(count);
115
+ for (auto &item : vec) {
116
+ WriteValue(item);
117
+ }
118
+ OnListEnd(count);
119
+ }
120
+
125
121
  // UnorderedSet
126
122
  // Serialized the same way as a list/vector
127
123
  template <class T, class HASH, class CMP>
128
- void WriteValue(const unordered_set<T, HASH, CMP> &set) {
124
+ void WriteValue(const duckdb::unordered_set<T, HASH, CMP> &set) {
129
125
  auto count = set.size();
130
126
  OnListBegin(count);
131
127
  for (auto &item : set) {
@@ -137,7 +133,7 @@ protected:
137
133
  // Set
138
134
  // Serialized the same way as a list/vector
139
135
  template <class T, class HASH, class CMP>
140
- void WriteValue(const set<T, HASH, CMP> &set) {
136
+ void WriteValue(const duckdb::set<T, HASH, CMP> &set) {
141
137
  auto count = set.size();
142
138
  OnListBegin(count);
143
139
  for (auto &item : set) {
@@ -148,7 +144,7 @@ protected:
148
144
 
149
145
  // Map
150
146
  template <class K, class V, class HASH, class CMP>
151
- void WriteValue(const std::unordered_map<K, V, HASH, CMP> &map) {
147
+ void WriteValue(const duckdb::unordered_map<K, V, HASH, CMP> &map) {
152
148
  auto count = map.size();
153
149
  OnMapBegin(count);
154
150
  for (auto &item : map) {
@@ -166,7 +162,7 @@ protected:
166
162
 
167
163
  // class or struct implementing `FormatSerialize(FormatSerializer& FormatSerializer)`;
168
164
  template <typename T>
169
- typename std::enable_if<has_serialize<T>::value>::type WriteValue(T &value) {
165
+ typename std::enable_if<has_serialize<T>::value>::type WriteValue(const T &value) {
170
166
  // Else, we defer to the .FormatSerialize method
171
167
  OnObjectBegin();
172
168
  value.FormatSerialize(*this);
@@ -243,6 +239,12 @@ protected:
243
239
  virtual void WriteValue(const char *str) = 0;
244
240
  virtual void WriteValue(interval_t value) = 0;
245
241
  virtual void WriteDataPtr(const_data_ptr_t ptr, idx_t count) = 0;
242
+ void WriteValue(LogicalIndex value) {
243
+ WriteValue(value.index);
244
+ }
245
+ void WriteValue(PhysicalIndex value) {
246
+ WriteValue(value.index);
247
+ }
246
248
  };
247
249
 
248
250
  } // namespace duckdb
@@ -3,7 +3,8 @@
3
3
  #include "duckdb/common/vector.hpp"
4
4
  #include "duckdb/common/unordered_map.hpp"
5
5
  #include "duckdb/common/unordered_set.hpp"
6
-
6
+ #include "duckdb/common/set.hpp"
7
+ #include "duckdb/common/shared_ptr.hpp"
7
8
  namespace duckdb {
8
9
 
9
10
  class FormatSerializer; // Forward declare
@@ -51,11 +52,18 @@ struct is_vector<typename duckdb::vector<T>> : std::true_type {
51
52
  typedef T ELEMENT_TYPE;
52
53
  };
53
54
 
55
+ template <typename T>
56
+ struct is_unsafe_vector : std::false_type {};
57
+ template <typename T>
58
+ struct is_unsafe_vector<typename duckdb::unsafe_vector<T>> : std::true_type {
59
+ typedef T ELEMENT_TYPE;
60
+ };
61
+
54
62
  // Check if T is a unordered map, and provide access to the inner type
55
63
  template <typename T>
56
64
  struct is_unordered_map : std::false_type {};
57
65
  template <typename... Args>
58
- struct is_unordered_map<typename std::unordered_map<Args...>> : std::true_type {
66
+ struct is_unordered_map<typename duckdb::unordered_map<Args...>> : std::true_type {
59
67
  typedef typename std::tuple_element<0, std::tuple<Args...>>::type KEY_TYPE;
60
68
  typedef typename std::tuple_element<1, std::tuple<Args...>>::type VALUE_TYPE;
61
69
  typedef typename std::tuple_element<2, std::tuple<Args...>>::type HASH_TYPE;
@@ -90,7 +98,7 @@ struct is_pair<std::pair<T, U>> : std::true_type {
90
98
  template <typename T>
91
99
  struct is_unordered_set : std::false_type {};
92
100
  template <typename... Args>
93
- struct is_unordered_set<std::unordered_set<Args...>> : std::true_type {
101
+ struct is_unordered_set<duckdb::unordered_set<Args...>> : std::true_type {
94
102
  typedef typename std::tuple_element<0, std::tuple<Args...>>::type ELEMENT_TYPE;
95
103
  typedef typename std::tuple_element<1, std::tuple<Args...>>::type HASH_TYPE;
96
104
  typedef typename std::tuple_element<2, std::tuple<Args...>>::type EQUAL_TYPE;
@@ -99,7 +107,7 @@ struct is_unordered_set<std::unordered_set<Args...>> : std::true_type {
99
107
  template <typename T>
100
108
  struct is_set : std::false_type {};
101
109
  template <typename... Args>
102
- struct is_set<std::set<Args...>> : std::true_type {
110
+ struct is_set<duckdb::set<Args...>> : std::true_type {
103
111
  typedef typename std::tuple_element<0, std::tuple<Args...>>::type ELEMENT_TYPE;
104
112
  typedef typename std::tuple_element<1, std::tuple<Args...>>::type HASH_TYPE;
105
113
  typedef typename std::tuple_element<2, std::tuple<Args...>>::type EQUAL_TYPE;
@@ -154,6 +154,9 @@ public:
154
154
  //! Get a vector of the segments in this ColumnDataCollection
155
155
  const vector<unique_ptr<ColumnDataCollectionSegment>> &GetSegments() const;
156
156
 
157
+ void FormatSerialize(FormatSerializer &serializer) const;
158
+ static unique_ptr<ColumnDataCollection> FormatDeserialize(FormatDeserializer &deserializer);
159
+
157
160
  private:
158
161
  //! Creates a new segment within the ColumnDataCollection
159
162
  void CreateSegment();
@@ -101,9 +101,9 @@ struct AtanFun {
101
101
 
102
102
  struct Atan2Fun {
103
103
  static constexpr const char *Name = "atan2";
104
- static constexpr const char *Parameters = "x,y";
105
- static constexpr const char *Description = "computes the arctangent (x, y)";
106
- static constexpr const char *Example = "atan2(0.5, 0.5)";
104
+ static constexpr const char *Parameters = "y,x";
105
+ static constexpr const char *Description = "computes the arctangent (y, x)";
106
+ static constexpr const char *Example = "atan2(1.0, 0.0)";
107
107
 
108
108
  static ScalarFunction GetFunction();
109
109
  };
@@ -48,6 +48,9 @@ public:
48
48
  void Serialize(Serializer &serializer) const;
49
49
  static unique_ptr<MacroFunction> Deserialize(Deserializer &deserializer);
50
50
 
51
+ virtual void FormatSerialize(FormatSerializer &serializer) const;
52
+ static unique_ptr<MacroFunction> FormatDeserialize(FormatDeserializer &deserializer);
53
+
51
54
  protected:
52
55
  virtual void SerializeInternal(FieldWriter &writer) const = 0;
53
56
 
@@ -36,6 +36,9 @@ public:
36
36
 
37
37
  static unique_ptr<MacroFunction> Deserialize(FieldReader &reader);
38
38
 
39
+ void FormatSerialize(FormatSerializer &serializer) const override;
40
+ static unique_ptr<MacroFunction> FormatDeserialize(FormatDeserializer &deserializer);
41
+
39
42
  protected:
40
43
  void SerializeInternal(FieldWriter &writer) const override;
41
44
  };
@@ -36,6 +36,9 @@ public:
36
36
 
37
37
  static unique_ptr<MacroFunction> Deserialize(FieldReader &reader);
38
38
 
39
+ void FormatSerialize(FormatSerializer &serializer) const override;
40
+ static unique_ptr<MacroFunction> FormatDeserialize(FormatDeserializer &deserializer);
41
+
39
42
  protected:
40
43
  void SerializeInternal(FieldWriter &writer) const override;
41
44
  };
@@ -29,9 +29,6 @@ public:
29
29
  DUCKDB_API ColumnDefinition(string name, LogicalType type, unique_ptr<ParsedExpression> expression,
30
30
  TableColumnType category);
31
31
 
32
- //! The default value of the column (if any)
33
- unique_ptr<ParsedExpression> default_value;
34
-
35
32
  public:
36
33
  //! default_value
37
34
  const unique_ptr<ParsedExpression> &DefaultValue() const;
@@ -70,6 +67,9 @@ public:
70
67
  DUCKDB_API void Serialize(Serializer &serializer) const;
71
68
  DUCKDB_API static ColumnDefinition Deserialize(Deserializer &source);
72
69
 
70
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const;
71
+ DUCKDB_API static ColumnDefinition FormatDeserialize(FormatDeserializer &deserializer);
72
+
73
73
  //===--------------------------------------------------------------------===//
74
74
  // Generated Columns (VIRTUAL)
75
75
  //===--------------------------------------------------------------------===//
@@ -97,8 +97,9 @@ private:
97
97
  idx_t oid = DConstants::INVALID_INDEX;
98
98
  //! The category of the column
99
99
  TableColumnType category = TableColumnType::STANDARD;
100
- //! Used by Generated Columns
101
- unique_ptr<ParsedExpression> generated_expression;
100
+ //! The default value of the column (for non-generated columns)
101
+ //! The generated column expression (for generated columns)
102
+ unique_ptr<ParsedExpression> expression;
102
103
  };
103
104
 
104
105
  } // namespace duckdb
@@ -20,6 +20,7 @@ public:
20
20
 
21
21
  public:
22
22
  DUCKDB_API ColumnList(bool allow_duplicate_names = false);
23
+ DUCKDB_API explicit ColumnList(vector<ColumnDefinition> columns, bool allow_duplicate_names = false);
23
24
 
24
25
  DUCKDB_API void AddColumn(ColumnDefinition column);
25
26
  void Finalize();
@@ -53,6 +54,9 @@ public:
53
54
  void Serialize(FieldWriter &writer) const;
54
55
  static ColumnList Deserialize(FieldReader &reader);
55
56
 
57
+ void FormatSerialize(FormatSerializer &serializer) const;
58
+ static ColumnList FormatDeserialize(FormatDeserializer &deserializer);
59
+
56
60
  DUCKDB_API ColumnListIterator Logical() const;
57
61
  DUCKDB_API ColumnListIterator Physical() const;
58
62
 
@@ -16,6 +16,8 @@ namespace duckdb {
16
16
 
17
17
  class Serializer;
18
18
  class Deserializer;
19
+ class FormatSerializer;
20
+ class FormatDeserializer;
19
21
  class FieldWriter;
20
22
  class FieldReader;
21
23
 
@@ -68,6 +70,9 @@ public:
68
70
  //! Deserializes a blob back into a Constraint
69
71
  DUCKDB_API static unique_ptr<Constraint> Deserialize(Deserializer &source);
70
72
 
73
+ DUCKDB_API virtual void FormatSerialize(FormatSerializer &serializer) const;
74
+ DUCKDB_API static unique_ptr<Constraint> FormatDeserialize(FormatDeserializer &deserializer);
75
+
71
76
  public:
72
77
  template <class TARGET>
73
78
  TARGET &Cast() {
@@ -32,6 +32,9 @@ public:
32
32
 
33
33
  DUCKDB_API void Serialize(FieldWriter &writer) const override;
34
34
  DUCKDB_API static unique_ptr<Constraint> Deserialize(FieldReader &source);
35
+
36
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
37
+ DUCKDB_API static unique_ptr<Constraint> FormatDeserialize(FormatDeserializer &deserializer);
35
38
  };
36
39
 
37
40
  } // namespace duckdb
@@ -35,6 +35,12 @@ public:
35
35
  DUCKDB_API void Serialize(FieldWriter &writer) const override;
36
36
  //! Deserializes a ParsedConstraint
37
37
  DUCKDB_API static unique_ptr<Constraint> Deserialize(FieldReader &source);
38
+
39
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
40
+ DUCKDB_API static unique_ptr<Constraint> FormatDeserialize(FormatDeserializer &deserializer);
41
+
42
+ private:
43
+ ForeignKeyConstraint();
38
44
  };
39
45
 
40
46
  } // namespace duckdb
@@ -32,6 +32,9 @@ public:
32
32
  DUCKDB_API void Serialize(FieldWriter &writer) const override;
33
33
  //! Deserializes a NotNullConstraint
34
34
  DUCKDB_API static unique_ptr<Constraint> Deserialize(FieldReader &source);
35
+
36
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
37
+ DUCKDB_API static unique_ptr<Constraint> FormatDeserialize(FormatDeserializer &deserializer);
35
38
  };
36
39
 
37
40
  } // namespace duckdb
@@ -38,6 +38,12 @@ public:
38
38
  DUCKDB_API void Serialize(FieldWriter &writer) const override;
39
39
  //! Deserializes a ParsedConstraint
40
40
  DUCKDB_API static unique_ptr<Constraint> Deserialize(FieldReader &source);
41
+
42
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
43
+ DUCKDB_API static unique_ptr<Constraint> FormatDeserialize(FormatDeserializer &deserializer);
44
+
45
+ private:
46
+ UniqueConstraint();
41
47
  };
42
48
 
43
49
  } // namespace duckdb
@@ -35,7 +35,7 @@ public:
35
35
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
36
36
 
37
37
  void FormatSerialize(FormatSerializer &serializer) const override;
38
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
38
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
39
39
 
40
40
  public:
41
41
  template <class T, class BASE>
@@ -42,7 +42,7 @@ public:
42
42
  void Serialize(FieldWriter &writer) const override;
43
43
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
44
44
  void FormatSerialize(FormatSerializer &serializer) const override;
45
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
45
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
46
46
 
47
47
  public:
48
48
  template <class T, class BASE>
@@ -38,7 +38,7 @@ public:
38
38
  void Serialize(FieldWriter &writer) const override;
39
39
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
40
40
  void FormatSerialize(FormatSerializer &serializer) const override;
41
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
41
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
42
42
 
43
43
  public:
44
44
  template <class T, class BASE>
@@ -35,7 +35,7 @@ public:
35
35
  void Serialize(FieldWriter &writer) const override;
36
36
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
37
37
  void FormatSerialize(FormatSerializer &serializer) const override;
38
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
38
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
39
39
 
40
40
  private:
41
41
  CollateExpression();
@@ -49,7 +49,7 @@ public:
49
49
  void Serialize(FieldWriter &writer) const override;
50
50
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
51
51
  void FormatSerialize(FormatSerializer &serializer) const override;
52
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
52
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
53
53
 
54
54
  private:
55
55
  ColumnRefExpression();
@@ -34,7 +34,7 @@ public:
34
34
  void Serialize(FieldWriter &writer) const override;
35
35
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
36
36
  void FormatSerialize(FormatSerializer &serializer) const override;
37
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
37
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
38
38
 
39
39
  public:
40
40
  template <class T, class BASE>
@@ -38,7 +38,7 @@ public:
38
38
  void Serialize(FieldWriter &writer) const override;
39
39
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
40
40
  void FormatSerialize(FormatSerializer &serializer) const override;
41
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
41
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
42
42
 
43
43
  public:
44
44
  template <class T, class BASE>
@@ -36,7 +36,7 @@ public:
36
36
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
37
37
 
38
38
  void FormatSerialize(FormatSerializer &serializer) const override;
39
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
39
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
40
40
 
41
41
  private:
42
42
  ConstantExpression();
@@ -31,6 +31,6 @@ public:
31
31
  void Serialize(FieldWriter &writer) const override;
32
32
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
33
33
  void FormatSerialize(FormatSerializer &serializer) const override;
34
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
34
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
35
35
  };
36
36
  } // namespace duckdb
@@ -59,7 +59,7 @@ public:
59
59
  void Serialize(FieldWriter &writer) const override;
60
60
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
61
61
  void FormatSerialize(FormatSerializer &serializer) const override;
62
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
62
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
63
63
 
64
64
  void Verify() const override;
65
65
 
@@ -41,7 +41,7 @@ public:
41
41
  void Serialize(FieldWriter &writer) const override;
42
42
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
43
43
  void FormatSerialize(FormatSerializer &serializer) const override;
44
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
44
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
45
45
 
46
46
  private:
47
47
  LambdaExpression();
@@ -36,7 +36,7 @@ public:
36
36
  void Serialize(FieldWriter &writer) const override;
37
37
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
38
38
  void FormatSerialize(FormatSerializer &serializer) const override;
39
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
39
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
40
40
 
41
41
  public:
42
42
  template <class T, class BASE>
@@ -38,6 +38,6 @@ public:
38
38
  void Serialize(FieldWriter &writer) const override;
39
39
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
40
40
  void FormatSerialize(FormatSerializer &serializer) const override;
41
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
41
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
42
42
  };
43
43
  } // namespace duckdb
@@ -34,7 +34,7 @@ public:
34
34
  void Serialize(FieldWriter &writer) const override;
35
35
  static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
36
36
  void FormatSerialize(FormatSerializer &serializer) const override;
37
- static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
37
+ static unique_ptr<ParsedExpression> FormatDeserialize(FormatDeserializer &deserializer);
38
38
 
39
39
  private:
40
40
  PositionalReferenceExpression();