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
@@ -7,6 +7,7 @@
7
7
  #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp"
8
8
  #include "duckdb/main/database.hpp"
9
9
  #include "duckdb/parser/parsed_data/alter_table_info.hpp"
10
+ #include "duckdb/common/serializer/binary_serializer.hpp"
10
11
  #include <cstring>
11
12
 
12
13
  namespace duckdb {
@@ -49,9 +50,11 @@ void WriteAheadLog::Delete() {
49
50
  // Write Entries
50
51
  //===--------------------------------------------------------------------===//
51
52
  void WriteAheadLog::WriteCheckpoint(MetaBlockPointer meta_block) {
52
- writer->Write<WALType>(WALType::CHECKPOINT);
53
- writer->Write<idx_t>(meta_block.block_pointer);
54
- writer->Write<uint32_t>(meta_block.offset);
53
+ BinarySerializer serializer(*writer);
54
+ serializer.Begin();
55
+ serializer.WriteProperty(100, "wal_type", WALType::CHECKPOINT);
56
+ serializer.WriteProperty(101, "meta_block", meta_block);
57
+ serializer.End();
55
58
  }
56
59
 
57
60
  //===--------------------------------------------------------------------===//
@@ -61,8 +64,11 @@ void WriteAheadLog::WriteCreateTable(const TableCatalogEntry &entry) {
61
64
  if (skip_writing) {
62
65
  return;
63
66
  }
64
- writer->Write<WALType>(WALType::CREATE_TABLE);
65
- entry.Serialize(*writer);
67
+ BinarySerializer serializer(*writer);
68
+ serializer.Begin();
69
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_TABLE);
70
+ serializer.WriteProperty(101, "table", &entry);
71
+ serializer.End();
66
72
  }
67
73
 
68
74
  //===--------------------------------------------------------------------===//
@@ -72,9 +78,12 @@ void WriteAheadLog::WriteDropTable(const TableCatalogEntry &entry) {
72
78
  if (skip_writing) {
73
79
  return;
74
80
  }
75
- writer->Write<WALType>(WALType::DROP_TABLE);
76
- writer->WriteString(entry.schema.name);
77
- writer->WriteString(entry.name);
81
+ BinarySerializer serializer(*writer);
82
+ serializer.Begin();
83
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_TABLE);
84
+ serializer.WriteProperty(101, "schema", entry.schema.name);
85
+ serializer.WriteProperty(102, "name", entry.name);
86
+ serializer.End();
78
87
  }
79
88
 
80
89
  //===--------------------------------------------------------------------===//
@@ -84,8 +93,11 @@ void WriteAheadLog::WriteCreateSchema(const SchemaCatalogEntry &entry) {
84
93
  if (skip_writing) {
85
94
  return;
86
95
  }
87
- writer->Write<WALType>(WALType::CREATE_SCHEMA);
88
- writer->WriteString(entry.name);
96
+ BinarySerializer serializer(*writer);
97
+ serializer.Begin();
98
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_SCHEMA);
99
+ serializer.WriteProperty(101, "schema", entry.name);
100
+ serializer.End();
89
101
  }
90
102
 
91
103
  //===--------------------------------------------------------------------===//
@@ -95,28 +107,37 @@ void WriteAheadLog::WriteCreateSequence(const SequenceCatalogEntry &entry) {
95
107
  if (skip_writing) {
96
108
  return;
97
109
  }
98
- writer->Write<WALType>(WALType::CREATE_SEQUENCE);
99
- entry.Serialize(*writer);
110
+ BinarySerializer serializer(*writer);
111
+ serializer.Begin();
112
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_SEQUENCE);
113
+ serializer.WriteProperty(101, "sequence", &entry);
114
+ serializer.End();
100
115
  }
101
116
 
102
117
  void WriteAheadLog::WriteDropSequence(const SequenceCatalogEntry &entry) {
103
118
  if (skip_writing) {
104
119
  return;
105
120
  }
106
- writer->Write<WALType>(WALType::DROP_SEQUENCE);
107
- writer->WriteString(entry.schema.name);
108
- writer->WriteString(entry.name);
121
+ BinarySerializer serializer(*writer);
122
+ serializer.Begin();
123
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_SEQUENCE);
124
+ serializer.WriteProperty(101, "schema", entry.schema.name);
125
+ serializer.WriteProperty(102, "name", entry.name);
126
+ serializer.End();
109
127
  }
