duckdb 0.8.2-dev1968.0 → 0.8.2-dev2044.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 (205) hide show
  1. package/package.json +1 -1
  2. package/src/duckdb/src/catalog/catalog.cpp +1 -1
  3. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +17 -41
  4. package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +2 -10
  5. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +4 -14
  6. package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +11 -28
  7. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +11 -38
  8. package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +11 -27
  9. package/src/duckdb/src/catalog/catalog_entry.cpp +25 -1
  10. package/src/duckdb/src/common/enum_util.cpp +159 -0
  11. package/src/duckdb/src/common/extra_type_info.cpp +1 -2
  12. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +3 -0
  13. package/src/duckdb/src/common/serializer/binary_serializer.cpp +4 -4
  14. package/src/duckdb/src/common/types/column/column_data_collection.cpp +43 -0
  15. package/src/duckdb/src/common/types/vector.cpp +1 -1
  16. package/src/duckdb/src/common/types.cpp +0 -12
  17. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
  18. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  19. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +1 -2
  20. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +1 -4
  21. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +2 -5
  22. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -6
  23. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +2 -11
  24. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +2 -5
  25. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +14 -0
  26. package/src/duckdb/src/include/duckdb/common/constants.hpp +2 -0
  27. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +32 -0
  28. package/src/duckdb/src/include/duckdb/common/enums/index_type.hpp +1 -1
  29. package/src/duckdb/src/include/duckdb/common/index_vector.hpp +12 -0
  30. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +28 -4
  31. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +12 -5
  32. package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +110 -0
  33. package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +46 -1
  34. package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +23 -21
  35. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +12 -4
  36. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +3 -0
  37. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +3 -0
  38. package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +3 -0
  39. package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +3 -0
  40. package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +6 -5
  41. package/src/duckdb/src/include/duckdb/parser/column_list.hpp +4 -0
  42. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +5 -0
  43. package/src/duckdb/src/include/duckdb/parser/constraints/check_constraint.hpp +3 -0
  44. package/src/duckdb/src/include/duckdb/parser/constraints/foreign_key_constraint.hpp +6 -0
  45. package/src/duckdb/src/include/duckdb/parser/constraints/not_null_constraint.hpp +3 -0
  46. package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +6 -0
  47. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
  48. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
  49. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
  50. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
  51. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
  52. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
  53. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
  54. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
  55. package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +1 -1
  56. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
  57. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
  58. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
  59. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
  60. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
  61. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
  62. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
  63. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
  64. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +12 -1
  65. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +66 -2
  66. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +8 -1
  67. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +8 -1
  68. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +4 -1
  69. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +9 -2
  70. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +3 -0
  71. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +3 -0
  72. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_sequence_info.hpp +3 -0
  73. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +3 -0
  74. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +3 -0
  75. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +3 -0
  76. package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +7 -0
  77. package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +7 -0
  78. package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +7 -0
  79. package/src/duckdb/src/include/duckdb/parser/parsed_data/load_info.hpp +13 -3
  80. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +22 -0
  81. package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +10 -0
  82. package/src/duckdb/src/include/duckdb/parser/parsed_data/show_select_info.hpp +7 -0
  83. package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +10 -0
  84. package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +10 -0
  85. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +0 -8
  86. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +6 -0
  87. package/src/duckdb/src/include/duckdb/planner/column_binding.hpp +5 -0
  88. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +6 -0
  89. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +6 -0
  90. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +6 -0
  91. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +3 -0
  92. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +3 -0
  93. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +3 -0
  94. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +3 -0
  95. package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +3 -0
  96. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +3 -1
  97. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +3 -0
  98. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +3 -0
  99. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_data.hpp +5 -2
  100. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +7 -0
  101. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +3 -0
  102. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +3 -0
  103. package/src/duckdb/src/include/duckdb/planner/expression/list.hpp +1 -0
  104. package/src/duckdb/src/include/duckdb/planner/expression.hpp +3 -0
  105. package/src/duckdb/src/include/duckdb/planner/joinside.hpp +3 -0
  106. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +3 -0
  107. package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +3 -0
  108. package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +3 -0
  109. package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +4 -0
  110. package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +9 -2
  111. package/src/duckdb/src/include/duckdb/planner/operator/logical_create.hpp +9 -6
  112. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +2 -16
  113. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_table.hpp +10 -6
  114. package/src/duckdb/src/include/duckdb/planner/operator/logical_cross_product.hpp +3 -0
  115. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -0
  116. package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +7 -0
  117. package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +3 -0
  118. package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +6 -10
  119. package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +2 -0
  120. package/src/duckdb/src/include/duckdb/planner/operator/logical_empty_result.hpp +2 -0
  121. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +4 -0
  122. package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +3 -0
  123. package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +3 -0
  124. package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +6 -0
  125. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit.hpp +3 -0
  126. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +3 -0
  127. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +5 -2
  128. package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +7 -35
  129. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +6 -0
  130. package/src/duckdb/src/include/duckdb/planner/operator/logical_positional_join.hpp +3 -0
  131. package/src/duckdb/src/include/duckdb/planner/operator/logical_projection.hpp +3 -0
  132. package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +5 -3
  133. package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +4 -0
  134. package/src/duckdb/src/include/duckdb/planner/operator/logical_sample.hpp +6 -0
  135. package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +4 -0
  136. package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +4 -0
  137. package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +3 -0
  138. package/src/duckdb/src/include/duckdb/planner/operator/logical_simple.hpp +3 -0
  139. package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +4 -0
  140. package/src/duckdb/src/include/duckdb/planner/operator/logical_unnest.hpp +2 -0
  141. package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +6 -0
  142. package/src/duckdb/src/include/duckdb/planner/operator/logical_window.hpp +3 -0
  143. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
  144. package/src/duckdb/src/optimizer/deliminator.cpp +5 -3
  145. package/src/duckdb/src/parser/column_definition.cpp +20 -32
  146. package/src/duckdb/src/parser/column_list.cpp +8 -0
  147. package/src/duckdb/src/parser/constraints/foreign_key_constraint.cpp +3 -0
  148. package/src/duckdb/src/parser/constraints/unique_constraint.cpp +3 -0
  149. package/src/duckdb/src/parser/expression/case_expression.cpp +0 -12
  150. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +5 -2
  151. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +38 -0
  152. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +3 -1
  153. package/src/duckdb/src/parser/parsed_data/create_sequence_info.cpp +2 -0
  154. package/src/duckdb/src/parser/parsed_data/detach_info.cpp +1 -1
  155. package/src/duckdb/src/parser/parsed_data/drop_info.cpp +1 -1
  156. package/src/duckdb/src/parser/parsed_data/sample_options.cpp +0 -18
  157. package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +4 -1
  158. package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +1 -1
  159. package/src/duckdb/src/parser/query_node.cpp +0 -10
  160. package/src/duckdb/src/parser/result_modifier.cpp +0 -13
  161. package/src/duckdb/src/parser/statement/select_statement.cpp +0 -10
  162. package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -16
  163. package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +5 -4
  164. package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +1 -1
  165. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +6 -1
  166. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +4 -0
  167. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +13 -6
  168. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +20 -12
  169. package/src/duckdb/src/planner/logical_operator.cpp +13 -1
  170. package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +16 -2
  171. package/src/duckdb/src/planner/operator/logical_create.cpp +14 -0
  172. package/src/duckdb/src/planner/operator/logical_create_index.cpp +20 -0
  173. package/src/duckdb/src/planner/operator/logical_create_table.cpp +16 -0
  174. package/src/duckdb/src/planner/operator/logical_delete.cpp +9 -2
  175. package/src/duckdb/src/planner/operator/logical_delim_join.cpp +2 -4
  176. package/src/duckdb/src/planner/operator/logical_distinct.cpp +13 -0
  177. package/src/duckdb/src/planner/operator/logical_explain.cpp +1 -1
  178. package/src/duckdb/src/planner/operator/logical_insert.cpp +8 -2
  179. package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +3 -2
  180. package/src/duckdb/src/planner/operator/logical_order.cpp +39 -0
  181. package/src/duckdb/src/planner/operator/logical_pivot.cpp +3 -0
  182. package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +5 -5
  183. package/src/duckdb/src/planner/operator/logical_sample.cpp +3 -0
  184. package/src/duckdb/src/planner/operator/logical_update.cpp +8 -2
  185. package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +4 -2
  186. package/src/duckdb/src/planner/planner.cpp +11 -0
  187. package/src/duckdb/src/storage/checkpoint_manager.cpp +23 -23
  188. package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +98 -0
  189. package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +188 -0
  190. package/src/duckdb/src/storage/serialization/serialize_expression.cpp +274 -0
  191. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +729 -0
  192. package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +62 -0
  193. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +242 -0
  194. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +419 -0
  195. package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +40 -38
  196. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +36 -36
  197. package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +25 -14
  198. package/src/duckdb/src/storage/serialization/serialize_statement.cpp +22 -0
  199. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +47 -47
  200. package/src/duckdb/src/storage/serialization/serialize_types.cpp +25 -25
  201. package/src/duckdb/src/storage/storage_info.cpp +3 -2
  202. package/src/duckdb/src/storage/wal_replay.cpp +20 -19
  203. package/src/duckdb/ub_src_parser.cpp +0 -2
  204. package/src/duckdb/ub_src_storage_serialization.cpp +16 -0
  205. package/src/duckdb/src/parser/common_table_expression_info.cpp +0 -21
