duckdb 0.8.2-dev4142.0 → 0.8.2-dev4314.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 (507) hide show
  1. package/binding.gyp +0 -2
  2. package/lib/duckdb.js +3 -3
  3. package/package.json +1 -1
  4. package/src/connection.cpp +9 -8
  5. package/src/database.cpp +5 -8
  6. package/src/duckdb/extension/icu/icu-datepart.cpp +2 -2
  7. package/src/duckdb/extension/icu/icu-strptime.cpp +0 -9
  8. package/src/duckdb/extension/icu/icu_extension.cpp +3 -3
  9. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/gregocal.h +1 -1
  10. package/src/duckdb/extension/json/buffered_json_reader.cpp +3 -17
  11. package/src/duckdb/extension/json/include/buffered_json_reader.hpp +2 -5
  12. package/src/duckdb/extension/json/include/json_deserializer.hpp +2 -2
  13. package/src/duckdb/extension/json/include/json_scan.hpp +5 -12
  14. package/src/duckdb/extension/json/include/json_serializer.hpp +3 -3
  15. package/src/duckdb/extension/json/include/json_transform.hpp +2 -5
  16. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +1 -1
  17. package/src/duckdb/extension/json/json_functions/json_transform.cpp +2 -18
  18. package/src/duckdb/extension/json/json_scan.cpp +7 -76
  19. package/src/duckdb/extension/json/serialize_json.cpp +8 -8
  20. package/src/duckdb/extension/parquet/column_writer.cpp +46 -45
  21. package/src/duckdb/extension/parquet/include/column_writer.hpp +2 -2
  22. package/src/duckdb/extension/parquet/include/parquet_reader.hpp +2 -5
  23. package/src/duckdb/extension/parquet/include/parquet_rle_bp_encoder.hpp +4 -4
  24. package/src/duckdb/extension/parquet/parquet_extension.cpp +74 -55
  25. package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -2
  26. package/src/duckdb/extension/parquet/serialize_parquet.cpp +4 -4
  27. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +0 -1
  28. package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +0 -1
  29. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +0 -1
  30. package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +0 -1
  31. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +0 -2
  32. package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +1 -3
  33. package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +0 -1
  34. package/src/duckdb/src/catalog/catalog_entry.cpp +2 -11
  35. package/src/duckdb/src/catalog/catalog_set.cpp +16 -14
  36. package/src/duckdb/src/catalog/default/default_functions.cpp +2 -2
  37. package/src/duckdb/src/common/arrow/arrow_converter.cpp +0 -1
  38. package/src/duckdb/src/common/constants.cpp +0 -1
  39. package/src/duckdb/src/common/enum_util.cpp +0 -10
  40. package/src/duckdb/src/common/exception.cpp +1 -1
  41. package/src/duckdb/src/common/extra_type_info.cpp +20 -192
  42. package/src/duckdb/src/common/multi_file_reader.cpp +0 -68
  43. package/src/duckdb/src/common/serializer/binary_serializer.cpp +9 -4
  44. package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +3 -11
  45. package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +1 -1
  46. package/src/duckdb/src/common/serializer/memory_stream.cpp +61 -0
  47. package/src/duckdb/src/common/serializer/{format_serializer.cpp → serializer.cpp} +2 -2
  48. package/src/duckdb/src/common/sort/partition_state.cpp +107 -29
  49. package/src/duckdb/src/common/types/column/column_data_collection.cpp +4 -4
  50. package/src/duckdb/src/common/types/data_chunk.cpp +11 -43
  51. package/src/duckdb/src/common/types/hyperloglog.cpp +4 -23
  52. package/src/duckdb/src/common/types/interval.cpp +2 -2
  53. package/src/duckdb/src/common/types/value.cpp +10 -135
  54. package/src/duckdb/src/common/types/vector.cpp +17 -149
  55. package/src/duckdb/src/common/types.cpp +2 -20
  56. package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +0 -1
  57. package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +6 -7
  58. package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +5 -28
  59. package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +30 -78
  60. package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +5 -30
  61. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +6 -9
  62. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +21 -16
  63. package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +15 -23
  64. package/src/duckdb/src/execution/index/art/art.cpp +5 -1
  65. package/src/duckdb/src/execution/index/art/leaf.cpp +13 -10
  66. package/src/duckdb/src/execution/index/art/node48.cpp +0 -2
  67. package/src/duckdb/src/execution/index/fixed_size_allocator.cpp +38 -73
  68. package/src/duckdb/src/execution/index/fixed_size_buffer.cpp +245 -27
  69. package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +2 -3
  70. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +35 -20
  71. package/src/duckdb/src/function/macro_function.cpp +0 -42
  72. package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +10 -8
  73. package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +13 -12
  74. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +9 -11
  75. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +7 -33
  76. package/src/duckdb/src/function/scalar_function.cpp +1 -2
  77. package/src/duckdb/src/function/scalar_macro_function.cpp +0 -10
  78. package/src/duckdb/src/function/table/copy_csv.cpp +38 -38
  79. package/src/duckdb/src/function/table/read_csv.cpp +5 -174
  80. package/src/duckdb/src/function/table/table_scan.cpp +5 -42
  81. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  82. package/src/duckdb/src/function/table_function.cpp +3 -4
  83. package/src/duckdb/src/function/table_macro_function.cpp +0 -10
  84. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +0 -2
  85. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +0 -2
  86. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +0 -2
  87. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +3 -8
  88. package/src/duckdb/src/include/duckdb/common/constants.hpp +4 -2
  89. package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +16 -46
  90. package/src/duckdb/src/include/duckdb/common/index_vector.hpp +4 -4
  91. package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +2 -6
  92. package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +0 -4
  93. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +44 -23
  94. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +31 -23
  95. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +4 -6
  96. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +3 -3
  97. package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +17 -0
  98. package/src/duckdb/src/include/duckdb/common/serializer/{format_deserializer.hpp → deserializer.hpp} +13 -13
  99. package/src/duckdb/src/include/duckdb/common/serializer/memory_stream.hpp +62 -0
  100. package/src/duckdb/src/include/duckdb/common/serializer/read_stream.hpp +38 -0
  101. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +15 -13
  102. package/src/duckdb/src/include/duckdb/common/serializer/{format_serializer.hpp → serializer.hpp} +13 -12
  103. package/src/duckdb/src/include/duckdb/common/serializer/write_stream.hpp +36 -0
  104. package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +14 -4
  105. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +2 -2
  106. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +3 -8
  107. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +4 -10
  108. package/src/duckdb/src/include/duckdb/common/types/interval.hpp +4 -4
  109. package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -5
  110. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +2 -7
  111. package/src/duckdb/src/include/duckdb/common/types.hpp +1 -10
  112. package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +2 -0
  113. package/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +1 -7
  114. package/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +38 -8
  115. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_reader_options.hpp +2 -11
  116. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +4 -14
  117. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +3 -3
  118. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +15 -98
  119. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +1 -7
  120. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +9 -10
  121. package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +2 -2
  122. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -12
  123. package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +2 -7
  124. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +4 -16
  125. package/src/duckdb/src/include/duckdb/function/table_function.hpp +2 -11
  126. package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +2 -7
  127. package/src/duckdb/src/include/duckdb/main/relation.hpp +9 -2
  128. package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +1 -4
  129. package/src/duckdb/src/include/duckdb/parser/column_list.hpp +2 -6
  130. package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +2 -2
  131. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -12
  132. package/src/duckdb/src/include/duckdb/parser/constraints/check_constraint.hpp +2 -5
  133. package/src/duckdb/src/include/duckdb/parser/constraints/foreign_key_constraint.hpp +2 -7
  134. package/src/duckdb/src/include/duckdb/parser/constraints/not_null_constraint.hpp +2 -7
  135. package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +2 -7
  136. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +2 -5
  137. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -4
  138. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +4 -6
  139. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +2 -4
  140. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +2 -4
  141. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +2 -4
  142. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +2 -4
  143. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +2 -4
  144. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +2 -5
  145. package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +2 -4
  146. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +2 -4
  147. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +2 -4
  148. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +2 -4
  149. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +2 -4
  150. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +2 -4
  151. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +2 -4
  152. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +2 -4
  153. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +2 -4
  154. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +2 -5
  155. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +0 -2
  156. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +0 -2
  157. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +24 -51
  158. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +1 -4
  159. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +2 -2
  160. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_collation_info.hpp +0 -3
  161. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_copy_function_info.hpp +0 -3
  162. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +0 -5
  163. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +2 -7
  164. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +1 -13
  165. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +2 -8
  166. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +2 -12
  167. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_sequence_info.hpp +2 -7
  168. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +2 -7
  169. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +2 -7
  170. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +2 -7
  171. package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +2 -4
  172. package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +2 -5
  173. package/src/duckdb/src/include/duckdb/parser/parsed_data/load_info.hpp +2 -21
  174. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
  175. package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +2 -2
  176. package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +2 -4
  177. package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +1 -4
  178. package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +5 -7
  179. package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +3 -16
  180. package/src/duckdb/src/include/duckdb/parser/query_node/cte_node.hpp +2 -4
  181. package/src/duckdb/src/include/duckdb/parser/query_node/recursive_cte_node.hpp +2 -4
  182. package/src/duckdb/src/include/duckdb/parser/query_node/select_node.hpp +2 -4
  183. package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +2 -4
  184. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +7 -14
  185. package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +14 -32
  186. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +4 -9
  187. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +2 -6
  188. package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -6
  189. package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +2 -6
  190. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +2 -6
  191. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +6 -14
  192. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +2 -6
  193. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +2 -6
  194. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +2 -10
  195. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +1 -0
  196. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +0 -1
  197. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +2 -8
  198. package/src/duckdb/src/include/duckdb/planner/column_binding.hpp +4 -4
  199. package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +2 -4
  200. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +2 -4
  201. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +3 -9
  202. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +2 -5
  203. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +2 -8
  204. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +2 -4
  205. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +2 -5
  206. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +2 -5
  207. package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +2 -5
  208. package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +2 -5
  209. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +2 -4
  210. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +2 -8
  211. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +2 -5
  212. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_data.hpp +2 -19
  213. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +2 -5
  214. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +2 -5
  215. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +0 -3
  216. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +2 -5
  217. package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +2 -5
  218. package/src/duckdb/src/include/duckdb/planner/expression.hpp +2 -14
  219. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +4 -8
  220. package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +2 -4
  221. package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +4 -8
  222. package/src/duckdb/src/include/duckdb/planner/joinside.hpp +1 -6
  223. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -17
  224. package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +2 -4
  225. package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +2 -4
  226. package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +2 -5
  227. package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +2 -6
  228. package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +2 -4
  229. package/src/duckdb/src/include/duckdb/planner/operator/logical_create.hpp +2 -5
  230. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +2 -5
  231. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_table.hpp +2 -5
  232. package/src/duckdb/src/include/duckdb/planner/operator/logical_cross_product.hpp +2 -5
  233. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -4
  234. package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +2 -5
  235. package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +2 -4
  236. package/src/duckdb/src/include/duckdb/planner/operator/logical_dependent_join.hpp +0 -1
  237. package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +2 -4
  238. package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +2 -4
  239. package/src/duckdb/src/include/duckdb/planner/operator/logical_empty_result.hpp +2 -4
  240. package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +0 -2
  241. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +2 -5
  242. package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +0 -3
  243. package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +2 -4
  244. package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +2 -4
  245. package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +2 -4
  246. package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +2 -4
  247. package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +2 -5
  248. package/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +0 -2
  249. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit.hpp +2 -5
  250. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +2 -5
  251. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -4
  252. package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +2 -5
  253. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +2 -4
  254. package/src/duckdb/src/include/duckdb/planner/operator/logical_positional_join.hpp +2 -5
  255. package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +0 -2
  256. package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +0 -2
  257. package/src/duckdb/src/include/duckdb/planner/operator/logical_projection.hpp +2 -4
  258. package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +2 -4
  259. package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +2 -5
  260. package/src/duckdb/src/include/duckdb/planner/operator/logical_sample.hpp +2 -5
  261. package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +2 -5
  262. package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +2 -5
  263. package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +2 -5
  264. package/src/duckdb/src/include/duckdb/planner/operator/logical_simple.hpp +2 -5
  265. package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +2 -4
  266. package/src/duckdb/src/include/duckdb/planner/operator/logical_unnest.hpp +2 -4
  267. package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +2 -4
  268. package/src/duckdb/src/include/duckdb/planner/operator/logical_window.hpp +2 -4
  269. package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -3
  270. package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +0 -5
  271. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +3 -12
  272. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +2 -2
  273. package/src/duckdb/src/include/duckdb/storage/block.hpp +7 -4
  274. package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +3 -2
  275. package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +6 -6
  276. package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +18 -18
  277. package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +6 -0
  278. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
  279. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +4 -5
  280. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_reader.hpp +2 -1
  281. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_writer.hpp +2 -2
  282. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +35 -19
  283. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -11
  284. package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +3 -5
  285. package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +3 -11
  286. package/src/duckdb/src/include/duckdb/storage/statistics/list_stats.hpp +2 -7
  287. package/src/duckdb/src/include/duckdb/storage/statistics/node_statistics.hpp +0 -26
  288. package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +2 -7
  289. package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +2 -7
  290. package/src/duckdb/src/include/duckdb/storage/statistics/struct_stats.hpp +2 -7
  291. package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +4 -6
  292. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +8 -17
  293. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +5 -20
  294. package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +2 -2
  295. package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
  296. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -7
  297. package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -2
  298. package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +4 -7
  299. package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +27 -29
  300. package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +0 -2
  301. package/src/duckdb/src/main/client_context.cpp +0 -6
  302. package/src/duckdb/src/main/client_verify.cpp +0 -2
  303. package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
  304. package/src/duckdb/src/main/relation.cpp +15 -2
  305. package/src/duckdb/src/parser/column_definition.cpp +0 -25
  306. package/src/duckdb/src/parser/column_list.cpp +0 -13
  307. package/src/duckdb/src/parser/constraint.cpp +0 -33
  308. package/src/duckdb/src/parser/constraints/check_constraint.cpp +0 -11
  309. package/src/duckdb/src/parser/constraints/foreign_key_constraint.cpp +0 -27
  310. package/src/duckdb/src/parser/constraints/not_null_constraint.cpp +0 -11
  311. package/src/duckdb/src/parser/constraints/unique_constraint.cpp +0 -24
  312. package/src/duckdb/src/parser/expression/between_expression.cpp +2 -16
  313. package/src/duckdb/src/parser/expression/case_expression.cpp +2 -29
  314. package/src/duckdb/src/parser/expression/cast_expression.cpp +2 -16
  315. package/src/duckdb/src/parser/expression/collate_expression.cpp +2 -14
  316. package/src/duckdb/src/parser/expression/columnref_expression.cpp +2 -13
  317. package/src/duckdb/src/parser/expression/comparison_expression.cpp +2 -14
  318. package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -13
  319. package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -12
  320. package/src/duckdb/src/parser/expression/default_expression.cpp +2 -9
  321. package/src/duckdb/src/parser/expression/function_expression.cpp +2 -32
  322. package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -14
  323. package/src/duckdb/src/parser/expression/operator_expression.cpp +2 -13
  324. package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -13
  325. package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +2 -12
  326. package/src/duckdb/src/parser/expression/star_expression.cpp +2 -43
  327. package/src/duckdb/src/parser/expression/subquery_expression.cpp +2 -28
  328. package/src/duckdb/src/parser/expression/window_expression.cpp +2 -53
  329. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +0 -35
  330. package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +0 -18
  331. package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +0 -13
  332. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +1 -189
  333. package/src/duckdb/src/parser/parsed_data/attach_info.cpp +0 -29
  334. package/src/duckdb/src/parser/parsed_data/create_collation_info.cpp +0 -4
  335. package/src/duckdb/src/parser/parsed_data/create_copy_function_info.cpp +0 -4
  336. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +0 -48
  337. package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -47
  338. package/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +1 -28
  339. package/src/duckdb/src/parser/parsed_data/create_sequence_info.cpp +0 -31
  340. package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +0 -23
  341. package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +0 -22
  342. package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +0 -23
  343. package/src/duckdb/src/parser/parsed_data/detach_info.cpp +0 -19
  344. package/src/duckdb/src/parser/parsed_data/drop_info.cpp +0 -26
  345. package/src/duckdb/src/parser/parsed_data/sample_options.cpp +2 -25
  346. package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +0 -16
  347. package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +0 -20
  348. package/src/duckdb/src/parser/parsed_expression.cpp +2 -79
  349. package/src/duckdb/src/parser/query_node/cte_node.cpp +2 -19
  350. package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +2 -21
  351. package/src/duckdb/src/parser/query_node/select_node.cpp +2 -47
  352. package/src/duckdb/src/parser/query_node/set_operation_node.cpp +2 -17
  353. package/src/duckdb/src/parser/query_node.cpp +2 -62
  354. package/src/duckdb/src/parser/result_modifier.cpp +2 -96
  355. package/src/duckdb/src/parser/statement/select_statement.cpp +2 -13
  356. package/src/duckdb/src/parser/tableref/basetableref.cpp +2 -21
  357. package/src/duckdb/src/parser/tableref/emptytableref.cpp +0 -9
  358. package/src/duckdb/src/parser/tableref/expressionlistref.cpp +2 -28
  359. package/src/duckdb/src/parser/tableref/joinref.cpp +2 -23
  360. package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -61
  361. package/src/duckdb/src/parser/tableref/subqueryref.cpp +2 -15
  362. package/src/duckdb/src/parser/tableref/table_function.cpp +2 -17
  363. package/src/duckdb/src/parser/tableref.cpp +2 -52
  364. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +1 -4
  365. package/src/duckdb/src/planner/bound_result_modifier.cpp +0 -33
  366. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +6 -30
  367. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +0 -19
  368. package/src/duckdb/src/planner/expression/bound_case_expression.cpp +0 -36
  369. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +0 -15
  370. package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +0 -20
  371. package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +0 -13
  372. package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +0 -13
  373. package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +0 -11
  374. package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -5
  375. package/src/duckdb/src/planner/expression/bound_function_expression.cpp +8 -28
  376. package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +0 -4
  377. package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +0 -23
  378. package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +0 -16
  379. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +0 -18
  380. package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +0 -16
  381. package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +0 -4
  382. package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +0 -15
  383. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +7 -60
  384. package/src/duckdb/src/planner/expression.cpp +0 -74
  385. package/src/duckdb/src/planner/filter/conjunction_filter.cpp +0 -21
  386. package/src/duckdb/src/planner/filter/constant_filter.cpp +0 -12
  387. package/src/duckdb/src/planner/filter/null_filter.cpp +0 -14
  388. package/src/duckdb/src/planner/joinside.cpp +0 -24
  389. package/src/duckdb/src/planner/logical_operator.cpp +15 -215
  390. package/src/duckdb/src/planner/operator/logical_aggregate.cpp +0 -46
  391. package/src/duckdb/src/planner/operator/logical_any_join.cpp +0 -14
  392. package/src/duckdb/src/planner/operator/logical_column_data_get.cpp +0 -23
  393. package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +0 -23
  394. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +2 -56
  395. package/src/duckdb/src/planner/operator/logical_create.cpp +0 -12
  396. package/src/duckdb/src/planner/operator/logical_create_index.cpp +0 -25
  397. package/src/duckdb/src/planner/operator/logical_create_table.cpp +0 -10
  398. package/src/duckdb/src/planner/operator/logical_cross_product.cpp +0 -9
  399. package/src/duckdb/src/planner/operator/logical_cteref.cpp +0 -18
  400. package/src/duckdb/src/planner/operator/logical_delete.cpp +0 -22
  401. package/src/duckdb/src/planner/operator/logical_delim_get.cpp +0 -12
  402. package/src/duckdb/src/planner/operator/logical_dependent_join.cpp +0 -4
  403. package/src/duckdb/src/planner/operator/logical_distinct.cpp +0 -16
  404. package/src/duckdb/src/planner/operator/logical_dummy_scan.cpp +0 -10
  405. package/src/duckdb/src/planner/operator/logical_empty_result.cpp +0 -15
  406. package/src/duckdb/src/planner/operator/logical_expression_get.cpp +0 -24
  407. package/src/duckdb/src/planner/operator/logical_extension_operator.cpp +6 -19
  408. package/src/duckdb/src/planner/operator/logical_filter.cpp +0 -15
  409. package/src/duckdb/src/planner/operator/logical_get.cpp +12 -97
  410. package/src/duckdb/src/planner/operator/logical_insert.cpp +0 -77
  411. package/src/duckdb/src/planner/operator/logical_join.cpp +0 -17
  412. package/src/duckdb/src/planner/operator/logical_limit.cpp +0 -16
  413. package/src/duckdb/src/planner/operator/logical_limit_percent.cpp +0 -16
  414. package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +0 -13
  415. package/src/duckdb/src/planner/operator/logical_order.cpp +0 -15
  416. package/src/duckdb/src/planner/operator/logical_pivot.cpp +0 -20
  417. package/src/duckdb/src/planner/operator/logical_positional_join.cpp +0 -10
  418. package/src/duckdb/src/planner/operator/logical_pragma.cpp +0 -8
  419. package/src/duckdb/src/planner/operator/logical_prepare.cpp +0 -8
  420. package/src/duckdb/src/planner/operator/logical_projection.cpp +0 -12
  421. package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +0 -15
  422. package/src/duckdb/src/planner/operator/logical_reset.cpp +0 -12
  423. package/src/duckdb/src/planner/operator/logical_sample.cpp +0 -11
  424. package/src/duckdb/src/planner/operator/logical_set.cpp +0 -14
  425. package/src/duckdb/src/planner/operator/logical_set_operation.cpp +0 -13
  426. package/src/duckdb/src/planner/operator/logical_simple.cpp +0 -60
  427. package/src/duckdb/src/planner/operator/logical_top_n.cpp +0 -14
  428. package/src/duckdb/src/planner/operator/logical_unnest.cpp +0 -14
  429. package/src/duckdb/src/planner/operator/logical_update.cpp +0 -28
  430. package/src/duckdb/src/planner/operator/logical_window.cpp +0 -13
  431. package/src/duckdb/src/planner/planner.cpp +13 -22
  432. package/src/duckdb/src/planner/table_filter.cpp +0 -59
  433. package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +7 -17
  434. package/src/duckdb/src/storage/checkpoint/table_data_reader.cpp +7 -4
  435. package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +24 -22
  436. package/src/duckdb/src/storage/checkpoint_manager.cpp +203 -180
  437. package/src/duckdb/src/storage/data_table.cpp +2 -2
  438. package/src/duckdb/src/storage/metadata/metadata_manager.cpp +11 -9
  439. package/src/duckdb/src/storage/partial_block_manager.cpp +42 -15
  440. package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +20 -20
  441. package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +46 -42
  442. package/src/duckdb/src/storage/serialization/serialize_expression.cpp +63 -63
  443. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +167 -165
  444. package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +12 -12
  445. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +54 -54
  446. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +88 -88
  447. package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +72 -72
  448. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +20 -20
  449. package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +22 -22
  450. package/src/duckdb/src/storage/serialization/serialize_statement.cpp +4 -4
  451. package/src/duckdb/src/storage/serialization/serialize_storage.cpp +41 -6
  452. package/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +24 -24
  453. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +32 -32
  454. package/src/duckdb/src/storage/serialization/serialize_types.cpp +29 -29
  455. package/src/duckdb/src/storage/single_file_block_manager.cpp +17 -22
  456. package/src/duckdb/src/storage/statistics/base_statistics.cpp +31 -85
  457. package/src/duckdb/src/storage/statistics/column_statistics.cpp +6 -19
  458. package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +0 -26
  459. package/src/duckdb/src/storage/statistics/list_stats.cpp +6 -22
  460. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +20 -135
  461. package/src/duckdb/src/storage/statistics/string_stats.cpp +5 -28
  462. package/src/duckdb/src/storage/statistics/struct_stats.cpp +8 -30
  463. package/src/duckdb/src/storage/storage_info.cpp +1 -1
  464. package/src/duckdb/src/storage/table/chunk_info.cpp +9 -88
  465. package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +28 -34
  466. package/src/duckdb/src/storage/table/column_data.cpp +20 -25
  467. package/src/duckdb/src/storage/table/list_column_data.cpp +16 -9
  468. package/src/duckdb/src/storage/table/row_group.cpp +16 -92
  469. package/src/duckdb/src/storage/table/row_group_collection.cpp +5 -1
  470. package/src/duckdb/src/storage/table/standard_column_data.cpp +10 -7
  471. package/src/duckdb/src/storage/table/struct_column_data.cpp +17 -11
  472. package/src/duckdb/src/storage/table/table_statistics.cpp +13 -22
  473. package/src/duckdb/src/storage/wal_replay.cpp +108 -106
  474. package/src/duckdb/src/storage/write_ahead_log.cpp +135 -64
  475. package/src/duckdb/src/transaction/commit_state.cpp +22 -8
  476. package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +11 -6
  477. package/src/duckdb/src/verification/statement_verifier.cpp +0 -5
  478. package/src/duckdb/third_party/parquet/parquet_types.h +1 -1
  479. package/src/duckdb/ub_src_common.cpp +0 -4
  480. package/src/duckdb/ub_src_common_serializer.cpp +2 -4
  481. package/src/duckdb/ub_src_planner.cpp +0 -2
  482. package/src/duckdb/ub_src_planner_expression.cpp +0 -2
  483. package/src/duckdb/ub_src_planner_operator.cpp +0 -8
  484. package/src/duckdb_node.cpp +6 -12
  485. package/src/duckdb_node.hpp +23 -13
  486. package/src/statement.cpp +15 -16
  487. package/test/database_fail.test.ts +20 -0
  488. package/test/worker.js +7 -0
  489. package/src/duckdb/src/common/field_writer.cpp +0 -97
  490. package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +0 -27
  491. package/src/duckdb/src/common/serializer/buffered_serializer.cpp +0 -36
  492. package/src/duckdb/src/common/serializer.cpp +0 -24
  493. package/src/duckdb/src/include/duckdb/common/field_writer.hpp +0 -379
  494. package/src/duckdb/src/include/duckdb/common/serializer/buffered_deserializer.hpp +0 -41
  495. package/src/duckdb/src/include/duckdb/common/serializer/buffered_serializer.hpp +0 -50
  496. package/src/duckdb/src/include/duckdb/common/serializer.hpp +0 -151
  497. package/src/duckdb/src/include/duckdb/planner/plan_serialization.hpp +0 -44
  498. package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier_v2.hpp +0 -32
  499. package/src/duckdb/src/planner/expression/bound_default_expression.cpp +0 -16
  500. package/src/duckdb/src/planner/operator/logical_execute.cpp +0 -12
  501. package/src/duckdb/src/planner/operator/logical_explain.cpp +0 -22
  502. package/src/duckdb/src/planner/operator/logical_export.cpp +0 -13
  503. package/src/duckdb/src/planner/operator/logical_show.cpp +0 -21
  504. package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +0 -22
  505. package/src/duckdb/src/planner/plan_serialization.cpp +0 -20
  506. package/src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp +0 -34
  507. package/src/duckdb/ub_src_planner_parsed_data.cpp +0 -2