110
128
 
111
129
  void WriteAheadLog::WriteSequenceValue(const SequenceCatalogEntry &entry, SequenceValue val) {
112
130
  if (skip_writing) {
113
131
  return;
114
132
  }
115
- writer->Write<WALType>(WALType::SEQUENCE_VALUE);
116
- writer->WriteString(entry.schema.name);
117
- writer->WriteString(entry.name);
118
- writer->Write<uint64_t>(val.usage_count);
119
- writer->Write<int64_t>(val.counter);
133
+ BinarySerializer serializer(*writer);
134
+ serializer.Begin();
135
+ serializer.WriteProperty(100, "wal_type", WALType::SEQUENCE_VALUE);
136
+ serializer.WriteProperty(101, "schema", entry.schema.name);
137
+ serializer.WriteProperty(102, "name", entry.name);
138
+ serializer.WriteProperty(103, "usage_count", val.usage_count);
139
+ serializer.WriteProperty(104, "counter", val.counter);
140
+ serializer.End();
120
141
  }
121
142
 
122
143
  //===--------------------------------------------------------------------===//
@@ -126,34 +147,46 @@ void WriteAheadLog::WriteCreateMacro(const ScalarMacroCatalogEntry &entry) {
126
147
  if (skip_writing) {
127
148
  return;
128
149
  }
129
- writer->Write<WALType>(WALType::CREATE_MACRO);
130
- entry.Serialize(*writer);
150
+ BinarySerializer serializer(*writer);
151
+ serializer.Begin();
152
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_MACRO);
153
+ serializer.WriteProperty(101, "macro", &entry);
154
+ serializer.End();
131
155
  }
132
156
 
133
157
  void WriteAheadLog::WriteDropMacro(const ScalarMacroCatalogEntry &entry) {
134
158
  if (skip_writing) {
135
159
  return;
136
160
  }
137
- writer->Write<WALType>(WALType::DROP_MACRO);
138
- writer->WriteString(entry.schema.name);
139
- writer->WriteString(entry.name);
161
+ BinarySerializer serializer(*writer);
162
+ serializer.Begin();
163
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_MACRO);
164
+ serializer.WriteProperty(101, "schema", entry.schema.name);
165
+ serializer.WriteProperty(102, "name", entry.name);
166
+ serializer.End();
140
167
  }
141
168
 
142
169
  void WriteAheadLog::WriteCreateTableMacro(const TableMacroCatalogEntry &entry) {
143
170
  if (skip_writing) {
144
171
  return;
145
172
  }
146
- writer->Write<WALType>(WALType::CREATE_TABLE_MACRO);
147
- entry.Serialize(*writer);
173
+ BinarySerializer serializer(*writer);
174
+ serializer.Begin();
175
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_TABLE_MACRO);
176
+ serializer.WriteProperty(101, "table", &entry);
177
+ serializer.End();
148
178
  }
149
179
 
150
180
  void WriteAheadLog::WriteDropTableMacro(const TableMacroCatalogEntry &entry) {
151
181
  if (skip_writing) {
152
182
  return;
153
183
  }
154
- writer->Write<WALType>(WALType::DROP_TABLE_MACRO);
155
- writer->WriteString(entry.schema.name);
156
- writer->WriteString(entry.name);
184
+ BinarySerializer serializer(*writer);
185
+ serializer.Begin();
186
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_TABLE_MACRO);
187
+ serializer.WriteProperty(101, "schema", entry.schema.name);
188
+ serializer.WriteProperty(102, "name", entry.name);
189
+ serializer.End();
157
190
  }
158
191
 
159
192
  //===--------------------------------------------------------------------===//
@@ -163,17 +196,23 @@ void WriteAheadLog::WriteCreateIndex(const IndexCatalogEntry &entry) {
163
196
  if (skip_writing) {
164
197
  return;
165
198
  }
166
- writer->Write<WALType>(WALType::CREATE_INDEX);
167
- entry.Serialize(*writer);
199
+ BinarySerializer serializer(*writer);
200
+ serializer.Begin();
201
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_INDEX);
202
+ serializer.WriteProperty(101, "index", &entry);
203
+ serializer.End();
168
204
  }