@@ -15,7 +15,7 @@
15
15
 
16
16
  namespace duckdb {
17
17
 
18
- enum AlterForeignKeyType : uint8_t { AFT_ADD = 0, AFT_DELETE = 1 };
18
+ enum class AlterForeignKeyType : uint8_t { AFT_ADD = 0, AFT_DELETE = 1 };
19
19
 
20
20
  //===--------------------------------------------------------------------===//
21
21
  // Change Ownership
@@ -65,6 +65,12 @@ public:
65
65
  void Serialize(FieldWriter &writer) const override;
66
66
  virtual void SerializeAlterTable(FieldWriter &writer) const = 0;
67
67
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader);
68
+
69
+ void FormatSerialize(FormatSerializer &serializer) const override;
70
+ static unique_ptr<AlterInfo> FormatDeserialize(FormatDeserializer &deserializer);
71
+
72
+ protected:
73
+ AlterTableInfo(AlterTableType type);
68
74
  };
69
75
 
70
76
  //===--------------------------------------------------------------------===//
@@ -83,6 +89,12 @@ public:
83
89
  unique_ptr<AlterInfo> Copy() const override;
84
90
  void SerializeAlterTable(FieldWriter &writer) const override;
85
91
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
92
+
93
+ void FormatSerialize(FormatSerializer &serializer) const override;
94
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
95
+
96
+ private:
97
+ RenameColumnInfo();
86
98
  };