@@ -0,0 +1,61 @@
1
+ #include "duckdb/common/serializer/memory_stream.hpp"
2
+
3
+ namespace duckdb {
4
+
5
+ MemoryStream::MemoryStream(idx_t capacity)
6
+ : position(0), capacity(capacity), owns_data(true), data(static_cast<data_ptr_t>(malloc(capacity))) {
7
+ }
8
+
9
+ MemoryStream::MemoryStream(data_ptr_t buffer, idx_t capacity)
10
+ : position(0), capacity(capacity), owns_data(false), data(buffer) {
11
+ }
12
+
13
+ MemoryStream::~MemoryStream() {
14
+ if (owns_data) {
15
+ free(data);
16
+ }
17
+ }
18
+
19
+ void MemoryStream::WriteData(const_data_ptr_t source, idx_t write_size) {
20
+ while (position + write_size > capacity) {
21
+ if (owns_data) {
22
+ capacity *= 2;
23
+ data = static_cast<data_ptr_t>(realloc(data, capacity));
24
+ } else {
25
+ throw SerializationException("Failed to serialize: not enough space in buffer to fulfill write request");
26
+ }
27
+ }
28
+
29
+ memcpy(data + position, source, write_size);
30
+ position += write_size;
31
+ }
32
+
33
+ void MemoryStream::ReadData(data_ptr_t destination, idx_t read_size) {
34
+ if (position + read_size > capacity) {
35
+ throw SerializationException("Failed to deserialize: not enough data in buffer to fulfill read request");
36
+ }
37
+ memcpy(destination, data + position, read_size);
38
+ position += read_size;
39
+ }
40
+
41
+ void MemoryStream::Rewind() {
42
+ position = 0;
43
+ }
44
+
45
+ void MemoryStream::Release() {
46
+ owns_data = false;
47
+ }
48
+
49
+ data_ptr_t MemoryStream::GetData() const {
50
+ return data;
51
+ }
52
+
53
+ idx_t MemoryStream::GetPosition() const {
54
+ return position;
55
+ }
56
+
57
+ idx_t MemoryStream::GetCapacity() const {
58
+ return capacity;
59
+ }
60
+
61
+ } // namespace duckdb
@@ -1,9 +1,9 @@
1
- #include "duckdb/common/serializer/format_serializer.hpp"
1
+ #include "duckdb/common/serializer/serializer.hpp"
2
2
 