169
205
 
170
206
  void WriteAheadLog::WriteDropIndex(const IndexCatalogEntry &entry) {
171
207
  if (skip_writing) {
172
208
  return;
173
209
  }
174
- writer->Write<WALType>(WALType::DROP_INDEX);
175
- writer->WriteString(entry.schema.name);
176
- writer->WriteString(entry.name);
210
+ BinarySerializer serializer(*writer);
211
+ serializer.Begin();
212
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_INDEX);
213
+ serializer.WriteProperty(101, "schema", entry.schema.name);
214
+ serializer.WriteProperty(102, "name", entry.name);
215
+ serializer.End();
177
216
  }
178
217
 
179
218
  //===--------------------------------------------------------------------===//
@@ -183,17 +222,23 @@ void WriteAheadLog::WriteCreateType(const TypeCatalogEntry &entry) {
183
222
  if (skip_writing) {
184
223
  return;
185
224
  }
186
- writer->Write<WALType>(WALType::CREATE_TYPE);
187
- entry.Serialize(*writer);
225
+ BinarySerializer serializer(*writer);
226
+ serializer.Begin();
227
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_TYPE);
228
+ serializer.WriteProperty(101, "type", &entry);
229
+ serializer.End();
188
230
  }
189
231
 
190
232
  void WriteAheadLog::WriteDropType(const TypeCatalogEntry &entry) {
191
233
  if (skip_writing) {
192
234
  return;
193
235
  }
194
- writer->Write<WALType>(WALType::DROP_TYPE);
195
- writer->WriteString(entry.schema.name);
196
- writer->WriteString(entry.name);
236
+ BinarySerializer serializer(*writer);
237
+ serializer.Begin();
238
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_TYPE);
239
+ serializer.WriteProperty(101, "schema", entry.schema.name);
240
+ serializer.WriteProperty(102, "name", entry.name);
241
+ serializer.End();
197
242
  }
198
243
 
199
244
  //===--------------------------------------------------------------------===//
@@ -203,17 +248,23 @@ void WriteAheadLog::WriteCreateView(const ViewCatalogEntry &entry) {
203
248
  if (skip_writing) {
204
249
  return;
205
250
  }
206
- writer->Write<WALType>(WALType::CREATE_VIEW);
207
- entry.Serialize(*writer);
251
+ BinarySerializer serializer(*writer);
252
+ serializer.Begin();
253
+ serializer.WriteProperty(100, "wal_type", WALType::CREATE_VIEW);
254
+ serializer.WriteProperty(101, "view", &entry);
255
+ serializer.End();
208
256
  }
209
257
 
210
258
  void WriteAheadLog::WriteDropView(const ViewCatalogEntry &entry) {
211
259
  if (skip_writing) {
212
260
  return;
213
261
  }
214
- writer->Write<WALType>(WALType::DROP_VIEW);
215
- writer->WriteString(entry.schema.name);
216
- writer->WriteString(entry.name);
262
+ BinarySerializer serializer(*writer);
263
+ serializer.Begin();
264
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_VIEW);
265
+ serializer.WriteProperty(101, "schema", entry.schema.name);
266
+ serializer.WriteProperty(102, "name", entry.name);
267
+ serializer.End();
217
268
  }
218
269
 
219
270
  //===--------------------------------------------------------------------===//
@@ -223,8 +274,11 @@ void WriteAheadLog::WriteDropSchema(const SchemaCatalogEntry &entry) {
223
274
  if (skip_writing) {
224
275
  return;
225
276
  }
226
- writer->Write<WALType>(WALType::DROP_SCHEMA);
227
- writer->WriteString(entry.name);
277
+ BinarySerializer serializer(*writer);
278
+ serializer.Begin();
279
+ serializer.WriteProperty(100, "wal_type", WALType::DROP_SCHEMA);
280
+ serializer.WriteProperty(101, "schema", entry.name);
281
+ serializer.End();
228
282
  }
229
283
 
230
284
  //===--------------------------------------------------------------------===//