87
99
 
88
100
  //===--------------------------------------------------------------------===//
@@ -99,6 +111,12 @@ public:
99
111
  unique_ptr<AlterInfo> Copy() const override;
100
112
  void SerializeAlterTable(FieldWriter &writer) const override;
101
113
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
114
+
115
+ void FormatSerialize(FormatSerializer &serializer) const override;
116
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
117
+
118
+ private:
119
+ RenameTableInfo();
102
120
  };
103
121
 
104
122
  //===--------------------------------------------------------------------===//
@@ -117,6 +135,12 @@ public:
117
135
  unique_ptr<AlterInfo> Copy() const override;
118
136
  void SerializeAlterTable(FieldWriter &writer) const override;
119
137
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
138
+
139
+ void FormatSerialize(FormatSerializer &serializer) const override;
140
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
141
+
142
+ private:
143
+ explicit AddColumnInfo(ColumnDefinition new_column);
120
144
  };
121
145
 
122
146
  //===--------------------------------------------------------------------===//
@@ -137,9 +161,14 @@ public:
137
161
  unique_ptr<AlterInfo> Copy() const override;
138
162
  void SerializeAlterTable(FieldWriter &writer) const override;
139
163
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
164
+ void FormatSerialize(FormatSerializer &serializer) const override;
165
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
140
166
  string GetColumnName() const override {
141
167
  return removed_column;
142
- };
168
+ }
169
+
170
+ private:
171
+ RemoveColumnInfo();
143
172
  };
144
173
 
145
174
  //===--------------------------------------------------------------------===//
@@ -161,9 +190,14 @@ public:
161
190
  unique_ptr<AlterInfo> Copy() const override;
162
191
  void SerializeAlterTable(FieldWriter &writer) const override;
163
192
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
193
+ void FormatSerialize(FormatSerializer &serializer) const override;
194
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
164
195
  string GetColumnName() const override {
165
196
  return column_name;
166
197
  };
198
+
199
+ private:
200
+ ChangeColumnTypeInfo();
167
201
  };
168
202
 
169
203
  //===--------------------------------------------------------------------===//
@@ -182,6 +216,11 @@ public:
182
216
  unique_ptr<AlterInfo> Copy() const override;
183
217
  void SerializeAlterTable(FieldWriter &writer) const override;
184
218
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
219
+ void FormatSerialize(FormatSerializer &serializer) const override;
220
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
221
+
222
+ private:
223
+ SetDefaultInfo();
185
224
  };
186
225
 
187
226
  //===--------------------------------------------------------------------===//
@@ -203,6 +242,11 @@ public:
203
242
  unique_ptr<AlterInfo> Copy() const override;
204
243
  void SerializeAlterTable(FieldWriter &writer) const override;
205
244
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
245
+ void FormatSerialize(FormatSerializer &serializer) const override;
246
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
247
+
248
+ private:
249
+ AlterForeignKeyInfo();
206
250
  };