3
3
  namespace duckdb {
4
4
 
5
5
  template <>
6
- void FormatSerializer::WriteValue(const vector<bool> &vec) {
6
+ void Serializer::WriteValue(const vector<bool> &vec) {
7
7
  auto count = vec.size();
8
8
  OnListBegin(count);
9
9
  for (auto item : vec) {
@@ -100,11 +100,30 @@ PartitionGlobalSinkState::PartitionGlobalSinkState(ClientContext &context,
100
100
  }
101
101
 
102
102
  if (!orders.empty()) {
103
- auto types = payload_types;
104
- types.push_back(LogicalType::HASH);
105
- grouping_types.Initialize(types);
103
+ if (partitions.empty()) {
104
+ // Sort early into a dedicated hash group if we only sort.
105
+ grouping_types.Initialize(payload_types);
106
+ auto new_group =
107
+ make_uniq<PartitionGlobalHashGroup>(buffer_manager, partitions, orders, payload_types, external);
108
+ hash_groups.emplace_back(std::move(new_group));
109
+ } else {
110
+ auto types = payload_types;
111
+ types.push_back(LogicalType::HASH);
112
+ grouping_types.Initialize(types);
113
+ ResizeGroupingData(estimated_cardinality);
114
+ }
115
+ }
116
+ }
106
117
 
107
- ResizeGroupingData(estimated_cardinality);
118
+ bool PartitionGlobalSinkState::HasMergeTasks() const {
119
+ if (grouping_data) {
120
+ auto &groups = grouping_data->GetPartitions();
121
+ return !groups.empty();
122
+ } else if (!hash_groups.empty()) {
123
+ D_ASSERT(hash_groups.size() == 1);
124
+ return hash_groups[0]->count > 0;
125
+ } else {
126
+ return false;
108
127
  }
109
128
  }
110
129
 
@@ -206,6 +225,12 @@ PartitionLocalMergeState::PartitionLocalMergeState(PartitionGlobalSinkState &gst
206
225
  }
207
226
 
208
227
  void PartitionLocalMergeState::Scan() {
228
+ if (!merge_state->group_data) {
229
+ // OVER(ORDER BY...)
230
+ // Already sorted
231
+ return;
232
+ }
233
+
209
234
  auto &group_data = *merge_state->group_data;
210
235
  auto &hash_group = *merge_state->hash_group;
211
236
  auto &chunk_state = merge_state->chunk_state;
@@ -243,13 +268,26 @@ PartitionLocalSinkState::PartitionLocalSinkState(ClientContext &context, Partiti
243
268
  sort_cols = gstate.orders.size() + group_types.size();
244
269
 
245
270
  if (sort_cols) {
271
+ auto payload_types = gstate.payload_types;
246
272
  if (!group_types.empty()) {
247
273
  // OVER(PARTITION BY...)
248
274
  group_chunk.Initialize(allocator, group_types);
275
+ payload_types.emplace_back(LogicalType::HASH);
276
+ } else {
277
+ // OVER(ORDER BY...)
278
+ for (idx_t ord_idx = 0; ord_idx < gstate.orders.size(); ord_idx++) {
279
+ auto &pexpr = *gstate.orders[ord_idx].expression.get();
280
+ group_types.push_back(pexpr.return_type);
281
+ executor.AddExpression(pexpr);
282
+ }
283
+ group_chunk.Initialize(allocator, group_types);
284
+
285
+ // Single partition
286
+ auto &global_sort = *gstate.hash_groups[0]->global_sort;
287
+ local_sort = make_uniq<LocalSortState>();
288
+ local_sort->Initialize(global_sort, global_sort.buffer_manager);
249
289
  }
250
290
  // OVER(...)
251
- auto payload_types = gstate.payload_types;
252
- payload_types.emplace_back(LogicalType::HASH);
253
291
  payload_chunk.Initialize(allocator, payload_types);
254
292
  } else {
255
293
  // OVER()
@@ -259,20 +297,14 @@ PartitionLocalSinkState::PartitionLocalSinkState(ClientContext &context, Partiti
259
297
 
260
298
  void PartitionLocalSinkState::Hash(DataChunk &input_chunk, Vector &hash_vector) {
261
299
  const auto count = input_chunk.size();
262
- if (group_chunk.ColumnCount() > 0) {
263
- // OVER(PARTITION BY...) (hash grouping)
264
- group_chunk.Reset();
265
- executor.Execute(input_chunk, group_chunk);
266
- VectorOperations::Hash(group_chunk.data[0], hash_vector, count);
267
- for (idx_t prt_idx = 1; prt_idx < group_chunk.ColumnCount(); ++prt_idx) {
268
- VectorOperations::CombineHash(hash_vector, group_chunk.data[prt_idx], count);
269
- }
270
- } else {
271
- // OVER(...) (sorting)
272
- // Single partition => single hash value
273
- hash_vector.SetVectorType(VectorType::CONSTANT_VECTOR);
274
- auto hashes = ConstantVector::GetData<hash_t>(hash_vector);
275
- hashes[0] = 0;
300
+ D_ASSERT(group_chunk.ColumnCount() > 0);
301
+
302
+ // OVER(PARTITION BY...) (hash grouping)
303
+ group_chunk.Reset();
304
+ executor.Execute(input_chunk, group_chunk);
305
+ VectorOperations::Hash(group_chunk.data[0], hash_vector, count);
306
+ for (idx_t prt_idx = 1; prt_idx < group_chunk.ColumnCount(); ++prt_idx) {
307
+ VectorOperations::CombineHash(hash_vector, group_chunk.data[prt_idx], count);
276
308
  }
277
309
  }
278
310
 
@@ -306,6 +338,22 @@ void PartitionLocalSinkState::Sink(DataChunk &input_chunk) {
306
338
  return;
307
339
  }
308
340
 
341
+ if (local_sort) {
342
+ // OVER(ORDER BY...)
343
+ group_chunk.Reset();
344
+ executor.Execute(input_chunk, group_chunk);
345
+ local_sort->SinkChunk(group_chunk, input_chunk);
346
+
347
+ auto &hash_group = *gstate.hash_groups[0];
348
+ hash_group.count += input_chunk.size();
349
+
350
+ if (local_sort->SizeInBytes() > gstate.memory_per_thread) {
351
+ auto &global_sort = *hash_group.global_sort;
352
+ local_sort->Sort(global_sort, true);
353
+ }
354
+ return;
355
+ }
356
+
309
357
  // OVER(...)
310
358
  payload_chunk.Reset();
311
359
  auto &hash_vector = payload_chunk.data.back();
@@ -338,6 +386,15 @@ void PartitionLocalSinkState::Combine() {
338
386
  return;
339
387
  }
340
388
 
389
+ if (local_sort) {
390
+ // OVER(ORDER BY...)
391
+ auto &hash_group = *gstate.hash_groups[0];
392
+ auto &global_sort = *hash_group.global_sort;
393
+ global_sort.AddLocalState(*local_sort);
394
+ local_sort.reset();
395
+ return;
396
+ }
397
+
341
398
  // OVER(...)
342
399
  gstate.CombineLocalPartition(local_partition, local_append);
343
400
  }
@@ -365,6 +422,19 @@ PartitionGlobalMergeState::PartitionGlobalMergeState(PartitionGlobalSinkState &s
365
422
  group_data->InitializeScan(chunk_state, column_ids);
366
423
  }
367
424
 
425
+ PartitionGlobalMergeState::PartitionGlobalMergeState(PartitionGlobalSinkState &sink)
426
+ : sink(sink), memory_per_thread(sink.memory_per_thread),
427
+ num_threads(TaskScheduler::GetScheduler(sink.context).NumberOfThreads()), stage(PartitionSortStage::INIT),
428
+ total_tasks(0), tasks_assigned(0), tasks_completed(0) {
429
+
430
+ const hash_t hash_bin = 0;
431
+ const size_t group_idx = 0;
432
+ hash_group = sink.hash_groups[group_idx].get();
433
+ global_sort = sink.hash_groups[group_idx]->global_sort.get();
434
+
435
+ sink.bin_groups[hash_bin] = group_idx;
436
+ }
437
+
368
438
  void PartitionLocalMergeState::Prepare() {
369
439
  merge_state->group_data.reset();
370
440
 
@@ -390,7 +460,7 @@ void PartitionLocalMergeState::ExecuteTask() {
390
460
  Merge();
391
461
  break;
392
462
  default:
393
- throw InternalException("Unexpected PartitionGlobalMergeState in ExecuteTask!");
463
+ throw InternalException("Unexpected PartitionSortStage in ExecuteTask!");
394
464
  }
395
465
 
396
466
  merge_state->CompleteTask();
@@ -471,15 +541,23 @@ bool PartitionGlobalMergeState::TryPrepareNextStage() {
471
541
 
472
542
  PartitionGlobalMergeStates::PartitionGlobalMergeStates(PartitionGlobalSinkState &sink) {
473
543
  // Schedule all the sorts for maximum thread utilisation
474
- auto &partitions = sink.grouping_data->GetPartitions();
475
- sink.bin_groups.resize(partitions.size(), partitions.size());
476
- for (hash_t hash_bin = 0; hash_bin < partitions.size(); ++hash_bin) {
477
- auto &group_data = partitions[hash_bin];
478
- // Prepare for merge sort phase
479
- if (group_data->Count()) {
480
- auto state = make_uniq<PartitionGlobalMergeState>(sink, std::move(group_data), hash_bin);
481
- states.emplace_back(std::move(state));
544
+ if (sink.grouping_data) {
545
+ auto &partitions = sink.grouping_data->GetPartitions();
546
+ sink.bin_groups.resize(partitions.size(), partitions.size());
547
+ for (hash_t hash_bin = 0; hash_bin < partitions.size(); ++hash_bin) {
548
+ auto &group_data = partitions[hash_bin];
549
+ // Prepare for merge sort phase
550
+ if (group_data->Count()) {
551
+ auto state = make_uniq<PartitionGlobalMergeState>(sink, std::move(group_data), hash_bin);
552
+ states.emplace_back(std::move(state));
553
+ }
482
554
  }
555
+ } else {
556
+ // OVER(ORDER BY...)
557
+ // Already sunk into the single global sort, so set up single merge with no data
558
+ sink.bin_groups.resize(1, 1);
559
+ auto state = make_uniq<PartitionGlobalMergeState>(sink);
560
+ states.emplace_back(std::move(state));
483
561
  }
484
562
  }
485
563
 
@@ -6,8 +6,8 @@
6
6
  #include "duckdb/common/types/value_map.hpp"
7
7
  #include "duckdb/common/vector_operations/vector_operations.hpp"
8
8
  #include "duckdb/storage/buffer_manager.hpp"
9
- #include "duckdb/common/serializer/format_serializer.hpp"
10
- #include "duckdb/common/serializer/format_deserializer.hpp"
9
+ #include "duckdb/common/serializer/serializer.hpp"
10
+ #include "duckdb/common/serializer/deserializer.hpp"
11
11
 
12
12
  namespace duckdb {
13
13
 
@@ -1059,7 +1059,7 @@ const vector<unique_ptr<ColumnDataCollectionSegment>> &ColumnDataCollection::Get
1059
1059
  return segments;
1060
1060
  }
1061
1061
 
1062
- void ColumnDataCollection::FormatSerialize(FormatSerializer &serializer) const {
1062
+ void ColumnDataCollection::Serialize(Serializer &serializer) const {
1063
1063
  vector<vector<Value>> values;
1064
1064
  values.resize(ColumnCount());
1065
1065
  for (auto &chunk : Chunks()) {
@@ -1073,7 +1073,7 @@ void ColumnDataCollection::FormatSerialize(FormatSerializer &serializer) const {
1073
1073
  serializer.WriteProperty(101, "values", values);
1074
1074
  }
1075
1075
 
1076
- unique_ptr<ColumnDataCollection> ColumnDataCollection::FormatDeserialize(FormatDeserializer &deserializer) {
1076
+ unique_ptr<ColumnDataCollection> ColumnDataCollection::Deserialize(Deserializer &deserializer) {
1077
1077
  auto types = deserializer.ReadProperty<vector<LogicalType>>(100, "types");
1078
1078
  auto values = deserializer.ReadProperty<vector<vector<Value>>>(101, "values");
1079
1079
 
@@ -4,9 +4,8 @@
4
4
  #include "duckdb/common/exception.hpp"
5
5
  #include "duckdb/common/helper.hpp"
6
6
  #include "duckdb/common/printer.hpp"
7
- #include "duckdb/common/serializer.hpp"
8
- #include "duckdb/common/serializer/format_serializer.hpp"
9
- #include "duckdb/common/serializer/format_deserializer.hpp"
7
+ #include "duckdb/common/serializer/serializer.hpp"
8
+ #include "duckdb/common/serializer/deserializer.hpp"
10
9
  #include "duckdb/common/types/interval.hpp"
11
10
  #include "duckdb/common/types/sel_cache.hpp"
12
11
  #include "duckdb/common/types/vector_cache.hpp"
@@ -231,38 +230,7 @@ string DataChunk::ToString() const {
231
230
  return retval;
232
231
  }
233
232
 
234
- void DataChunk::Serialize(Serializer &serializer) {
235
- // write the count
236
- serializer.Write<sel_t>(size());
237
- serializer.Write<idx_t>(ColumnCount());
238
- for (idx_t col_idx = 0; col_idx < ColumnCount(); col_idx++) {
239
- // write the types
240
- data[col_idx].GetType().Serialize(serializer);
241
- }
242
- // write the data
243
- for (idx_t col_idx = 0; col_idx < ColumnCount(); col_idx++) {
244
- data[col_idx].Serialize(size(), serializer);
245
- }
246
- }
247
-
248
- void DataChunk::Deserialize(Deserializer &source) {
249
- auto rows = source.Read<sel_t>();
250
- idx_t column_count = source.Read<idx_t>();
251
-
252
- vector<LogicalType> types;
253
- for (idx_t i = 0; i < column_count; i++) {
254
- types.push_back(LogicalType::Deserialize(source));
255
- }
256
- Initialize(Allocator::DefaultAllocator(), types);
257
- // now load the column data
258
- SetCardinality(rows);
259
- for (idx_t i = 0; i < column_count; i++) {
260
- data[i].Deserialize(rows, source);
261
- }
262
- Verify();
263
- }
264
-
265
- void DataChunk::FormatSerialize(FormatSerializer &serializer) const {
233
+ void DataChunk::Serialize(Serializer &serializer) const {
266
234
  // write the count
267
235
  auto row_count = size();
268
236
  serializer.WriteProperty<sel_t>(100, "rows", row_count);
@@ -270,26 +238,26 @@ void DataChunk::FormatSerialize(FormatSerializer &serializer) const {
270
238
 
271
239
  // Write the types
272
240
  serializer.WriteList(101, "types", column_count,
273
- [&](FormatSerializer::List &list, idx_t i) { list.WriteElement(data[i].GetType()); });
241
+ [&](Serializer::List &list, idx_t i) { list.WriteElement(data[i].GetType()); });
274
242
 
275
243
  // Write the data
276
- serializer.WriteList(102, "columns", column_count, [&](FormatSerializer::List &list, idx_t i) {
277
- list.WriteObject([&](FormatSerializer &object) {
244
+ serializer.WriteList(102, "columns", column_count, [&](Serializer::List &list, idx_t i) {
245
+ list.WriteObject([&](Serializer &object) {
278
246
  // Reference the vector to avoid potentially mutating it during serialization
279
247
  Vector serialized_vector(data[i].GetType());
280
248
  serialized_vector.Reference(data[i]);
281
- serialized_vector.FormatSerialize(object, row_count);
249
+ serialized_vector.Serialize(object, row_count);
282
250
  });
283
251
  });
284
252
  }
285
253
 
286
- void DataChunk::FormatDeserialize(FormatDeserializer &deserializer) {
254
+ void DataChunk::Deserialize(Deserializer &deserializer) {
287
255
  // read the count
288
256
  auto row_count = deserializer.ReadProperty<sel_t>(100, "rows");
289
257
 
290
258
  // Read the types
291
259
  vector<LogicalType> types;
292
- deserializer.ReadList(101, "types", [&](FormatDeserializer::List &list, idx_t i) {
260
+ deserializer.ReadList(101, "types", [&](Deserializer::List &list, idx_t i) {
293
261
  auto type = list.ReadElement<LogicalType>();
294
262
  types.push_back(type);
295
263
  });
@@ -299,8 +267,8 @@ void DataChunk::FormatDeserialize(FormatDeserializer &deserializer) {
299
267
  SetCardinality(row_count);
300
268
 
301
269
  // Read the data
302
- deserializer.ReadList(102, "columns", [&](FormatDeserializer::List &list, idx_t i) {
303
- list.ReadObject([&](FormatDeserializer &object) { data[i].FormatDeserialize(object, row_count); });
270
+ deserializer.ReadList(102, "columns", [&](Deserializer::List &list, idx_t i) {
271
+ list.ReadObject([&](Deserializer &object) { data[i].Deserialize(object, row_count); });
304
272
  });
305
273
  }
306
274
 
@@ -1,9 +1,8 @@
1
1
  #include "duckdb/common/types/hyperloglog.hpp"
2
2
 
3
3
  #include "duckdb/common/exception.hpp"
4
- #include "duckdb/common/field_writer.hpp"
5
- #include "duckdb/common/serializer/format_serializer.hpp"
6
- #include "duckdb/common/serializer/format_deserializer.hpp"
4
+ #include "duckdb/common/serializer/serializer.hpp"
5
+ #include "duckdb/common/serializer/deserializer.hpp"
7
6
 
8
7
  #include "hyperloglog.hpp"
9
8
 
@@ -91,30 +90,12 @@ unique_ptr<HyperLogLog> HyperLogLog::Copy() {
91
90
  return result;
92
91
  }
93
92
 
94
- void HyperLogLog::Serialize(FieldWriter &writer) const {
95
- writer.WriteField<HLLStorageType>(HLLStorageType::UNCOMPRESSED);
96
- writer.WriteBlob(GetPtr(), GetSize());
97
- }
98
-
99
- unique_ptr<HyperLogLog> HyperLogLog::Deserialize(FieldReader &reader) {
100
- auto result = make_uniq<HyperLogLog>();
101
- auto storage_type = reader.ReadRequired<HLLStorageType>();
102
- switch (storage_type) {
103
- case HLLStorageType::UNCOMPRESSED:
104
- reader.ReadBlob(result->GetPtr(), GetSize());
105
- break;
106
- default:
107
- throw SerializationException("Unknown HyperLogLog storage type!");
108
- }
109
- return result;
110
- }
111
-
112
- void HyperLogLog::FormatSerialize(FormatSerializer &serializer) const {
93
+ void HyperLogLog::Serialize(Serializer &serializer) const {
113
94
  serializer.WriteProperty(100, "type", HLLStorageType::UNCOMPRESSED);
114
95
  serializer.WriteProperty(101, "data", GetPtr(), GetSize());
115
96
  }
116
97
 
117
- unique_ptr<HyperLogLog> HyperLogLog::FormatDeserialize(FormatDeserializer &deserializer) {
98
+ unique_ptr<HyperLogLog> HyperLogLog::Deserialize(Deserializer &deserializer) {
118
99
  auto result = make_uniq<HyperLogLog>();
119
100
  auto storage_type = deserializer.ReadProperty<HLLStorageType>(100, "type");
120
101
  switch (storage_type) {
@@ -11,8 +11,8 @@
11
11
  #include "duckdb/common/operator/subtract.hpp"
12
12
  #include "duckdb/common/string_util.hpp"
13
13
 
14
- #include "duckdb/common/serializer/format_serializer.hpp"
15
- #include "duckdb/common/serializer/format_deserializer.hpp"
14
+ #include "duckdb/common/serializer/serializer.hpp"
15
+ #include "duckdb/common/serializer/deserializer.hpp"
16
16
 
17
17
  namespace duckdb {
18
18
 
@@ -10,7 +10,6 @@
10
10
  #include "utf8proc_wrapper.hpp"
11
11
  #include "duckdb/common/operator/numeric_binary_operators.hpp"
12
12
  #include "duckdb/common/printer.hpp"
13
- #include "duckdb/common/field_writer.hpp"
14
13
  #include "duckdb/common/types/blob.hpp"
15
14
  #include "duckdb/common/types/date.hpp"
16
15
  #include "duckdb/common/types/decimal.hpp"
@@ -30,8 +29,8 @@
30
29
  #include "duckdb/function/cast/cast_function_set.hpp"
31
30
  #include "duckdb/main/error_manager.hpp"
32
31
 
33
- #include "duckdb/common/serializer/format_serializer.hpp"
34
- #include "duckdb/common/serializer/format_deserializer.hpp"
32
+ #include "duckdb/common/serializer/serializer.hpp"
33
+ #include "duckdb/common/serializer/deserializer.hpp"
35
34
 
36
35
  #include <utility>
37
36
  #include <cmath>
@@ -1651,131 +1650,7 @@ void Value::Reinterpret(LogicalType new_type) {
1651
1650
  this->type_ = std::move(new_type);
1652
1651
  }
1653
1652
 
1654
- void Value::Serialize(Serializer &main_serializer) const {
1655
- FieldWriter writer(main_serializer);
1656
- writer.WriteSerializable(type_);
1657
- writer.WriteField<bool>(IsNull());
1658
- if (!IsNull()) {
1659
- auto &serializer = writer.GetSerializer();
1660
- switch (type_.InternalType()) {
1661
- case PhysicalType::BOOL:
1662
- serializer.Write<int8_t>(value_.boolean);
1663
- break;
1664
- case PhysicalType::INT8:
1665
- serializer.Write<int8_t>(value_.tinyint);
1666
- break;
1667
- case PhysicalType::INT16:
1668
- serializer.Write<int16_t>(value_.smallint);
1669
- break;
1670
- case PhysicalType::INT32:
1671
- serializer.Write<int32_t>(value_.integer);
1672
- break;
1673
- case PhysicalType::INT64:
1674
- serializer.Write<int64_t>(value_.bigint);
1675
- break;
1676
- case PhysicalType::UINT8:
1677
- serializer.Write<uint8_t>(value_.utinyint);
1678
- break;
1679
- case PhysicalType::UINT16:
1680
- serializer.Write<uint16_t>(value_.usmallint);
1681
- break;
1682
- case PhysicalType::UINT32:
1683
- serializer.Write<uint32_t>(value_.uinteger);
1684
- break;
1685
- case PhysicalType::UINT64:
1686
- serializer.Write<uint64_t>(value_.ubigint);
1687
- break;
1688
- case PhysicalType::INT128:
1689
- serializer.Write<hugeint_t>(value_.hugeint);
1690
- break;
1691
- case PhysicalType::FLOAT:
1692
- serializer.Write<float>(value_.float_);
1693
- break;
1694
- case PhysicalType::DOUBLE:
1695
- serializer.Write<double>(value_.double_);
1696
- break;
1697
- case PhysicalType::INTERVAL:
1698
- serializer.Write<interval_t>(value_.interval);
1699
- break;
1700
- case PhysicalType::VARCHAR:
1701
- serializer.WriteString(StringValue::Get(*this));
1702
- break;
1703
- default: {
1704
- Vector v(*this);
1705
- v.Serialize(1, serializer);
1706
- break;
1707
- }
1708
- }
1709
- }
1710
- writer.Finalize();
1711
- }
1712
-
1713
- Value Value::Deserialize(Deserializer &main_source) {
1714
- FieldReader reader(main_source);
1715
- auto type = reader.ReadRequiredSerializable<LogicalType, LogicalType>();
1716
- auto is_null = reader.ReadRequired<bool>();
1717
- Value new_value = Value(type);
1718
- if (is_null) {
1719
- reader.Finalize();
1720
- return new_value;
1721
- }
1722
- new_value.is_null = false;
1723
- auto &source = reader.GetSource();
1724
- switch (type.InternalType()) {
1725
- case PhysicalType::BOOL:
1726
- new_value.value_.boolean = source.Read<int8_t>();
1727
- break;
1728
- case PhysicalType::INT8:
1729
- new_value.value_.tinyint = source.Read<int8_t>();
1730
- break;
1731
- case PhysicalType::INT16:
1732
- new_value.value_.smallint = source.Read<int16_t>();
1733
- break;
1734
- case PhysicalType::INT32:
1735
- new_value.value_.integer = source.Read<int32_t>();
1736
- break;
1737
- case PhysicalType::INT64:
1738
- new_value.value_.bigint = source.Read<int64_t>();
1739
- break;
1740
- case PhysicalType::UINT8:
1741
- new_value.value_.utinyint = source.Read<uint8_t>();
1742
- break;
1743
- case PhysicalType::UINT16:
1744
- new_value.value_.usmallint = source.Read<uint16_t>();
1745
- break;
1746
- case PhysicalType::UINT32:
1747
- new_value.value_.uinteger = source.Read<uint32_t>();
1748
- break;
1749
- case PhysicalType::UINT64:
1750
- new_value.value_.ubigint = source.Read<uint64_t>();
1751
- break;
1752
- case PhysicalType::INT128:
1753
- new_value.value_.hugeint = source.Read<hugeint_t>();
1754
- break;
1755
- case PhysicalType::FLOAT:
1756
- new_value.value_.float_ = source.Read<float>();
1757
- break;
1758
- case PhysicalType::DOUBLE:
1759
- new_value.value_.double_ = source.Read<double>();
1760
- break;
1761
- case PhysicalType::INTERVAL:
1762
- new_value.value_.interval = source.Read<interval_t>();
1763
- break;
1764
- case PhysicalType::VARCHAR:
1765
- new_value.value_info_ = make_shared<StringValueInfo>(source.Read<string>());
1766
- break;
1767
- default: {
1768
- Vector v(type);
1769
- v.Deserialize(1, source);
1770
- new_value = v.GetValue(0);
1771
- break;
1772
- }
1773
- }
1774
- reader.Finalize();
1775
- return new_value;
1776
- }
1777
-
1778
- void Value::FormatSerialize(FormatSerializer &serializer) const {
1653
+ void Value::Serialize(Serializer &serializer) const {
1779
1654
  serializer.WriteProperty(100, "type", type_);
1780
1655
  serializer.WriteProperty(101, "is_null", is_null);
1781
1656
  if (!IsNull()) {
@@ -1830,24 +1705,24 @@ void Value::FormatSerialize(FormatSerializer &serializer) const {
1830
1705
  }
1831
1706
  } break;
1832
1707
  case PhysicalType::LIST: {
1833
- serializer.WriteObject(102, "value", [&](FormatSerializer &serializer) {
1708
+ serializer.WriteObject(102, "value", [&](Serializer &serializer) {
1834
1709
  auto &children = ListValue::GetChildren(*this);
1835
1710
  serializer.WriteProperty(100, "children", children);
1836
1711
  });
1837
1712
  } break;
1838
1713
  case PhysicalType::STRUCT: {
1839
- serializer.WriteObject(102, "value", [&](FormatSerializer &serializer) {
1714
+ serializer.WriteObject(102, "value", [&](Serializer &serializer) {
1840
1715
  auto &children = StructValue::GetChildren(*this);
1841
1716
  serializer.WriteProperty(100, "children", children);
1842
1717
  });
1843
1718
  } break;
1844
1719
  default:
1845
- throw NotImplementedException("Unimplemented type for FormatSerialize");
1720
+ throw NotImplementedException("Unimplemented type for Serialize");
1846
1721
  }
1847
1722
  }
1848
1723
  }
1849
1724
 
1850
- Value Value::FormatDeserialize(FormatDeserializer &deserializer) {
1725
+ Value Value::Deserialize(Deserializer &deserializer) {
1851
1726
  auto type = deserializer.ReadProperty<LogicalType>(100, "type");
1852
1727
  auto is_null = deserializer.ReadProperty<bool>(101, "is_null");
1853
1728
  Value new_value = Value(type);
@@ -1906,19 +1781,19 @@ Value Value::FormatDeserialize(FormatDeserializer &deserializer) {
1906
1781
  }
1907
1782
  } break;
1908
1783
  case PhysicalType::LIST: {
1909
- deserializer.ReadObject(102, "value", [&](FormatDeserializer &obj) {
1784
+ deserializer.ReadObject(102, "value", [&](Deserializer &obj) {
1910
1785
  auto children = obj.ReadProperty<vector<Value>>(100, "children");
1911
1786
  new_value.value_info_ = make_shared<NestedValueInfo>(children);
1912
1787
  });
1913
1788
  } break;
1914
1789
  case PhysicalType::STRUCT: {
1915
- deserializer.ReadObject(102, "value", [&](FormatDeserializer &obj) {
1790
+ deserializer.ReadObject(102, "value", [&](Deserializer &obj) {
1916
1791
  auto children = obj.ReadProperty<vector<Value>>(100, "children");
1917
1792
  new_value.value_info_ = make_shared<NestedValueInfo>(children);
1918
1793
  });
1919
1794
  } break;
1920
1795
  default:
1921
- throw NotImplementedException("Unimplemented type for FormatDeserialize");
1796
+ throw NotImplementedException("Unimplemented type for Deserialize");
1922
1797
  }
1923
1798
  return new_value;
1924
1799
  }