@@ -234,9 +288,12 @@ void WriteAheadLog::WriteSetTable(string &schema, string &table) {
234
288
  if (skip_writing) {
235
289
  return;
236
290
  }
237
- writer->Write<WALType>(WALType::USE_TABLE);
238
- writer->WriteString(schema);
239
- writer->WriteString(table);
291
+ BinarySerializer serializer(*writer);
292
+ serializer.Begin();
293
+ serializer.WriteProperty(100, "wal_type", WALType::USE_TABLE);
294
+ serializer.WriteProperty(101, "schema", schema);
295
+ serializer.WriteProperty(102, "table", table);
296
+ serializer.End();
240
297
  }
241
298
 
242
299
  void WriteAheadLog::WriteInsert(DataChunk &chunk) {
@@ -246,8 +303,11 @@ void WriteAheadLog::WriteInsert(DataChunk &chunk) {
246
303
  D_ASSERT(chunk.size() > 0);
247
304
  chunk.Verify();
248
305
 
249
- writer->Write<WALType>(WALType::INSERT_TUPLE);
250
- chunk.Serialize(*writer);
306
+ BinarySerializer serializer(*writer);
307
+ serializer.Begin();
308
+ serializer.WriteProperty(100, "wal_type", WALType::INSERT_TUPLE);
309
+ serializer.WriteProperty(101, "chunk", chunk);
310
+ serializer.End();
251
311
  }
252
312
 
253
313
  void WriteAheadLog::WriteDelete(DataChunk &chunk) {
@@ -258,8 +318,11 @@ void WriteAheadLog::WriteDelete(DataChunk &chunk) {
258
318
  D_ASSERT(chunk.ColumnCount() == 1 && chunk.data[0].GetType() == LogicalType::ROW_TYPE);
259
319
  chunk.Verify();
260
320
 
261
- writer->Write<WALType>(WALType::DELETE_TUPLE);
262
- chunk.Serialize(*writer);
321
+ BinarySerializer serializer(*writer);
322
+ serializer.Begin();
323
+ serializer.WriteProperty(100, "wal_type", WALType::DELETE_TUPLE);
324
+ serializer.WriteProperty(101, "chunk", chunk);
325
+ serializer.End();
263
326
  }
264
327
 
265
328
  void WriteAheadLog::WriteUpdate(DataChunk &chunk, const vector<column_t> &column_indexes) {
@@ -271,23 +334,26 @@ void WriteAheadLog::WriteUpdate(DataChunk &chunk, const vector<column_t> &column
271
334
  D_ASSERT(chunk.data[1].GetType().id() == LogicalType::ROW_TYPE);
272
335
  chunk.Verify();
273
336
 
274
- writer->Write<WALType>(WALType::UPDATE_TUPLE);
275
- writer->Write<idx_t>(column_indexes.size());
276
- for (auto &col_idx : column_indexes) {
277
- writer->Write<column_t>(col_idx);
278
- }
279
- chunk.Serialize(*writer);
337
+ BinarySerializer serializer(*writer);
338
+ serializer.Begin();
339
+ serializer.WriteProperty(100, "wal_type", WALType::UPDATE_TUPLE);
340
+ serializer.WriteProperty(101, "column_indexes", column_indexes);
341
+ serializer.WriteProperty(102, "chunk", chunk);
342
+ serializer.End();
280
343
  }
281
344
 
282
345
  //===--------------------------------------------------------------------===//
283
346
  // Write ALTER Statement
284
347
  //===--------------------------------------------------------------------===//
285
- void WriteAheadLog::WriteAlter(data_ptr_t ptr, idx_t data_size) {
348
+ void WriteAheadLog::WriteAlter(const AlterInfo &info) {
286
349
  if (skip_writing) {
287
350
  return;
288
351
  }
289
- writer->Write<WALType>(WALType::ALTER_INFO);
290
- writer->WriteData(ptr, data_size);
352
+ BinarySerializer serializer(*writer);
353
+ serializer.Begin();
354
+ serializer.WriteProperty(100, "wal_type", WALType::ALTER_INFO);
355
+ serializer.WriteProperty(101, "info", &info);
356
+ serializer.End();
291
357
  }
292
358
 
293
359
  //===--------------------------------------------------------------------===//
@@ -297,8 +363,13 @@ void WriteAheadLog::Flush() {
297
363
  if (skip_writing) {
298
364
  return;
299
365
  }
366
+
367
+ BinarySerializer serializer(*writer);
368
+ serializer.Begin();
300
369
  // write an empty entry
301
- writer->Write<WALType>(WALType::WAL_FLUSH);
370
+ serializer.WriteProperty(100, "wal_type", WALType::WAL_FLUSH);
371
+ serializer.End();
372
+
302
373
  // flushes all changes made to the WAL to disk
303
374
  writer->Sync();
304
375
  }
@@ -5,7 +5,6 @@
5
5
  #include "duckdb/catalog/catalog_entry/type_catalog_entry.hpp"
6
6
  #include "duckdb/catalog/catalog_set.hpp"
7
7
  #include "duckdb/catalog/duck_catalog.hpp"
8
- #include "duckdb/common/serializer/buffered_deserializer.hpp"
9
8
  #include "duckdb/storage/data_table.hpp"
10
9
  #include "duckdb/storage/table/chunk_info.hpp"
11
10
  #include "duckdb/storage/table/column_data.hpp"
@@ -17,6 +16,8 @@
17
16
  #include "duckdb/transaction/update_info.hpp"
18
17
  #include "duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp"
19
18
  #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp"
19
+ #include "duckdb/common/serializer/binary_deserializer.hpp"
20
+ #include "duckdb/common/serializer/memory_stream.hpp"
20
21
 
21
22
  namespace duckdb {
22
23
 
@@ -45,18 +46,23 @@ void CommitState::WriteCatalogEntry(CatalogEntry &entry, data_ptr_t dataptr) {
45
46
  auto &table_entry = entry.Cast<DuckTableEntry>();
46
47
  D_ASSERT(table_entry.IsDuckTable());
47
48
  // ALTER TABLE statement, read the extra data after the entry
49
+
48
50
  auto extra_data_size = Load<idx_t>(dataptr);
49
51
  auto extra_data = data_ptr_cast(dataptr + sizeof(idx_t));
50
52
 
51
- BufferedDeserializer source(extra_data, extra_data_size);
52
- string column_name = source.Read<string>();
53
+ MemoryStream source(extra_data, extra_data_size);
54
+ BinaryDeserializer deserializer(source);
55
+ deserializer.Begin();
56
+ auto column_name = deserializer.ReadProperty<string>(100, "column_name");
57
+ auto parse_info = deserializer.ReadProperty<unique_ptr<ParseInfo>>(101, "alter_info");
58
+ deserializer.End();
53
59
 
54
60
  if (!column_name.empty()) {
55
61
  // write the alter table in the log
56
62
  table_entry.CommitAlter(column_name);
57
63
  }
58
-
59
- log->WriteAlter(source.ptr, source.endptr - source.ptr);
64
+ auto &alter_info = parse_info->Cast<AlterInfo>();
65
+ log->WriteAlter(alter_info);
60
66
  } else {
61
67
  // CREATE TABLE statement
62
68
  log->WriteCreateTable(parent->Cast<TableCatalogEntry>());
@@ -75,10 +81,18 @@ void CommitState::WriteCatalogEntry(CatalogEntry &entry, data_ptr_t dataptr) {
75
81
  auto extra_data_size = Load<idx_t>(dataptr);
76
82
  auto extra_data = data_ptr_cast(dataptr + sizeof(idx_t));
77
83
  // deserialize it
78
- BufferedDeserializer source(extra_data, extra_data_size);
79
- string column_name = source.Read<string>();
84
+ MemoryStream source(extra_data, extra_data_size);
85
+ BinaryDeserializer deserializer(source);
86
+ deserializer.Begin();
87
+ auto column_name = deserializer.ReadProperty<string>(100, "column_name");
88
+ auto parse_info = deserializer.ReadProperty<unique_ptr<ParseInfo>>(101, "alter_info");
89
+ deserializer.End();
90
+
91
+ (void)column_name;
92
+
80
93
  // write the alter table in the log
81
- log->WriteAlter(source.ptr, source.endptr - source.ptr);
94
+ auto &alter_info = parse_info->Cast<AlterInfo>();
95
+ log->WriteAlter(alter_info);
82
96
  } else {
83
97
  log->WriteCreateView(parent->Cast<ViewCatalogEntry>());
84
98
  }
@@ -1,7 +1,8 @@
1
1
  #include "duckdb/verification/deserialized_statement_verifier.hpp"
2
- #include "duckdb/common/serializer/buffered_deserializer.hpp"
3
- #include "duckdb/common/serializer/binary_serializer.hpp"
2
+
4
3
  #include "duckdb/common/serializer/binary_deserializer.hpp"
4
+ #include "duckdb/common/serializer/binary_serializer.hpp"
5
+ #include "duckdb/common/serializer/memory_stream.hpp"
5
6
  namespace duckdb {
6
7
 
7
8
  DeserializedStatementVerifier::DeserializedStatementVerifier(unique_ptr<SQLStatement> statement_p)
@@ -9,11 +10,15 @@ DeserializedStatementVerifier::DeserializedStatementVerifier(unique_ptr<SQLState
9
10
  }
10
11
 
11
12
  unique_ptr<StatementVerifier> DeserializedStatementVerifier::Create(const SQLStatement &statement) {
13
+
12
14
  auto &select_stmt = statement.Cast<SelectStatement>();
13
- BufferedSerializer serializer;
14
- select_stmt.Serialize(serializer);
15
- BufferedDeserializer source(serializer);
16
- return make_uniq<DeserializedStatementVerifier>(SelectStatement::Deserialize(source));
15
+
16
+ MemoryStream stream;
17
+ BinarySerializer::Serialize(select_stmt, stream);
18
+ stream.Rewind();
19
+ auto result = BinaryDeserializer::Deserialize<SelectStatement>(stream);
20
+
21
+ return make_uniq<DeserializedStatementVerifier>(std::move(result));
17
22
  }
18
23
 
19
24
  } // namespace duckdb
@@ -5,7 +5,6 @@
5
5
  #include "duckdb/parser/parser.hpp"
6
6
  #include "duckdb/verification/copied_statement_verifier.hpp"
7
7
  #include "duckdb/verification/deserialized_statement_verifier.hpp"
8
- #include "duckdb/verification/deserialized_statement_verifier_v2.hpp"
9
8
  #include "duckdb/verification/external_statement_verifier.hpp"
10
9
  #include "duckdb/verification/parsed_statement_verifier.hpp"
11
10
  #include "duckdb/verification/prepared_statement_verifier.hpp"
@@ -33,10 +32,6 @@ unique_ptr<StatementVerifier> StatementVerifier::Create(VerificationType type, c
33
32
  return CopiedStatementVerifier::Create(statement_p);
34
33
  case VerificationType::DESERIALIZED:
35
34
  return DeserializedStatementVerifier::Create(statement_p);
36
- case VerificationType::DESERIALIZED_V2:
37
- return DeserializedStatementVerifierV2::Create(statement_p);
38
- case VerificationType::DESERIALIZED_V2_NO_DEFAULT:
39
- return DeserializedStatementVerifierNoDefaultV2::Create(statement_p);
40
35
  case VerificationType::PARSED:
41
36
  return ParsedStatementVerifier::Create(statement_p);
42
37
  case VerificationType::UNOPTIMIZED:
@@ -101,7 +101,7 @@ extern const std::map<int, const char*> _Encoding_VALUES_TO_NAMES;
101
101
  std::ostream& operator<<(std::ostream& out, const Encoding::type& val);
102
102
 
103
103
  struct CompressionCodec {
104
- enum type {
104
+ enum type : uint8_t {
105
105
  UNCOMPRESSED = 0,
106
106
  SNAPPY = 1,
107
107
  GZIP = 2,
@@ -20,8 +20,6 @@
20
20
 
21
21
  #include "src/common/extra_type_info.cpp"
22
22
 
23
- #include "src/common/field_writer.cpp"
24
-
25
23
  #include "src/common/file_buffer.cpp"
26
24
 
27
25
  #include "src/common/file_system.cpp"
@@ -52,8 +50,6 @@
52
50
 
53
51
  #include "src/common/random_engine.cpp"
54
52
 
55
- #include "src/common/serializer.cpp"
56
-
57
53
  #include "src/common/string_util.cpp"
58
54
 
59
55
  #include "src/common/enum_util.cpp"
@@ -2,13 +2,11 @@
2
2
 
3
3
  #include "src/common/serializer/binary_deserializer.cpp"
4
4
 
5
- #include "src/common/serializer/buffered_deserializer.cpp"
6
-
7
5
  #include "src/common/serializer/buffered_file_reader.cpp"
8
6
 
9
7
  #include "src/common/serializer/buffered_file_writer.cpp"
10
8
 
11
- #include "src/common/serializer/buffered_serializer.cpp"
9
+ #include "src/common/serializer/memory_stream.cpp"
12
10
 
13
- #include "src/common/serializer/format_serializer.cpp"
11
+ #include "src/common/serializer/serializer.cpp"
14
12
 
@@ -18,8 +18,6 @@
18
18
 
19
19
  #include "src/planner/planner.cpp"
20
20
 
21
- #include "src/planner/plan_serialization.cpp"
22
-
23
21
  #include "src/planner/pragma_handler.cpp"
24
22
 
25
23
  #include "src/planner/logical_operator_visitor.cpp"
@@ -16,8 +16,6 @@
16
16
 
17
17
  #include "src/planner/expression/bound_constant_expression.cpp"
18
18
 
19
- #include "src/planner/expression/bound_default_expression.cpp"
20
-
21
19
  #include "src/planner/expression/bound_function_expression.cpp"
22
20
 
23
21
  #include "src/planner/expression/bound_lambda_expression.cpp"
@@ -30,12 +30,6 @@
30
30
 
31
31
  #include "src/planner/operator/logical_empty_result.cpp"
32
32
 
33
- #include "src/planner/operator/logical_execute.cpp"
34
-
35
- #include "src/planner/operator/logical_explain.cpp"
36
-
37
- #include "src/planner/operator/logical_export.cpp"
38
-
39
33
  #include "src/planner/operator/logical_expression_get.cpp"
40
34
 
41
35
  #include "src/planner/operator/logical_extension_operator.cpp"
@@ -76,8 +70,6 @@
76
70
 
77
71
  #include "src/planner/operator/logical_set_operation.cpp"
78
72
 
79
- #include "src/planner/operator/logical_show.cpp"
80
-
81
73
  #include "src/planner/operator/logical_simple.cpp"
82
74
 
83
75
  #include "src/planner/operator/logical_top_n.cpp"
@@ -4,15 +4,13 @@
4
4
  Napi::PropertyDescriptor::Value(#name, Napi::Number::New(env, constant), \
5
5
  static_cast<napi_property_attributes>(napi_enumerable | napi_configurable)),
6
6
 
7
- namespace {
8
-
9
- Napi::Object RegisterModule(Napi::Env env, Napi::Object exports) {
7
+ NodeDuckDB::NodeDuckDB(Napi::Env env, Napi::Object exports) {
10
8
  Napi::HandleScope scope(env);
11
9
 
12
- node_duckdb::Database::Init(env, exports);
13
- node_duckdb::Connection::Init(env, exports);
14
- node_duckdb::Statement::Init(env, exports);
15
- node_duckdb::QueryResult::Init(env, exports);
10
+ database_constructor = node_duckdb::Database::Init(env, exports);
11
+ connection_constructor = node_duckdb::Connection::Init(env, exports);
12
+ statement_constructor = node_duckdb::Statement::Init(env, exports);
13
+ query_result_constructor = node_duckdb::QueryResult::Init(env, exports);
16
14
 
17
15
  exports.DefineProperties({
18
16
  DEFINE_CONSTANT_INTEGER(exports, node_duckdb::Database::DUCKDB_NODEJS_ERROR, ERROR) DEFINE_CONSTANT_INTEGER(
@@ -23,10 +21,6 @@ Napi::Object RegisterModule(Napi::Env env, Napi::Object exports) {
23
21
  DEFINE_CONSTANT_INTEGER(exports, 0, OPEN_SHAREDCACHE) // ignored
24
22
  DEFINE_CONSTANT_INTEGER(exports, 0, OPEN_PRIVATECACHE) // ignored
25
23
  });
26
-
27
- return exports;
28
24
  }
29
25
 
30
- } // namespace
31
-
32
- NODE_API_MODULE(node_duckdb, RegisterModule);
26
+ NODE_API_ADDON(NodeDuckDB);