207
251
 
208
252
  //===--------------------------------------------------------------------===//
@@ -219,6 +263,11 @@ public:
219
263
  unique_ptr<AlterInfo> Copy() const override;
220
264
  void SerializeAlterTable(FieldWriter &writer) const override;
221
265
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
266
+ void FormatSerialize(FormatSerializer &serializer) const override;
267
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
268
+
269
+ private:
270
+ SetNotNullInfo();
222
271
  };
223
272
 
224
273
  //===--------------------------------------------------------------------===//
@@ -235,6 +284,11 @@ public:
235
284
  unique_ptr<AlterInfo> Copy() const override;
236
285
  void SerializeAlterTable(FieldWriter &writer) const override;
237
286
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
287
+ void FormatSerialize(FormatSerializer &serializer) const override;
288
+ static unique_ptr<AlterTableInfo> FormatDeserialize(FormatDeserializer &deserializer);
289
+
290
+ private:
291
+ DropNotNullInfo();
238
292
  };
239
293
 
240
294
  //===--------------------------------------------------------------------===//
@@ -253,6 +307,11 @@ public:
253
307
  void Serialize(FieldWriter &writer) const override;
254
308
  virtual void SerializeAlterView(FieldWriter &writer) const = 0;
255
309
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader);
310
+ void FormatSerialize(FormatSerializer &serializer) const override;
311
+ static unique_ptr<AlterInfo> FormatDeserialize(FormatDeserializer &deserializer);
312
+
313
+ protected:
314
+ AlterViewInfo(AlterViewType type);
256
315
  };
257
316
 
258
317
  //===--------------------------------------------------------------------===//
@@ -269,6 +328,11 @@ public:
269
328
  unique_ptr<AlterInfo> Copy() const override;
270
329
  void SerializeAlterView(FieldWriter &writer) const override;
271
330
  static unique_ptr<AlterInfo> Deserialize(FieldReader &reader, AlterEntryData data);
331
+ void FormatSerialize(FormatSerializer &serializer) const override;
332
+ static unique_ptr<AlterViewInfo> FormatDeserialize(FormatDeserializer &deserializer);
333
+
334
+ private:
335
+ RenameViewInfo();
272
336
  };
273
337
 
274
338
  } // namespace duckdb
@@ -16,7 +16,11 @@
16
16
  namespace duckdb {
17
17
 
18
18
  struct AttachInfo : public ParseInfo {
19
- AttachInfo() {
19
+ public:
20
+ static constexpr const ParseInfoType TYPE = ParseInfoType::ATTACH_INFO;
21
+
22
+ public:
23
+ AttachInfo() : ParseInfo(TYPE) {
20
24
  }
21
25
 
22
26
  //! The alias of the attached database
@@ -31,6 +35,9 @@ public:
31
35
 
32
36
  void Serialize(Serializer &serializer) const;
33
37
  static unique_ptr<ParseInfo> Deserialize(Deserializer &deserializer);
38
+
39
+ void FormatSerialize(FormatSerializer &serializer) const override;
40
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
34
41
  };
35
42
 
36
43
  } // namespace duckdb
@@ -17,7 +17,11 @@
17
17
  namespace duckdb {
18
18
 
19
19
  struct CopyInfo : public ParseInfo {
20
- CopyInfo() : catalog(INVALID_CATALOG), schema(DEFAULT_SCHEMA) {
20
+ public:
21
+ static constexpr const ParseInfoType TYPE = ParseInfoType::COPY_INFO;
22
+
23
+ public:
24
+ CopyInfo() : ParseInfo(TYPE), catalog(INVALID_CATALOG), schema(DEFAULT_SCHEMA) {
21
25
  }
22
26
 
23
27
  //! The catalog name to copy to/from
@@ -50,6 +54,9 @@ public:
50
54
  result->options = options;
51
55
  return result;
52
56
  }
57
+
58
+ void FormatSerialize(FormatSerializer &serializer) const override;
59
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
53
60
  };
54
61
 
55
62
  } // namespace duckdb
@@ -28,7 +28,7 @@ struct CreateIndexInfo : public CreateInfo {
28
28
  //! Index Constraint Type
29
29
  IndexConstraintType constraint_type;
30
30
  //! The table to create the index on
31
- unique_ptr<BaseTableRef> table;
31
+ string table;
32
32
  //! Set of expressions to index by
33
33
  vector<unique_ptr<ParsedExpression>> expressions;
34
34
  vector<unique_ptr<ParsedExpression>> parsed_expressions;
@@ -47,6 +47,9 @@ public:
47
47
  DUCKDB_API unique_ptr<CreateInfo> Copy() const override;
48
48
 
49
49
  static unique_ptr<CreateIndexInfo> Deserialize(Deserializer &deserializer);
50
+
51
+ void FormatSerialize(FormatSerializer &serializer) const override;
52
+ static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
50
53
  };
51
54
 
52
55
  } // namespace duckdb
