duckdb 0.8.2-dev4126.0 → 0.8.2-dev4203.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 (497) 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.cpp +20 -0
  28. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +0 -1
  29. package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +0 -1
  30. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +0 -1
  31. package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +0 -1
  32. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +0 -2
  33. package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +1 -3
  34. package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +0 -1
  35. package/src/duckdb/src/catalog/catalog_entry.cpp +2 -11
  36. package/src/duckdb/src/catalog/catalog_set.cpp +16 -14
  37. package/src/duckdb/src/catalog/default/default_functions.cpp +2 -2
  38. package/src/duckdb/src/common/arrow/arrow_converter.cpp +3 -1
  39. package/src/duckdb/src/common/constants.cpp +0 -1
  40. package/src/duckdb/src/common/enum_util.cpp +0 -10
  41. package/src/duckdb/src/common/exception.cpp +1 -1
  42. package/src/duckdb/src/common/extra_type_info.cpp +20 -192
  43. package/src/duckdb/src/common/multi_file_reader.cpp +0 -68
  44. package/src/duckdb/src/common/serializer/binary_serializer.cpp +9 -4
  45. package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +3 -11
  46. package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +1 -1
  47. package/src/duckdb/src/common/serializer/memory_stream.cpp +61 -0
  48. package/src/duckdb/src/common/serializer/{format_serializer.cpp → serializer.cpp} +2 -2
  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/function/macro_function.cpp +0 -42
  65. package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +10 -8
  66. package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +13 -12
  67. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +9 -11
  68. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +7 -33
  69. package/src/duckdb/src/function/scalar_function.cpp +1 -2
  70. package/src/duckdb/src/function/scalar_macro_function.cpp +0 -10
  71. package/src/duckdb/src/function/table/copy_csv.cpp +38 -38
  72. package/src/duckdb/src/function/table/read_csv.cpp +5 -174
  73. package/src/duckdb/src/function/table/table_scan.cpp +5 -42
  74. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  75. package/src/duckdb/src/function/table_function.cpp +3 -4
  76. package/src/duckdb/src/function/table_macro_function.cpp +0 -10
  77. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +1 -0
  78. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +0 -2
  79. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +0 -2
  80. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +0 -2
  81. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +3 -8
  82. package/src/duckdb/src/include/duckdb/common/constants.hpp +4 -2
  83. package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +16 -46
  84. package/src/duckdb/src/include/duckdb/common/index_vector.hpp +4 -4
  85. package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +2 -6
  86. package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +0 -4
  87. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +44 -23
  88. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +31 -23
  89. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +4 -6
  90. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +3 -3
  91. package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +17 -0
  92. package/src/duckdb/src/include/duckdb/common/serializer/{format_deserializer.hpp → deserializer.hpp} +13 -13
  93. package/src/duckdb/src/include/duckdb/common/serializer/memory_stream.hpp +62 -0
  94. package/src/duckdb/src/include/duckdb/common/serializer/read_stream.hpp +38 -0
  95. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +15 -13
  96. package/src/duckdb/src/include/duckdb/common/serializer/{format_serializer.hpp → serializer.hpp} +13 -12
  97. package/src/duckdb/src/include/duckdb/common/serializer/write_stream.hpp +36 -0
  98. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +2 -2
  99. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +3 -8
  100. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +4 -10
  101. package/src/duckdb/src/include/duckdb/common/types/interval.hpp +4 -4
  102. package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -5
  103. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +2 -7
  104. package/src/duckdb/src/include/duckdb/common/types.hpp +1 -10
  105. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_reader_options.hpp +2 -11
  106. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +4 -14
  107. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +3 -3
  108. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +15 -98
  109. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +1 -7
  110. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +9 -10
  111. package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +2 -2
  112. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -12
  113. package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +2 -7
  114. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +4 -16
  115. package/src/duckdb/src/include/duckdb/function/table_function.hpp +2 -11
  116. package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +2 -7
  117. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +1 -0
  118. package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +1 -0
  119. package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +1 -4
  120. package/src/duckdb/src/include/duckdb/parser/column_list.hpp +2 -6
  121. package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +2 -2
  122. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -12
  123. package/src/duckdb/src/include/duckdb/parser/constraints/check_constraint.hpp +2 -5
  124. package/src/duckdb/src/include/duckdb/parser/constraints/foreign_key_constraint.hpp +2 -7
  125. package/src/duckdb/src/include/duckdb/parser/constraints/not_null_constraint.hpp +2 -7
  126. package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +2 -7
  127. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +2 -5
  128. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -4
  129. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +4 -6
  130. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +2 -4
  131. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +2 -4
  132. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +2 -4
  133. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +2 -4
  134. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +2 -4
  135. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +2 -5
  136. package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +2 -4
  137. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +2 -4
  138. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +2 -4
  139. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +2 -4
  140. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +2 -4
  141. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +2 -4
  142. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +2 -4
  143. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +2 -4
  144. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +2 -4
  145. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +2 -5
  146. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +0 -2
  147. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +0 -2
  148. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +24 -51
  149. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +1 -4
  150. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +2 -2
  151. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_collation_info.hpp +0 -3
  152. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_copy_function_info.hpp +0 -3
  153. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +0 -5
  154. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +2 -7
  155. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +1 -13
  156. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +2 -8
  157. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +2 -12
  158. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_sequence_info.hpp +2 -7
  159. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +2 -7
  160. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +2 -7
  161. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +2 -7
  162. package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +2 -4
  163. package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +2 -5
  164. package/src/duckdb/src/include/duckdb/parser/parsed_data/load_info.hpp +2 -21
  165. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
  166. package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +2 -2
  167. package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +2 -4
  168. package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +1 -4
  169. package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +5 -7
  170. package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +3 -16
  171. package/src/duckdb/src/include/duckdb/parser/query_node/cte_node.hpp +2 -4
  172. package/src/duckdb/src/include/duckdb/parser/query_node/recursive_cte_node.hpp +2 -4
  173. package/src/duckdb/src/include/duckdb/parser/query_node/select_node.hpp +2 -4
  174. package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +2 -4
  175. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +7 -14
  176. package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +14 -32
  177. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +4 -9
  178. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +2 -6
  179. package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -6
  180. package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +2 -6
  181. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +2 -6
  182. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +6 -14
  183. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +2 -6
  184. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +2 -6
  185. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +2 -10
  186. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +1 -0
  187. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +0 -1
  188. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +2 -8
  189. package/src/duckdb/src/include/duckdb/planner/column_binding.hpp +4 -4
  190. package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +2 -4
  191. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +2 -4
  192. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +3 -9
  193. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +2 -5
  194. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +2 -8
  195. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +2 -4
  196. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +2 -5
  197. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +2 -5
  198. package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +2 -5
  199. package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +2 -5
  200. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +2 -4
  201. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +2 -8
  202. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +2 -5
  203. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_data.hpp +2 -19
  204. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +2 -5
  205. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +2 -5
  206. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +0 -3
  207. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +2 -5
  208. package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +2 -5
  209. package/src/duckdb/src/include/duckdb/planner/expression.hpp +2 -14
  210. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +4 -8
  211. package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +2 -4
  212. package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +4 -8
  213. package/src/duckdb/src/include/duckdb/planner/joinside.hpp +1 -6
  214. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -17
  215. package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +2 -4
  216. package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +2 -4
  217. package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +2 -5
  218. package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +2 -6
  219. package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +2 -4
  220. package/src/duckdb/src/include/duckdb/planner/operator/logical_create.hpp +2 -5
  221. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +2 -5
  222. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_table.hpp +2 -5
  223. package/src/duckdb/src/include/duckdb/planner/operator/logical_cross_product.hpp +2 -5
  224. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -4
  225. package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +2 -5
  226. package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +2 -4
  227. package/src/duckdb/src/include/duckdb/planner/operator/logical_dependent_join.hpp +0 -1
  228. package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +2 -4
  229. package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +2 -4
  230. package/src/duckdb/src/include/duckdb/planner/operator/logical_empty_result.hpp +2 -4
  231. package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +0 -2
  232. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +2 -5
  233. package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +0 -3
  234. package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +2 -4
  235. package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +2 -4
  236. package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +2 -4
  237. package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +2 -4
  238. package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +2 -5
  239. package/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +0 -2
  240. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit.hpp +2 -5
  241. package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +2 -5
  242. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -4
  243. package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +2 -5
  244. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +2 -4
  245. package/src/duckdb/src/include/duckdb/planner/operator/logical_positional_join.hpp +2 -5
  246. package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +0 -2
  247. package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +0 -2
  248. package/src/duckdb/src/include/duckdb/planner/operator/logical_projection.hpp +2 -4
  249. package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +2 -4
  250. package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +2 -5
  251. package/src/duckdb/src/include/duckdb/planner/operator/logical_sample.hpp +2 -5
  252. package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +2 -5
  253. package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +2 -5
  254. package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +2 -5
  255. package/src/duckdb/src/include/duckdb/planner/operator/logical_simple.hpp +2 -5
  256. package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +2 -4
  257. package/src/duckdb/src/include/duckdb/planner/operator/logical_unnest.hpp +2 -4
  258. package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +2 -4
  259. package/src/duckdb/src/include/duckdb/planner/operator/logical_window.hpp +2 -4
  260. package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -3
  261. package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +0 -5
  262. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +3 -12
  263. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +2 -2
  264. package/src/duckdb/src/include/duckdb/storage/block.hpp +7 -4
  265. package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +3 -2
  266. package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +6 -6
  267. package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +18 -18
  268. package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +6 -0
  269. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
  270. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +4 -5
  271. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_reader.hpp +2 -1
  272. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_writer.hpp +2 -2
  273. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -11
  274. package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +3 -5
  275. package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +3 -11
  276. package/src/duckdb/src/include/duckdb/storage/statistics/list_stats.hpp +2 -7
  277. package/src/duckdb/src/include/duckdb/storage/statistics/node_statistics.hpp +0 -26
  278. package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +2 -7
  279. package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +2 -7
  280. package/src/duckdb/src/include/duckdb/storage/statistics/struct_stats.hpp +2 -7
  281. package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +4 -6
  282. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +8 -17
  283. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +1 -1
  284. package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +2 -2
  285. package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
  286. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -7
  287. package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -2
  288. package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +4 -7
  289. package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +27 -29
  290. package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +0 -2
  291. package/src/duckdb/src/main/client_context.cpp +0 -6
  292. package/src/duckdb/src/main/client_verify.cpp +0 -2
  293. package/src/duckdb/src/main/extension/extension_helper.cpp +18 -0
  294. package/src/duckdb/src/main/extension/extension_install.cpp +5 -3
  295. package/src/duckdb/src/main/extension/extension_load.cpp +3 -3
  296. package/src/duckdb/src/parser/column_definition.cpp +0 -25
  297. package/src/duckdb/src/parser/column_list.cpp +0 -13
  298. package/src/duckdb/src/parser/constraint.cpp +0 -33
  299. package/src/duckdb/src/parser/constraints/check_constraint.cpp +0 -11
  300. package/src/duckdb/src/parser/constraints/foreign_key_constraint.cpp +0 -27
  301. package/src/duckdb/src/parser/constraints/not_null_constraint.cpp +0 -11
  302. package/src/duckdb/src/parser/constraints/unique_constraint.cpp +0 -24
  303. package/src/duckdb/src/parser/expression/between_expression.cpp +2 -16
  304. package/src/duckdb/src/parser/expression/case_expression.cpp +2 -29
  305. package/src/duckdb/src/parser/expression/cast_expression.cpp +2 -16
  306. package/src/duckdb/src/parser/expression/collate_expression.cpp +2 -14
  307. package/src/duckdb/src/parser/expression/columnref_expression.cpp +2 -13
  308. package/src/duckdb/src/parser/expression/comparison_expression.cpp +2 -14
  309. package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -13
  310. package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -12
  311. package/src/duckdb/src/parser/expression/default_expression.cpp +2 -9
  312. package/src/duckdb/src/parser/expression/function_expression.cpp +2 -32
  313. package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -14
  314. package/src/duckdb/src/parser/expression/operator_expression.cpp +2 -13
  315. package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -13
  316. package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +2 -12
  317. package/src/duckdb/src/parser/expression/star_expression.cpp +2 -43
  318. package/src/duckdb/src/parser/expression/subquery_expression.cpp +2 -28
  319. package/src/duckdb/src/parser/expression/window_expression.cpp +2 -53
  320. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +0 -35
  321. package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +0 -18
  322. package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +0 -13
  323. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +1 -189
  324. package/src/duckdb/src/parser/parsed_data/attach_info.cpp +0 -29
  325. package/src/duckdb/src/parser/parsed_data/create_collation_info.cpp +0 -4
  326. package/src/duckdb/src/parser/parsed_data/create_copy_function_info.cpp +0 -4
  327. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +0 -48
  328. package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -47
  329. package/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +1 -28
  330. package/src/duckdb/src/parser/parsed_data/create_sequence_info.cpp +0 -31
  331. package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +0 -23
  332. package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +0 -22
  333. package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +0 -23
  334. package/src/duckdb/src/parser/parsed_data/detach_info.cpp +0 -19
  335. package/src/duckdb/src/parser/parsed_data/drop_info.cpp +0 -26
  336. package/src/duckdb/src/parser/parsed_data/sample_options.cpp +2 -25
  337. package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +0 -16
  338. package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +0 -20
  339. package/src/duckdb/src/parser/parsed_expression.cpp +2 -79
  340. package/src/duckdb/src/parser/query_node/cte_node.cpp +2 -19
  341. package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +2 -21
  342. package/src/duckdb/src/parser/query_node/select_node.cpp +2 -47
  343. package/src/duckdb/src/parser/query_node/set_operation_node.cpp +2 -17
  344. package/src/duckdb/src/parser/query_node.cpp +2 -62
  345. package/src/duckdb/src/parser/result_modifier.cpp +2 -96
  346. package/src/duckdb/src/parser/statement/select_statement.cpp +2 -13
  347. package/src/duckdb/src/parser/tableref/basetableref.cpp +2 -21
  348. package/src/duckdb/src/parser/tableref/emptytableref.cpp +0 -9
  349. package/src/duckdb/src/parser/tableref/expressionlistref.cpp +2 -28
  350. package/src/duckdb/src/parser/tableref/joinref.cpp +2 -23
  351. package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -61
  352. package/src/duckdb/src/parser/tableref/subqueryref.cpp +2 -15
  353. package/src/duckdb/src/parser/tableref/table_function.cpp +2 -17
  354. package/src/duckdb/src/parser/tableref.cpp +2 -52
  355. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +1 -4
  356. package/src/duckdb/src/planner/bound_result_modifier.cpp +0 -33
  357. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +6 -30
  358. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +0 -19
  359. package/src/duckdb/src/planner/expression/bound_case_expression.cpp +0 -36
  360. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +0 -15
  361. package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +0 -20
  362. package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +0 -13
  363. package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +0 -13
  364. package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +0 -11
  365. package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -5
  366. package/src/duckdb/src/planner/expression/bound_function_expression.cpp +8 -28
  367. package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +0 -4
  368. package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +0 -23
  369. package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +0 -16
  370. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +0 -18
  371. package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +0 -16
  372. package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +0 -4
  373. package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +0 -15
  374. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +7 -60
  375. package/src/duckdb/src/planner/expression.cpp +0 -74
  376. package/src/duckdb/src/planner/filter/conjunction_filter.cpp +0 -21
  377. package/src/duckdb/src/planner/filter/constant_filter.cpp +0 -12
  378. package/src/duckdb/src/planner/filter/null_filter.cpp +0 -14
  379. package/src/duckdb/src/planner/joinside.cpp +0 -24
  380. package/src/duckdb/src/planner/logical_operator.cpp +15 -215
  381. package/src/duckdb/src/planner/operator/logical_aggregate.cpp +0 -46
  382. package/src/duckdb/src/planner/operator/logical_any_join.cpp +0 -14
  383. package/src/duckdb/src/planner/operator/logical_column_data_get.cpp +0 -23
  384. package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +0 -23
  385. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +2 -56
  386. package/src/duckdb/src/planner/operator/logical_create.cpp +0 -12
  387. package/src/duckdb/src/planner/operator/logical_create_index.cpp +0 -25
  388. package/src/duckdb/src/planner/operator/logical_create_table.cpp +0 -10
  389. package/src/duckdb/src/planner/operator/logical_cross_product.cpp +0 -9
  390. package/src/duckdb/src/planner/operator/logical_cteref.cpp +0 -18
  391. package/src/duckdb/src/planner/operator/logical_delete.cpp +0 -22
  392. package/src/duckdb/src/planner/operator/logical_delim_get.cpp +0 -12
  393. package/src/duckdb/src/planner/operator/logical_dependent_join.cpp +0 -4
  394. package/src/duckdb/src/planner/operator/logical_distinct.cpp +0 -16
  395. package/src/duckdb/src/planner/operator/logical_dummy_scan.cpp +0 -10
  396. package/src/duckdb/src/planner/operator/logical_empty_result.cpp +0 -15
  397. package/src/duckdb/src/planner/operator/logical_expression_get.cpp +0 -24
  398. package/src/duckdb/src/planner/operator/logical_extension_operator.cpp +6 -19
  399. package/src/duckdb/src/planner/operator/logical_filter.cpp +0 -15
  400. package/src/duckdb/src/planner/operator/logical_get.cpp +12 -97
  401. package/src/duckdb/src/planner/operator/logical_insert.cpp +0 -77
  402. package/src/duckdb/src/planner/operator/logical_join.cpp +0 -17
  403. package/src/duckdb/src/planner/operator/logical_limit.cpp +0 -16
  404. package/src/duckdb/src/planner/operator/logical_limit_percent.cpp +0 -16
  405. package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +0 -13
  406. package/src/duckdb/src/planner/operator/logical_order.cpp +0 -15
  407. package/src/duckdb/src/planner/operator/logical_pivot.cpp +0 -20
  408. package/src/duckdb/src/planner/operator/logical_positional_join.cpp +0 -10
  409. package/src/duckdb/src/planner/operator/logical_pragma.cpp +0 -8
  410. package/src/duckdb/src/planner/operator/logical_prepare.cpp +0 -8
  411. package/src/duckdb/src/planner/operator/logical_projection.cpp +0 -12
  412. package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +0 -15
  413. package/src/duckdb/src/planner/operator/logical_reset.cpp +0 -12
  414. package/src/duckdb/src/planner/operator/logical_sample.cpp +0 -11
  415. package/src/duckdb/src/planner/operator/logical_set.cpp +0 -14
  416. package/src/duckdb/src/planner/operator/logical_set_operation.cpp +0 -13
  417. package/src/duckdb/src/planner/operator/logical_simple.cpp +0 -60
  418. package/src/duckdb/src/planner/operator/logical_top_n.cpp +0 -14
  419. package/src/duckdb/src/planner/operator/logical_unnest.cpp +0 -14
  420. package/src/duckdb/src/planner/operator/logical_update.cpp +0 -28
  421. package/src/duckdb/src/planner/operator/logical_window.cpp +0 -13
  422. package/src/duckdb/src/planner/planner.cpp +13 -22
  423. package/src/duckdb/src/planner/table_filter.cpp +0 -59
  424. package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +7 -17
  425. package/src/duckdb/src/storage/checkpoint/table_data_reader.cpp +7 -4
  426. package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +24 -22
  427. package/src/duckdb/src/storage/checkpoint_manager.cpp +203 -180
  428. package/src/duckdb/src/storage/data_table.cpp +2 -2
  429. package/src/duckdb/src/storage/metadata/metadata_manager.cpp +11 -9
  430. package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +20 -20
  431. package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +46 -42
  432. package/src/duckdb/src/storage/serialization/serialize_expression.cpp +63 -63
  433. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +167 -165
  434. package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +12 -12
  435. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +54 -54
  436. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +88 -88
  437. package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +72 -72
  438. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +20 -20
  439. package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +22 -22
  440. package/src/duckdb/src/storage/serialization/serialize_statement.cpp +4 -4
  441. package/src/duckdb/src/storage/serialization/serialize_storage.cpp +41 -6
  442. package/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +24 -24
  443. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +32 -32
  444. package/src/duckdb/src/storage/serialization/serialize_types.cpp +29 -29
  445. package/src/duckdb/src/storage/single_file_block_manager.cpp +17 -22
  446. package/src/duckdb/src/storage/statistics/base_statistics.cpp +31 -85
  447. package/src/duckdb/src/storage/statistics/column_statistics.cpp +6 -19
  448. package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +0 -26
  449. package/src/duckdb/src/storage/statistics/list_stats.cpp +6 -22
  450. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +20 -135
  451. package/src/duckdb/src/storage/statistics/string_stats.cpp +5 -28
  452. package/src/duckdb/src/storage/statistics/struct_stats.cpp +8 -30
  453. package/src/duckdb/src/storage/storage_info.cpp +1 -1
  454. package/src/duckdb/src/storage/table/chunk_info.cpp +9 -88
  455. package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +2 -2
  456. package/src/duckdb/src/storage/table/column_data.cpp +20 -25
  457. package/src/duckdb/src/storage/table/list_column_data.cpp +16 -9
  458. package/src/duckdb/src/storage/table/row_group.cpp +16 -92
  459. package/src/duckdb/src/storage/table/row_group_collection.cpp +5 -1
  460. package/src/duckdb/src/storage/table/standard_column_data.cpp +10 -7
  461. package/src/duckdb/src/storage/table/struct_column_data.cpp +17 -11
  462. package/src/duckdb/src/storage/table/table_statistics.cpp +13 -22
  463. package/src/duckdb/src/storage/wal_replay.cpp +108 -106
  464. package/src/duckdb/src/storage/write_ahead_log.cpp +135 -64
  465. package/src/duckdb/src/transaction/commit_state.cpp +22 -8
  466. package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +11 -6
  467. package/src/duckdb/src/verification/statement_verifier.cpp +0 -5
  468. package/src/duckdb/third_party/parquet/parquet_types.h +1 -1
  469. package/src/duckdb/ub_src_common.cpp +0 -4
  470. package/src/duckdb/ub_src_common_serializer.cpp +2 -4
  471. package/src/duckdb/ub_src_planner.cpp +0 -2
  472. package/src/duckdb/ub_src_planner_expression.cpp +0 -2
  473. package/src/duckdb/ub_src_planner_operator.cpp +0 -8
  474. package/src/duckdb_node.cpp +6 -12
  475. package/src/duckdb_node.hpp +23 -13
  476. package/src/statement.cpp +15 -16
  477. package/test/database_fail.test.ts +20 -0
  478. package/test/worker.js +7 -0
  479. package/src/duckdb/src/common/field_writer.cpp +0 -97
  480. package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +0 -27
  481. package/src/duckdb/src/common/serializer/buffered_serializer.cpp +0 -36
  482. package/src/duckdb/src/common/serializer.cpp +0 -24
  483. package/src/duckdb/src/include/duckdb/common/field_writer.hpp +0 -379
  484. package/src/duckdb/src/include/duckdb/common/serializer/buffered_deserializer.hpp +0 -41
  485. package/src/duckdb/src/include/duckdb/common/serializer/buffered_serializer.hpp +0 -50
  486. package/src/duckdb/src/include/duckdb/common/serializer.hpp +0 -151
  487. package/src/duckdb/src/include/duckdb/planner/plan_serialization.hpp +0 -44
  488. package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier_v2.hpp +0 -32
  489. package/src/duckdb/src/planner/expression/bound_default_expression.cpp +0 -16
  490. package/src/duckdb/src/planner/operator/logical_execute.cpp +0 -12
  491. package/src/duckdb/src/planner/operator/logical_explain.cpp +0 -22
  492. package/src/duckdb/src/planner/operator/logical_export.cpp +0 -13
  493. package/src/duckdb/src/planner/operator/logical_show.cpp +0 -21
  494. package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +0 -22
  495. package/src/duckdb/src/planner/plan_serialization.cpp +0 -20
  496. package/src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp +0 -34
  497. package/src/duckdb/ub_src_planner_parsed_data.cpp +0 -2