@@ -28,9 +28,13 @@ enum class OnCreateConflict : uint8_t {
28
28
  };
29
29
 
30
30
  struct CreateInfo : public ParseInfo {
31
+ public:
32
+ static constexpr const ParseInfoType TYPE = ParseInfoType::CREATE_INFO;
33
+
34
+ public:
31
35
  explicit CreateInfo(CatalogType type, string schema = DEFAULT_SCHEMA, string catalog_p = INVALID_CATALOG)
32
- : type(type), catalog(std::move(catalog_p)), schema(schema), on_conflict(OnCreateConflict::ERROR_ON_CONFLICT),
33
- temporary(false), internal(false) {
36
+ : ParseInfo(TYPE), type(type), catalog(std::move(catalog_p)), schema(schema),
37
+ on_conflict(OnCreateConflict::ERROR_ON_CONFLICT), temporary(false), internal(false) {
34
38
  }
35
39
  ~CreateInfo() override {
36
40
  }
@@ -61,6 +65,9 @@ public:
61
65
  static unique_ptr<CreateInfo> Deserialize(Deserializer &deserializer);
62
66
  static unique_ptr<CreateInfo> Deserialize(Deserializer &deserializer, PlanDeserializationState &state);
63
67
 
68
+ void FormatSerialize(FormatSerializer &serializer) const override;
69
+ static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
70
+
64
71
  virtual unique_ptr<CreateInfo> Copy() const = 0;
65
72
 
66
73
  DUCKDB_API void CopyProperties(CreateInfo &other) const;
@@ -24,6 +24,9 @@ public:
24
24
 
25
25
  DUCKDB_API static unique_ptr<CreateMacroInfo> Deserialize(Deserializer &deserializer);
26
26
 
27
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
28
+ DUCKDB_API static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
29
+
27
30
  protected:
28
31
  void SerializeInternal(Serializer &) const override;
29
32
  };
@@ -29,6 +29,9 @@ public:
29
29
  return result;
30
30
  }
31
31
 
32
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
33
+ DUCKDB_API static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
34
+
32
35
  protected:
33
36
  void SerializeInternal(Serializer &) const override {
34
37
  }
@@ -52,6 +52,9 @@ public:
52
52
  public:
53
53
  DUCKDB_API static unique_ptr<CreateSequenceInfo> Deserialize(Deserializer &deserializer);
54
54
 
55
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
56
+ DUCKDB_API static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
57
+
55
58
  protected:
56
59
  void SerializeInternal(Serializer &) const override;
57
60
  };
@@ -40,6 +40,9 @@ public:
40
40
  DUCKDB_API static unique_ptr<CreateTableInfo> Deserialize(Deserializer &deserializer);
41
41
 
42
42
  DUCKDB_API unique_ptr<CreateInfo> Copy() const override;
43
+
44
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
45
+ DUCKDB_API static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
43
46
  };
44
47
 
45
48
  } // namespace duckdb
@@ -31,6 +31,9 @@ public:
31
31
 
32
32
  DUCKDB_API static unique_ptr<CreateTypeInfo> Deserialize(Deserializer &deserializer);
33
33
 
34
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
35
+ DUCKDB_API static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
36
+
34
37
  protected:
35
38
  void SerializeInternal(Serializer &) const override;
36
39
  };
@@ -38,6 +38,9 @@ public:
38
38
  //! Gets a bound CreateViewInfo object from a CREATE VIEW statement
39
39
  DUCKDB_API static unique_ptr<CreateViewInfo> FromCreateView(ClientContext &context, const string &sql);
40
40
 
41
+ DUCKDB_API void FormatSerialize(FormatSerializer &serializer) const override;
42
+ DUCKDB_API static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
43
+
41
44
  protected:
42
45
  void SerializeInternal(Serializer &serializer) const override;
43
46
  };
@@ -14,6 +14,10 @@
14
14
  namespace duckdb {
15
15
 
16
16
  struct DetachInfo : public ParseInfo {
17
+ public:
18
+ static constexpr const ParseInfoType TYPE = ParseInfoType::DETACH_INFO;
19
+
20
+ public:
17
21
  DetachInfo();
18
22
 
19
23
  //! The alias of the attached database
@@ -25,5 +29,8 @@ public:
25
29
  unique_ptr<DetachInfo> Copy() const;
26
30
  void Serialize(Serializer &serializer) const;
27
31
  static unique_ptr<ParseInfo> Deserialize(Deserializer &deserializer);
32
+
33
+ void FormatSerialize(FormatSerializer &serializer) const override;
34
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
28
35
  };
29
36
  } // namespace duckdb
@@ -15,6 +15,10 @@
15
15
  namespace duckdb {
16
16
 
17
17
  struct DropInfo : public ParseInfo {
18
+ public:
19
+ static constexpr const ParseInfoType TYPE = ParseInfoType::DROP_INFO;
20
+
21
+ public:
18
22
  DropInfo();
19
23
 
20
24
  //! The catalog type to drop
@@ -38,6 +42,9 @@ public:
38
42
 
39
43
  void Serialize(Serializer &serializer) const;
40
44
  static unique_ptr<ParseInfo> Deserialize(Deserializer &deserializer);
45
+
46
+ void FormatSerialize(FormatSerializer &serializer) const override;
47
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
41
48
  };
42
49
 
43
50
  } // namespace duckdb
@@ -38,6 +38,13 @@ struct ExportedTableInfo {
38
38
  };
39
39
 
40
40
  struct BoundExportData : public ParseInfo {
41
+ public:
42
+ static constexpr const ParseInfoType TYPE = ParseInfoType::BOUND_EXPORT_DATA;
43
+
44
+ public:
45
+ BoundExportData() : ParseInfo(TYPE) {
46
+ }
47
+
41
48
  vector<ExportedTableInfo> data;
42
49
  };
43
50
 
@@ -1,7 +1,7 @@
1
1
  //===----------------------------------------------------------------------===//
2
2
  // DuckDB
3
3
  //
4
- // duckdb/parser/parsed_data/vacuum_info.hpp
4
+ // duckdb/parser/parsed_data/load_info.hpp
5
5
  //
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
@@ -13,10 +13,17 @@
13
13
 
14
14
  namespace duckdb {
15
15
 
16
- enum class LoadType { LOAD, INSTALL, FORCE_INSTALL };
16
+ enum class LoadType : uint8_t { LOAD, INSTALL, FORCE_INSTALL };
17
17
 
18
18
  struct LoadInfo : public ParseInfo {
19
- std::string filename;
19
+ public:
20
+ static constexpr const ParseInfoType TYPE = ParseInfoType::LOAD_INFO;
21
+
22
+ public:
23
+ LoadInfo() : ParseInfo(TYPE) {
24
+ }
25
+
26
+ string filename;
20
27
  LoadType load_type;
21
28
 
22
29
  public:
@@ -42,6 +49,9 @@ public:
42
49
  reader.Finalize();
43
50
  return std::move(load_info);
44
51
  }
52
+
53
+ void FormatSerialize(FormatSerializer &serializer) const override;
54
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
45
55
  };
46
56
 
47
57
  } // namespace duckdb
@@ -12,10 +12,29 @@
12
12
 
13
13
  namespace duckdb {
14
14
 
15
+ enum class ParseInfoType : uint8_t {
16
+ ALTER_INFO,
17
+ ATTACH_INFO,
18
+ COPY_INFO,
19
+ CREATE_INFO,
20
+ DETACH_INFO,
21
+ DROP_INFO,
22
+ BOUND_EXPORT_DATA,
23
+ LOAD_INFO,
24
+ PRAGMA_INFO,
25
+ SHOW_SELECT_INFO,
26
+ TRANSACTION_INFO,
27
+ VACUUM_INFO
28
+ };
29
+
15
30
  struct ParseInfo {
31
+ explicit ParseInfo(ParseInfoType info_type) : info_type(info_type) {
32
+ }
16
33
  virtual ~ParseInfo() {
17
34
  }
18
35
 
36
+ ParseInfoType info_type;
37
+
19
38
  public:
20
39
  template <class TARGET>
21
40
  TARGET &Cast() {
@@ -28,6 +47,9 @@ public:
28
47
  D_ASSERT(dynamic_cast<const TARGET *>(this));
29
48
  return reinterpret_cast<const TARGET &>(*this);
30
49
  }
50
+
51
+ virtual void FormatSerialize(FormatSerializer &serializer) const;
52
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
31
53
  };
32
54
 
33
55
  } // namespace duckdb