@@ -1,7 +1,6 @@
1
1
  #include "duckdb/common/bind_helpers.hpp"
2
2
  #include "duckdb/common/file_system.hpp"
3
3
  #include "duckdb/common/multi_file_reader.hpp"
4
- #include "duckdb/common/serializer/buffered_serializer.hpp"
5
4
  #include "duckdb/common/string_util.hpp"
6
5
  #include "duckdb/common/types/column/column_data_collection.hpp"
7
6
  #include "duckdb/common/types/string_type.hpp"
@@ -11,6 +10,8 @@
11
10
  #include "duckdb/function/scalar/string_functions.hpp"
12
11
  #include "duckdb/function/table/read_csv.hpp"
13
12
  #include "duckdb/parser/parsed_data/copy_info.hpp"
13
+ #include "duckdb/common/serializer/write_stream.hpp"
14
+ #include "duckdb/common/serializer/memory_stream.hpp"
14
15
 
15
16
  #include <limits>
16
17
 
@@ -37,10 +38,9 @@ void SubstringDetection(char &str_1, string &str_2, const string &name_str_1, co
37
38
  //===--------------------------------------------------------------------===//
38
39
  // Bind
39
40
  //===--------------------------------------------------------------------===//
40
-
41
- void WriteQuoteOrEscape(Serializer &serializer, char quote_or_escape) {
41
+ void WriteQuoteOrEscape(WriteStream &writer, char quote_or_escape) {
42
42
  if (quote_or_escape != '\0') {
43
- serializer.Write(quote_or_escape);
43
+ writer.Write(quote_or_escape);
44
44
  }
45
45
  }
46
46
 
@@ -214,7 +214,7 @@ static bool RequiresQuotes(WriteCSVData &csv_data, const char *str, idx_t len) {
214
214
  return false;
215
215
  }
216
216
 
217
- static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, const char *str, idx_t len,
217
+ static void WriteQuotedString(WriteStream &writer, WriteCSVData &csv_data, const char *str, idx_t len,
218
218
  bool force_quote) {
219
219
  auto &options = csv_data.options;
220
220
  if (!force_quote) {
@@ -236,9 +236,9 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
236
236
 
237
237
  if (!requires_escape) {
238
238
  // fast path: no need to escape anything
239
- WriteQuoteOrEscape(serializer, options.dialect_options.state_machine_options.quote);
240
- serializer.WriteData(const_data_ptr_cast(str), len);
241
- WriteQuoteOrEscape(serializer, options.dialect_options.state_machine_options.quote);
239
+ WriteQuoteOrEscape(writer, options.dialect_options.state_machine_options.quote);
240
+ writer.WriteData(const_data_ptr_cast(str), len);
241
+ WriteQuoteOrEscape(writer, options.dialect_options.state_machine_options.quote);
242
242
  return;
243
243
  }
244
244
 
@@ -252,11 +252,11 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
252
252
  new_val = AddEscapes(options.dialect_options.state_machine_options.quote,
253
253
  options.dialect_options.state_machine_options.escape, new_val);
254
254
  }
255
- WriteQuoteOrEscape(serializer, options.dialect_options.state_machine_options.quote);
256
- serializer.WriteBufferData(new_val);
257
- WriteQuoteOrEscape(serializer, options.dialect_options.state_machine_options.quote);
255
+ WriteQuoteOrEscape(writer, options.dialect_options.state_machine_options.quote);
256
+ writer.WriteData(const_data_ptr_cast(new_val.c_str()), new_val.size());
257
+ WriteQuoteOrEscape(writer, options.dialect_options.state_machine_options.quote);
258
258
  } else {
259
- serializer.WriteData(const_data_ptr_cast(str), len);
259
+ writer.WriteData(const_data_ptr_cast(str), len);
260
260
  }
261
261
  }
262
262
 
@@ -265,7 +265,7 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
265
265
  //===--------------------------------------------------------------------===//
266
266
  struct LocalWriteCSVData : public LocalFunctionData {
267
267
  //! The thread-local buffer to write data into
268
- BufferedSerializer serializer;
268
+ MemoryStream stream;
269
269
  //! A chunk with VARCHAR columns to cast intermediates into
270
270
  DataChunk cast_chunk;
271
271
  //! If we've written any rows yet, allows us to prevent a trailing comma when writing JSON ARRAY
@@ -333,25 +333,25 @@ static unique_ptr<GlobalFunctionData> WriteCSVInitializeGlobal(ClientContext &co
333
333
  }
334
334
 
335
335
  if (options.dialect_options.header) {
336
- BufferedSerializer serializer;
336
+ MemoryStream stream;
337
337
  // write the header line to the file
338
338
  for (idx_t i = 0; i < csv_data.options.name_list.size(); i++) {
339
339
  if (i != 0) {
340
- WriteQuoteOrEscape(serializer, options.dialect_options.state_machine_options.delimiter);
340
+ WriteQuoteOrEscape(stream, options.dialect_options.state_machine_options.delimiter);
341
341
  }
342
- WriteQuotedString(serializer, csv_data, csv_data.options.name_list[i].c_str(),
342
+ WriteQuotedString(stream, csv_data, csv_data.options.name_list[i].c_str(),
343
343
  csv_data.options.name_list[i].size(), false);
344
344
  }
345
- serializer.WriteBufferData(csv_data.newline);
345
+ stream.WriteData(const_data_ptr_cast(csv_data.newline.c_str()), csv_data.newline.size());
346
346
 
347
- global_data->WriteData(serializer.blob.data.get(), serializer.blob.size);
347
+ global_data->WriteData(stream.GetData(), stream.GetPosition());
348
348
  }
349
349
 
350
350
  return std::move(global_data);
351
351
  }
352
352
 
353
353
  static void WriteCSVChunkInternal(ClientContext &context, FunctionData &bind_data, DataChunk &cast_chunk,
354
- BufferedSerializer &writer, DataChunk &input, bool &written_anything) {
354
+ MemoryStream &writer, DataChunk &input, bool &written_anything) {
355
355
  auto &csv_data = bind_data.Cast<WriteCSVData>();
356
356
  auto &options = csv_data.options;
357
357
 
@@ -385,7 +385,7 @@ static void WriteCSVChunkInternal(ClientContext &context, FunctionData &bind_dat
385
385
  if (row_idx == 0 && !written_anything) {
386
386
  written_anything = true;
387
387
  } else {
388
- writer.WriteBufferData(csv_data.newline);
388
+ writer.WriteData(const_data_ptr_cast(csv_data.newline.c_str()), csv_data.newline.size());
389
389
  }
390
390
  // write values
391
391
  for (idx_t col_idx = 0; col_idx < cast_chunk.ColumnCount(); col_idx++) {
@@ -394,7 +394,7 @@ static void WriteCSVChunkInternal(ClientContext &context, FunctionData &bind_dat
394
394
  }
395
395
  if (FlatVector::IsNull(cast_chunk.data[col_idx], row_idx)) {
396
396
  // write null value
397
- writer.WriteBufferData(options.null_str);
397
+ writer.WriteData(const_data_ptr_cast(options.null_str.c_str()), options.null_str.size());
398
398
  continue;
399
399
  }
400
400
 
@@ -416,14 +416,14 @@ static void WriteCSVSink(ExecutionContext &context, FunctionData &bind_data, Glo
416
416
  auto &global_state = gstate.Cast<GlobalWriteCSVData>();
417
417
 
418
418
  // write data into the local buffer
419
- WriteCSVChunkInternal(context.client, bind_data, local_data.cast_chunk, local_data.serializer, input,
419
+ WriteCSVChunkInternal(context.client, bind_data, local_data.cast_chunk, local_data.stream, input,
420
420
  local_data.written_anything);
421
421
 
422
422
  // check if we should flush what we have currently written
423
- auto &writer = local_data.serializer;
424
- if (writer.blob.size >= csv_data.flush_size) {
425
- global_state.WriteRows(writer.blob.data.get(), writer.blob.size, csv_data.newline);
426
- writer.Reset();
423
+ auto &writer = local_data.stream;
424
+ if (writer.GetPosition() >= csv_data.flush_size) {
425
+ global_state.WriteRows(writer.GetData(), writer.GetPosition(), csv_data.newline);
426
+ writer.Rewind();
427
427
  local_data.written_anything = false;
428
428
  }
429
429
  }
@@ -436,11 +436,11 @@ static void WriteCSVCombine(ExecutionContext &context, FunctionData &bind_data,
436
436
  auto &local_data = lstate.Cast<LocalWriteCSVData>();
437
437
  auto &global_state = gstate.Cast<GlobalWriteCSVData>();
438
438
  auto &csv_data = bind_data.Cast<WriteCSVData>();
439
- auto &writer = local_data.serializer;
439
+ auto &writer = local_data.stream;
440
440
  // flush the local writer
441
441
  if (local_data.written_anything) {
442
- global_state.WriteRows(writer.blob.data.get(), writer.blob.size, csv_data.newline);
443
- writer.Reset();
442
+ global_state.WriteRows(writer.GetData(), writer.GetPosition(), csv_data.newline);
443
+ writer.Rewind();
444
444
  }
445
445
  }
446
446
 
@@ -452,13 +452,13 @@ void WriteCSVFinalize(ClientContext &context, FunctionData &bind_data, GlobalFun
452
452
  auto &csv_data = bind_data.Cast<WriteCSVData>();
453
453
  auto &options = csv_data.options;
454
454
 
455
- BufferedSerializer serializer;
455
+ MemoryStream stream;
456
456
  if (!options.suffix.empty()) {
457
- serializer.WriteBufferData(options.suffix);
457
+ stream.WriteData(const_data_ptr_cast(options.suffix.c_str()), options.suffix.size());
458
458
  } else if (global_state.written_anything) {
459
- serializer.WriteBufferData(csv_data.newline);
459
+ stream.WriteData(const_data_ptr_cast(csv_data.newline.c_str()), csv_data.newline.size());
460
460
  }
461
- global_state.WriteData(serializer.blob.data.get(), serializer.blob.size);
461
+ global_state.WriteData(stream.GetData(), stream.GetPosition());
462
462
 
463
463
  global_state.handle->Close();
464
464
  global_state.handle.reset();
@@ -481,7 +481,7 @@ CopyFunctionExecutionMode WriteCSVExecutionMode(bool preserve_insertion_order, b
481
481
  //===--------------------------------------------------------------------===//
482
482
  struct WriteCSVBatchData : public PreparedBatchData {
483
483
  //! The thread-local buffer to write data into
484
- BufferedSerializer serializer;
484
+ MemoryStream stream;
485
485
  };
486
486
 
487
487
  unique_ptr<PreparedBatchData> WriteCSVPrepareBatch(ClientContext &context, FunctionData &bind_data,
@@ -499,7 +499,7 @@ unique_ptr<PreparedBatchData> WriteCSVPrepareBatch(ClientContext &context, Funct
499
499
  bool written_anything = false;
500
500
  auto batch = make_uniq<WriteCSVBatchData>();
501
501
  for (auto &chunk : collection->Chunks()) {
502
- WriteCSVChunkInternal(context, bind_data, cast_chunk, batch->serializer, chunk, written_anything);
502
+ WriteCSVChunkInternal(context, bind_data, cast_chunk, batch->stream, chunk, written_anything);
503
503
  }
504
504
  return std::move(batch);
505
505
  }
@@ -512,9 +512,9 @@ void WriteCSVFlushBatch(ClientContext &context, FunctionData &bind_data, GlobalF
512
512
  auto &csv_batch = batch.Cast<WriteCSVBatchData>();
513
513
  auto &global_state = gstate.Cast<GlobalWriteCSVData>();
514
514
  auto &csv_data = bind_data.Cast<WriteCSVData>();
515
- auto &writer = csv_batch.serializer;
516
- global_state.WriteRows(writer.blob.data.get(), writer.blob.size, csv_data.newline);
517
- writer.Reset();
515
+ auto &writer = csv_batch.stream;
516
+ global_state.WriteRows(writer.GetData(), writer.GetPosition(), csv_data.newline);
517
+ writer.Rewind();
518
518
  }
519
519
 
520
520
  void CSVCopyFunction::RegisterFunction(BuiltinFunctions &set) {
@@ -16,8 +16,8 @@
16
16
  #include "duckdb/parser/tableref/table_function_ref.hpp"
17
17
  #include "duckdb/planner/operator/logical_get.hpp"
18
18
  #include "duckdb/main/extension_helper.hpp"
19
- #include "duckdb/common/serializer/format_serializer.hpp"
20
- #include "duckdb/common/serializer/format_deserializer.hpp"
19
+ #include "duckdb/common/serializer/serializer.hpp"
20
+ #include "duckdb/common/serializer/deserializer.hpp"
21
21
 
22
22
  #include <limits>
23
23
 
@@ -1088,182 +1088,15 @@ unique_ptr<NodeStatistics> CSVReaderCardinality(ClientContext &context, const Fu
1088
1088
  }
1089
1089
  return make_uniq<NodeStatistics>(bind_data.files.size() * per_file_cardinality);
1090
1090
  }
1091
- void CSVStateMachineOptions::Serialize(FieldWriter &writer) const {
1092
- writer.WriteField<char>(delimiter);
1093
- writer.WriteField<char>(quote);
1094
- writer.WriteField<char>(escape);
1095
- }
1096
-
1097
- void DialectOptions::Serialize(FieldWriter &writer) const {
1098
- state_machine_options.Serialize(writer);
1099
- writer.WriteField<bool>(header);
1100
- writer.WriteField<idx_t>(num_cols);
1101
- writer.WriteField<NewLineIdentifier>(new_line);
1102
- writer.WriteField<idx_t>(skip_rows);
1103
- vector<string> csv_formats;
1104
- for (auto &format : date_format) {
1105
- writer.WriteField(has_format.find(format.first)->second);
1106
- csv_formats.push_back(format.second.format_specifier);
1107
- }
1108
- writer.WriteList<string>(csv_formats);
1109
- }
1110
- void CSVStateMachineOptions::Deserialize(FieldReader &reader) {
1111
- delimiter = reader.ReadRequired<char>();
1112
- quote = reader.ReadRequired<char>();
1113
- escape = reader.ReadRequired<char>();
1114
- }
1115
- void DialectOptions::Deserialize(FieldReader &reader) {
1116
- state_machine_options.Deserialize(reader);
1117
- header = reader.ReadRequired<bool>();
1118
- num_cols = reader.ReadRequired<idx_t>();
1119
- new_line = reader.ReadRequired<NewLineIdentifier>();
1120
- skip_rows = reader.ReadRequired<idx_t>();
1121
-
1122
- bool has_date = reader.ReadRequired<bool>();
1123
- bool has_timestamp = reader.ReadRequired<bool>();
1124
- auto formats = reader.ReadRequiredList<string>();
1125
-
1126
- vector<LogicalTypeId> format_types {LogicalTypeId::DATE, LogicalTypeId::TIMESTAMP};
1127
- if (has_date) {
1128
- has_format[LogicalTypeId::DATE] = true;
1129
- }
1130
- if (has_timestamp) {
1131
- has_format[LogicalTypeId::TIMESTAMP] = true;
1132
- }
1133
- for (idx_t f_idx = 0; f_idx < formats.size(); f_idx++) {
1134
- auto &format = formats[f_idx];
1135
- auto &type = format_types[f_idx];
1136
- if (format.empty()) {
1137
- continue;
1138
- }
1139
- StrTimeFormat::ParseFormatSpecifier(format, date_format[type]);
1140
- }
1141
- }
1142
-
1143
- void CSVReaderOptions::Serialize(FieldWriter &writer) const {
1144
- // common options
1145
- writer.WriteField<bool>(has_delimiter);
1146
- writer.WriteField<bool>(has_quote);
1147
- writer.WriteField<bool>(has_escape);
1148
- writer.WriteField<bool>(has_header);
1149
- writer.WriteField<bool>(ignore_errors);
1150
- writer.WriteField<idx_t>(buffer_sample_size);
1151
- writer.WriteString(null_str);
1152
- writer.WriteField<FileCompressionType>(compression);
1153
- writer.WriteField<bool>(allow_quoted_nulls);
1154
- // read options
1155
- writer.WriteField<bool>(skip_rows_set);
1156
- writer.WriteField<idx_t>(maximum_line_size);
1157
- writer.WriteField<bool>(normalize_names);
1158
- writer.WriteListNoReference<bool>(force_not_null);
1159
- writer.WriteField<bool>(all_varchar);
1160
- writer.WriteField<idx_t>(sample_chunk_size);
1161
- writer.WriteField<idx_t>(sample_chunks);
1162
- writer.WriteField<bool>(auto_detect);
1163
- writer.WriteString(file_path);
1164
- writer.WriteString(decimal_separator);
1165
- writer.WriteField<bool>(null_padding);
1166
- writer.WriteField<idx_t>(buffer_size);
1167
- writer.WriteSerializable(file_options);
1168
- // write options
1169
- writer.WriteListNoReference<bool>(force_quote);
1170
-
1171
- // reject options
1172
- writer.WriteString(rejects_table_name);
1173
- writer.WriteField<idx_t>(rejects_limit);
1174
- writer.WriteList<string>(rejects_recovery_columns);
1175
- writer.WriteList<idx_t>(rejects_recovery_column_ids);
1176
-
1177
- // Serialize Dialect Options
1178
- dialect_options.Serialize(writer);
1179
- }
1180
-
1181
- void CSVReaderOptions::Deserialize(FieldReader &reader) {
1182
- // common options
1183
- has_delimiter = reader.ReadRequired<bool>();
1184
- has_quote = reader.ReadRequired<bool>();
1185
- has_escape = reader.ReadRequired<bool>();
1186
- has_header = reader.ReadRequired<bool>();
1187
- ignore_errors = reader.ReadRequired<bool>();
1188
- buffer_sample_size = reader.ReadRequired<idx_t>();
1189
- null_str = reader.ReadRequired<string>();
1190
- compression = reader.ReadRequired<FileCompressionType>();
1191
- allow_quoted_nulls = reader.ReadRequired<bool>();
1192
- // read options
1193
- skip_rows_set = reader.ReadRequired<bool>();
1194
- maximum_line_size = reader.ReadRequired<idx_t>();
1195
- normalize_names = reader.ReadRequired<bool>();
1196
- force_not_null = reader.ReadRequiredList<bool>();
1197
- all_varchar = reader.ReadRequired<bool>();
1198
- sample_chunk_size = reader.ReadRequired<idx_t>();
1199
- sample_chunks = reader.ReadRequired<idx_t>();
1200
- auto_detect = reader.ReadRequired<bool>();
1201
- file_path = reader.ReadRequired<string>();
1202
- decimal_separator = reader.ReadRequired<string>();
1203
- null_padding = reader.ReadRequired<bool>();
1204
- buffer_size = reader.ReadRequired<idx_t>();
1205
- file_options = reader.ReadRequiredSerializable<MultiFileReaderOptions, MultiFileReaderOptions>();
1206
- // write options
1207
- force_quote = reader.ReadRequiredList<bool>();
1208
-
1209
- // rejects options
1210
- rejects_table_name = reader.ReadRequired<string>();
1211
- rejects_limit = reader.ReadRequired<idx_t>();
1212
- rejects_recovery_columns = reader.ReadRequiredList<string>();
1213
- rejects_recovery_column_ids = reader.ReadRequiredList<idx_t>();
1214
-
1215
- // dialect options
1216
- dialect_options.Deserialize(reader);
1217
- }
1218
-
1219
- static void CSVReaderSerialize(FieldWriter &writer, const FunctionData *bind_data_p, const TableFunction &function) {
1220
- auto &bind_data = bind_data_p->Cast<ReadCSVData>();
1221
- writer.WriteString(function.extra_info);
1222
- writer.WriteList<string>(bind_data.files);
1223
- writer.WriteRegularSerializableList<LogicalType>(bind_data.csv_types);
1224
- writer.WriteList<string>(bind_data.csv_names);
1225
- writer.WriteRegularSerializableList<LogicalType>(bind_data.return_types);
1226
- writer.WriteList<string>(bind_data.return_names);
1227
- writer.WriteField<idx_t>(bind_data.filename_col_idx);
1228
- writer.WriteField<idx_t>(bind_data.hive_partition_col_idx);
1229
- bind_data.options.Serialize(writer);
1230
- writer.WriteField<bool>(bind_data.single_threaded);
1231
- writer.WriteSerializable(bind_data.reader_bind);
1232
- writer.WriteField<uint32_t>(bind_data.column_info.size());
1233
- for (auto &col : bind_data.column_info) {
1234
- col.Serialize(writer);
1235
- }
1236
- }
1237
-
1238
- static unique_ptr<FunctionData> CSVReaderDeserialize(PlanDeserializationState &state, FieldReader &reader,
1239
- TableFunction &function) {
1240
- function.extra_info = reader.ReadRequired<string>();
1241
- auto result_data = make_uniq<ReadCSVData>();
1242
- result_data->files = reader.ReadRequiredList<string>();
1243
- result_data->csv_types = reader.ReadRequiredSerializableList<LogicalType, LogicalType>();
1244
- result_data->csv_names = reader.ReadRequiredList<string>();
1245
- result_data->return_types = reader.ReadRequiredSerializableList<LogicalType, LogicalType>();
1246
- result_data->return_names = reader.ReadRequiredList<string>();
1247
- result_data->filename_col_idx = reader.ReadRequired<idx_t>();
1248
- result_data->hive_partition_col_idx = reader.ReadRequired<idx_t>();
1249
- result_data->options.Deserialize(reader);
1250
- result_data->single_threaded = reader.ReadField<bool>(true);
1251
- result_data->reader_bind = reader.ReadRequiredSerializable<MultiFileReaderBindData, MultiFileReaderBindData>();
1252
- uint32_t file_number = reader.ReadRequired<uint32_t>();
1253
- for (idx_t i = 0; i < file_number; i++) {
1254
- result_data->column_info.emplace_back(ColumnInfo::Deserialize(reader));
1255
- }
1256
- return std::move(result_data);
1257
- }
1258
1091
 
1259
- static void CSVReaderFormatSerialize(FormatSerializer &serializer, const optional_ptr<FunctionData> bind_data_p,
1260
- const TableFunction &function) {
1092
+ static void CSVReaderSerialize(Serializer &serializer, const optional_ptr<FunctionData> bind_data_p,
1093
+ const TableFunction &function) {
1261
1094
  auto &bind_data = bind_data_p->Cast<ReadCSVData>();
1262
1095
  serializer.WriteProperty(100, "extra_info", function.extra_info);
1263
1096
  serializer.WriteProperty(101, "csv_data", &bind_data);
1264
1097
  }
1265
1098
 
1266
- static unique_ptr<FunctionData> CSVReaderFormatDeserialize(FormatDeserializer &deserializer, TableFunction &function) {
1099
+ static unique_ptr<FunctionData> CSVReaderDeserialize(Deserializer &deserializer, TableFunction &function) {
1267
1100
  unique_ptr<ReadCSVData> result;
1268
1101
  deserializer.ReadProperty(100, "extra_info", function.extra_info);
1269
1102
  deserializer.ReadProperty(101, "csv_data", result);
@@ -1277,8 +1110,6 @@ TableFunction ReadCSVTableFunction::GetFunction() {
1277
1110
  read_csv.pushdown_complex_filter = CSVComplexFilterPushdown;
1278
1111
  read_csv.serialize = CSVReaderSerialize;
1279
1112
  read_csv.deserialize = CSVReaderDeserialize;
1280
- read_csv.format_serialize = CSVReaderFormatSerialize;
1281
- read_csv.format_deserialize = CSVReaderFormatDeserialize;
1282
1113
  read_csv.get_batch_index = CSVReaderGetBatchIndex;
1283
1114
  read_csv.cardinality = CSVReaderCardinality;
1284
1115
  read_csv.projection_pushdown = true;
@@ -1,7 +1,6 @@
1
1
  #include "duckdb/function/table/table_scan.hpp"
2
2
 
3
3
  #include "duckdb/catalog/catalog_entry/duck_table_entry.hpp"
4
- #include "duckdb/common/field_writer.hpp"
5
4
  #include "duckdb/common/mutex.hpp"
6
5
  #include "duckdb/main/client_config.hpp"
7
6
  #include "duckdb/optimizer/matcher/expression_matcher.hpp"
@@ -15,8 +14,8 @@
15
14
  #include "duckdb/catalog/dependency_list.hpp"
16
15
  #include "duckdb/function/function_set.hpp"
17
16
  #include "duckdb/storage/table/scan_state.hpp"
18
- #include "duckdb/common/serializer/format_serializer.hpp"
19
- #include "duckdb/common/serializer/format_deserializer.hpp"
17
+ #include "duckdb/common/serializer/serializer.hpp"
18
+ #include "duckdb/common/serializer/deserializer.hpp"
20
19
 
21
20
  namespace duckdb {
22
21
 
@@ -417,40 +416,8 @@ string TableScanToString(const FunctionData *bind_data_p) {
417
416
  return result;
418
417
  }
419
418
 
420
- static void TableScanSerialize(FieldWriter &writer, const FunctionData *bind_data_p, const TableFunction &function) {
421
- auto &bind_data = bind_data_p->Cast<TableScanBindData>();
422
-
423
- writer.WriteString(bind_data.table.schema.name);
424
- writer.WriteString(bind_data.table.name);
425
- writer.WriteField<bool>(bind_data.is_index_scan);
426
- writer.WriteField<bool>(bind_data.is_create_index);
427
- writer.WriteList<row_t>(bind_data.result_ids);
428
- writer.WriteString(bind_data.table.schema.catalog.GetName());
429
- }
430
-
431
- static unique_ptr<FunctionData> TableScanDeserialize(PlanDeserializationState &state, FieldReader &reader,
432
- TableFunction &function) {
433
- auto schema_name = reader.ReadRequired<string>();
434
- auto table_name = reader.ReadRequired<string>();
435
- auto is_index_scan = reader.ReadRequired<bool>();
436
- auto is_create_index = reader.ReadRequired<bool>();
437
- auto result_ids = reader.ReadRequiredList<row_t>();
438
- auto catalog_name = reader.ReadField<string>(INVALID_CATALOG);
439
-
440
- auto &catalog_entry = Catalog::GetEntry<TableCatalogEntry>(state.context, catalog_name, schema_name, table_name);
441
- if (catalog_entry.type != CatalogType::TABLE_ENTRY) {
442
- throw SerializationException("Cant find table for %s.%s", schema_name, table_name);
443
- }
444
-
445
- auto result = make_uniq<TableScanBindData>(catalog_entry.Cast<DuckTableEntry>());
446
- result->is_index_scan = is_index_scan;
447
- result->is_create_index = is_create_index;
448
- result->result_ids = std::move(result_ids);
449
- return std::move(result);
450
- }
451
-
452
- static void TableScanFormatSerialize(FormatSerializer &serializer, const optional_ptr<FunctionData> bind_data_p,
453
- const TableFunction &function) {
419
+ static void TableScanSerialize(Serializer &serializer, const optional_ptr<FunctionData> bind_data_p,
420
+ const TableFunction &function) {
454
421
  auto &bind_data = bind_data_p->Cast<TableScanBindData>();
455
422
  serializer.WriteProperty(100, "catalog", bind_data.table.schema.catalog.GetName());
456
423
  serializer.WriteProperty(101, "schema", bind_data.table.schema.name);
@@ -460,7 +427,7 @@ static void TableScanFormatSerialize(FormatSerializer &serializer, const optiona
460
427
  serializer.WriteProperty(105, "result_ids", bind_data.result_ids);
461
428
  }
462
429
 
463
- static unique_ptr<FunctionData> TableScanFormatDeserialize(FormatDeserializer &deserializer, TableFunction &function) {
430
+ static unique_ptr<FunctionData> TableScanDeserialize(Deserializer &deserializer, TableFunction &function) {
464
431
  auto catalog = deserializer.ReadProperty<string>(100, "catalog");
465
432
  auto schema = deserializer.ReadProperty<string>(101, "schema");
466
433
  auto table = deserializer.ReadProperty<string>(102, "table");
@@ -491,8 +458,6 @@ TableFunction TableScanFunction::GetIndexScanFunction() {
491
458
  scan_function.filter_pushdown = false;
492
459
  scan_function.serialize = TableScanSerialize;
493
460
  scan_function.deserialize = TableScanDeserialize;
494
- scan_function.format_serialize = TableScanFormatSerialize;
495
- scan_function.format_deserialize = TableScanFormatDeserialize;
496
461
  return scan_function;
497
462
  }
498
463
 
@@ -513,8 +478,6 @@ TableFunction TableScanFunction::GetFunction() {
513
478
  scan_function.filter_prune = true;
514
479
  scan_function.serialize = TableScanSerialize;
515
480
  scan_function.deserialize = TableScanDeserialize;
516
- scan_function.format_serialize = TableScanFormatSerialize;
517
- scan_function.format_deserialize = TableScanFormatDeserialize;
518
481
  return scan_function;
519
482
  }
520
483
 
@@ -1,8 +1,8 @@
1
1
  #ifndef DUCKDB_VERSION
2
- #define DUCKDB_VERSION "0.8.2-dev4126"
2
+ #define DUCKDB_VERSION "0.8.2-dev4203"
3
3
  #endif
4
4
  #ifndef DUCKDB_SOURCE_ID
5
- #define DUCKDB_SOURCE_ID "84c7b8e62d"
5
+ #define DUCKDB_SOURCE_ID "7208022cac"
6
6
  #endif
7
7
  #include "duckdb/function/table/system_functions.hpp"
8
8
  #include "duckdb/main/database.hpp"
@@ -18,8 +18,8 @@ TableFunction::TableFunction(string name, vector<LogicalType> arguments, table_f
18
18
  init_global(init_global), init_local(init_local), function(function), in_out_function(nullptr),
19
19
  in_out_function_final(nullptr), statistics(nullptr), dependency(nullptr), cardinality(nullptr),
20
20
  pushdown_complex_filter(nullptr), to_string(nullptr), table_scan_progress(nullptr), get_batch_index(nullptr),
21
- get_batch_info(nullptr), serialize(nullptr), deserialize(nullptr), format_serialize(nullptr),
22
- format_deserialize(nullptr), projection_pushdown(false), filter_pushdown(false), filter_prune(false) {
21
+ get_batch_info(nullptr), serialize(nullptr), deserialize(nullptr), projection_pushdown(false),
22
+ filter_pushdown(false), filter_prune(false) {
23
23
  }
24
24
 
25
25
  TableFunction::TableFunction(const vector<LogicalType> &arguments, table_function_t function,
@@ -32,8 +32,7 @@ TableFunction::TableFunction()
32
32
  init_local(nullptr), function(nullptr), in_out_function(nullptr), statistics(nullptr), dependency(nullptr),
33
33
  cardinality(nullptr), pushdown_complex_filter(nullptr), to_string(nullptr), table_scan_progress(nullptr),
34
34
  get_batch_index(nullptr), get_batch_info(nullptr), serialize(nullptr), deserialize(nullptr),
35
- format_serialize(nullptr), format_deserialize(nullptr), projection_pushdown(false), filter_pushdown(false),
36
- filter_prune(false) {
35
+ projection_pushdown(false), filter_pushdown(false), filter_prune(false) {
37
36
  }
38
37
 
39
38
  bool TableFunction::Equal(const TableFunction &rhs) const {
@@ -31,14 +31,4 @@ string TableMacroFunction::ToSQL(const string &schema, const string &name) const
31
31
  return MacroFunction::ToSQL(schema, name) + StringUtil::Format("TABLE (%s);", query_node->ToString());
32
32
  }
33
33
 
34
- void TableMacroFunction::SerializeInternal(FieldWriter &writer) const {
35
- writer.WriteSerializable(*query_node);
36
- }
37
-
38
- unique_ptr<MacroFunction> TableMacroFunction::Deserialize(FieldReader &reader) {
39
- auto result = make_uniq<TableMacroFunction>();
40
- result->query_node = reader.ReadRequiredSerializable<QueryNode>();
41
- return std::move(result);
42
- }
43
-
44
34
  } // namespace duckdb
@@ -305,6 +305,7 @@ public:
305
305
  static void AutoloadExtensionByConfigName(ClientContext &context, const string &configuration_name);
306
306
  //! Autoload the extension required for `function_name` or throw a CatalogException
307
307
  static bool AutoLoadExtensionByCatalogEntry(ClientContext &context, CatalogType type, const string &entry_name);
308
+ DUCKDB_API static bool TryAutoLoad(ClientContext &context, const string &extension_name) noexcept;
308
309
 
309
310
  protected:
310
311
  //! Reference to the database
@@ -19,8 +19,6 @@ class StandardEntry;
19
19
  class TableCatalogEntry;
20
20
  class TableFunctionCatalogEntry;
21
21
  class SequenceCatalogEntry;
22
- class Serializer;
23
- class Deserializer;
24
22
 
25
23
  enum class OnCreateConflict : uint8_t;
26
24
 
@@ -14,8 +14,6 @@
14
14
  #include "duckdb/parser/parsed_data/alter_table_info.hpp"
15
15
 
16
16
  namespace duckdb {
17
- class Serializer;
18
- class Deserializer;
19
17
 
20
18
  struct SequenceValue {
21
19
  SequenceValue() : usage_count(0), counter(-1) {
@@ -13,8 +13,6 @@
13
13
  #include "duckdb/parser/parsed_data/create_type_info.hpp"
14
14
 
15
15
  namespace duckdb {
16
- class Serializer;
17
- class Deserializer;
18
16
 
19
17
  //! A type catalog entry
20
18
  class TypeCatalogEntry : public StandardEntry {
@@ -21,8 +21,8 @@ class Catalog;
21
21
  class CatalogSet;
22
22
  class ClientContext;
23
23
  class SchemaCatalogEntry;
24
- class FormatSerializer;
25
- class FormatDeserializer;
24
+ class Serializer;
25
+ class Deserializer;
26
26
 
27
27
  struct CreateInfo;
28
28
 
@@ -74,13 +74,8 @@ public:
74
74
 
75
75
  virtual void Verify(Catalog &catalog);
76
76
 
77
- //! Serialize the meta information of the CatalogEntry a serializer
78
77
  void Serialize(Serializer &serializer) const;
79
- //! Deserializes to a CreateInfo
80
- static unique_ptr<CreateInfo> Deserialize(Deserializer &source);
81
-
82
- void FormatSerialize(FormatSerializer &serializer) const;
83
- static unique_ptr<CreateInfo> FormatDeserialize(FormatDeserializer &deserializer);
78
+ static unique_ptr<CreateInfo> Deserialize(Deserializer &deserializer);
84
79
 
85
80
  public:
86
81
  template <class TARGET>
@@ -17,8 +17,10 @@
17
17
  namespace duckdb {
18
18
  class Serializer;
19
19
  class Deserializer;
20
- class FormatSerializer;
21
- class FormatDeserializer;
20
+ class BinarySerializer;
21
+ class BinaryDeserializer;
22
+ class WriteStream;
23
+ class ReadStream;
22
24
 
23
25
  //! inline std directives that we use frequently
24
26
  #ifndef DUCKDB_DEBUG_MOVE