@@ -18,6 +18,13 @@ namespace duckdb {
18
18
  enum class PragmaType : uint8_t { PRAGMA_STATEMENT, PRAGMA_CALL };
19
19
 
20
20
  struct PragmaInfo : public ParseInfo {
21
+ public:
22
+ static constexpr const ParseInfoType TYPE = ParseInfoType::PRAGMA_INFO;
23
+
24
+ public:
25
+ PragmaInfo() : ParseInfo(TYPE) {
26
+ }
27
+
21
28
  //! Name of the PRAGMA statement
22
29
  string name;
23
30
  //! Parameter list (if any)
@@ -33,6 +40,9 @@ public:
33
40
  result->named_parameters = named_parameters;
34
41
  return result;
35
42
  }
43
+
44
+ void FormatSerialize(FormatSerializer &serializer) const override;
45
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
36
46
  };
37
47
 
38
48
  } // namespace duckdb
@@ -14,6 +14,13 @@
14
14
  namespace duckdb {
15
15
 
16
16
  struct ShowSelectInfo : public ParseInfo {
17
+ public:
18
+ static constexpr const ParseInfoType TYPE = ParseInfoType::SHOW_SELECT_INFO;
19
+
20
+ public:
21
+ ShowSelectInfo() : ParseInfo(TYPE) {
22
+ }
23
+
17
24
  //! Types of projected columns
18
25
  vector<LogicalType> types;
19
26
  //! The QueryNode of select query
@@ -15,6 +15,10 @@ namespace duckdb {
15
15
  enum class TransactionType : uint8_t { INVALID, BEGIN_TRANSACTION, COMMIT, ROLLBACK };
16
16
 
17
17
  struct TransactionInfo : public ParseInfo {
18
+ public:
19
+ static constexpr const ParseInfoType TYPE = ParseInfoType::TRANSACTION_INFO;
20
+
21
+ public:
18
22
  explicit TransactionInfo(TransactionType type);
19
23
 
20
24
  //! The type of transaction statement
@@ -23,6 +27,12 @@ struct TransactionInfo : public ParseInfo {
23
27
  public:
24
28
  void Serialize(Serializer &serializer) const;
25
29
  static unique_ptr<ParseInfo> Deserialize(Deserializer &deserializer);
30
+
31
+ void FormatSerialize(FormatSerializer &serializer) const override;
32
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
33
+
34
+ private:
35
+ TransactionInfo();
26
36
  };
27
37
 
28
38
  } // namespace duckdb
@@ -15,6 +15,8 @@
15
15
  #include "duckdb/common/optional_ptr.hpp"
16
16
 
17
17
  namespace duckdb {
18
+ class FormatSerializer;
19
+ class FormatDeserializer;
18
20
 
19
21
  struct VacuumOptions {
20
22
  VacuumOptions() : vacuum(false), analyze(false) {
@@ -22,9 +24,15 @@ struct VacuumOptions {
22
24
 
23
25
  bool vacuum;
24
26
  bool analyze;
27
+
28
+ void FormatSerialize(FormatSerializer &serializer) const;
29
+ static VacuumOptions FormatDeserialize(FormatDeserializer &deserializer);
25
30
  };
26
31
 
27
32
  struct VacuumInfo : public ParseInfo {
33
+ public:
34
+ static constexpr const ParseInfoType TYPE = ParseInfoType::VACUUM_INFO;
35
+
28
36
  public:
29
37
  explicit VacuumInfo(VacuumOptions options);
30
38
 
@@ -42,6 +50,8 @@ public:
42
50
 
43
51
  void Serialize(Serializer &serializer) const;
44
52
  static unique_ptr<ParseInfo> Deserialize(Deserializer &deserializer);
53
+ void FormatSerialize(FormatSerializer &serializer) const override;
54
+ static unique_ptr<ParseInfo> FormatDeserialize(FormatDeserializer &deserializer);
45
55
  };
46
56
 
47
57
  } // namespace duckdb
@@ -21,14 +21,6 @@ public:
21
21
  virtual ~BoundConstraint() {
22
22
  }
23
23
 
24
- void Serialize(Serializer &serializer) const {
25
- serializer.Write(type);
26
- }
27
-
28
- static unique_ptr<BoundConstraint> Deserialize(Deserializer &source) {
29
- return make_uniq<BoundConstraint>(source.Read<ConstraintType>());
30
- }
31
-
32
24
  ConstraintType type;
33
25
 
34
26
  public:
@@ -63,6 +63,9 @@ public:
63
63
 
64
64
  void Serialize(Serializer &serializer) const;
65
65
  static BoundOrderByNode Deserialize(Deserializer &source, PlanDeserializationState &state);
66
+
67
+ void FormatSerialize(FormatSerializer &serializer) const;
68
+ static BoundOrderByNode FormatDeserialize(FormatDeserializer &deserializer);
66
69
  };
67
70
 
68
71
  class BoundLimitModifier : public BoundResultModifier {
@@ -98,6 +101,9 @@ public:
98
101
 
99
102
  void Serialize(Serializer &serializer) const;
100
103
  static unique_ptr<BoundOrderModifier> Deserialize(Deserializer &source, PlanDeserializationState &state);
104
+
105
+ void FormatSerialize(FormatSerializer &serializer) const;
106
+ static unique_ptr<BoundOrderModifier> FormatDeserialize(FormatDeserializer &deserializer);
101
107
  };
102
108
 
103
109
  enum class DistinctType : uint8_t { DISTINCT = 0, DISTINCT_ON = 1 };
@@ -14,6 +14,8 @@
14
14
  #include <functional>
15
15
 
16
16
  namespace duckdb {
17
+ class FormatSerializer;
18
+ class FormatDeserializer;
17
19
 
18
20
  struct ColumnBinding {
19
21
  idx_t table_index;
@@ -36,6 +38,9 @@ struct ColumnBinding {
36
38
  bool operator!=(const ColumnBinding &rhs) const {
37
39
  return !(*this == rhs);
38
40
  }
41
+
42
+ void FormatSerialize(FormatSerializer &serializer) const;
43
+ static ColumnBinding FormatDeserialize(FormatDeserializer &deserializer);
39
44
  };
40
45
 
41
46
  } // namespace duckdb
@@ -35,6 +35,9 @@ public:
35
35
  void Serialize(FieldWriter &writer) const override;
36
36
  static unique_ptr<Expression> Deserialize(ExpressionDeserializationState &state, FieldReader &reader);
37
37
 
38
+ void FormatSerialize(FormatSerializer &serializer) const override;
39
+ static unique_ptr<Expression> FormatDeserialize(FormatDeserializer &deserializer);
40
+
38
41
  public:
39
42
  ExpressionType LowerComparisonType() {
40
43
  return lower_inclusive ? ExpressionType::COMPARE_GREATERTHANOREQUALTO : ExpressionType::COMPARE_GREATERTHAN;
@@ -42,5 +45,8 @@ public:
42
45
  ExpressionType UpperComparisonType() {
43
46
  return upper_inclusive ? ExpressionType::COMPARE_LESSTHANOREQUALTO : ExpressionType::COMPARE_LESSTHAN;
44
47
  }
48
+
49
+ private:
50
+ BoundBetweenExpression();
45
51
  };
46
52
  } // namespace duckdb
@@ -18,6 +18,9 @@ struct BoundCaseCheck {
18
18
 
19
19
  void Serialize(Serializer &serializer) const;
20
20
  static BoundCaseCheck Deserialize(Deserializer &source, PlanDeserializationState &state);
21
+
22
+ void FormatSerialize(FormatSerializer &serializer) const;
23
+ static BoundCaseCheck FormatDeserialize(FormatDeserializer &deserializer);
21
24
  };
22
25
 
23
26
  class BoundCaseExpression : public Expression {
@@ -41,5 +44,8 @@ public:
41
44
 
42
45
  void Serialize(FieldWriter &writer) const override;
43
46
  static unique_ptr<Expression> Deserialize(ExpressionDeserializationState &state, FieldReader &reader);
47
+
48
+ void FormatSerialize(FormatSerializer &serializer) const override;
49
+ static unique_ptr<Expression> FormatDeserialize(FormatDeserializer &deserializer);
44
50
  };
45
51
  } // namespace duckdb
@@ -52,5 +52,11 @@ public:
52
52
 
53
53
  void Serialize(FieldWriter &writer) const override;
54
54
  static unique_ptr<Expression> Deserialize(ExpressionDeserializationState &state, FieldReader &reader);
55
+
56
+ void FormatSerialize(FormatSerializer &serializer) const override;
57
+ static unique_ptr<Expression> FormatDeserialize(FormatDeserializer &deserializer);
58
+
59
+ private:
60
+ BoundCastExpression(ClientContext &context, unique_ptr<Expression> child, LogicalType target_type);
55
61
  };
56
62
  } // namespace duckdb
@@ -51,5 +51,8 @@ public:
51
51
 
52
52
  void Serialize(FieldWriter &writer) const override;
53
53
  static unique_ptr<Expression> Deserialize(ExpressionDeserializationState &state, FieldReader &reader);
54
+
55
+ void FormatSerialize(FormatSerializer &serializer) const override;
56
+ static unique_ptr<Expression> FormatDeserialize(FormatDeserializer &deserializer);
54
57
  };
55
58
  } // namespace duckdb