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
package/binding.gyp CHANGED
@@ -133,7 +133,6 @@
133
133
  "src/duckdb/ub_src_planner_expression_binder.cpp",
134
134
  "src/duckdb/ub_src_planner_filter.cpp",
135
135
  "src/duckdb/ub_src_planner_operator.cpp",
136
- "src/duckdb/ub_src_planner_parsed_data.cpp",
137
136
  "src/duckdb/ub_src_planner_subquery.cpp",
138
137
  "src/duckdb/ub_src_storage.cpp",
139
138
  "src/duckdb/ub_src_storage_buffer.cpp",
@@ -147,7 +146,6 @@
147
146
  "src/duckdb/ub_src_transaction.cpp",
148
147
  "src/duckdb/src/verification/copied_statement_verifier.cpp",
149
148
  "src/duckdb/src/verification/deserialized_statement_verifier.cpp",
150
- "src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp",
151
149
  "src/duckdb/src/verification/external_statement_verifier.cpp",
152
150
  "src/duckdb/src/verification/no_operator_caching_verifier.cpp",
153
151
  "src/duckdb/src/verification/parsed_statement_verifier.cpp",
package/lib/duckdb.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module duckdb
3
- * @summary these jsdoc annotations are still a work in progress - feedback and suggestions are welcome!
3
+ * @summary DuckDB is an embeddable SQL OLAP Database Management System
4
4
  */
5
5
 
6
6
  var duckdb = require('./duckdb-binding.js');
@@ -441,7 +441,7 @@ Database.prototype.close_internal;
441
441
  Database.prototype.wait;
442
442
 
443
443
  /**
444
- * TODO: what does this do?
444
+ * Currently a no-op. Provided for SQLite compatibility
445
445
  * @method
446
446
  * @param callback
447
447
  * @return {void}
@@ -449,7 +449,7 @@ Database.prototype.wait;
449
449
  Database.prototype.serialize;
450
450
 
451
451
  /**
452
- * TODO: what does this do?
452
+ * Currently a no-op. Provided for SQLite compatibility
453
453
  * @method
454
454
  * @param callback
455
455
  * @return {void}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "duckdb",
3
3
  "main": "./lib/duckdb.js",
4
4
  "types": "./lib/duckdb.d.ts",
5
- "version": "0.8.2-dev4126.0",
5
+ "version": "0.8.2-dev4203.0",
6
6
  "description": "DuckDB node.js API",
7
7
  "gypfile": true,
8
8
  "dependencies": {
@@ -9,9 +9,7 @@
9
9
 
10
10
  namespace node_duckdb {
11
11
 
12
- Napi::FunctionReference Connection::constructor;
13
-
14
- Napi::Object Connection::Init(Napi::Env env, Napi::Object exports) {
12
+ Napi::FunctionReference Connection::Init(Napi::Env env, Napi::Object exports) {
15
13
  Napi::HandleScope scope(env);
16
14
 
17
15
  Napi::Function t =
@@ -22,11 +20,9 @@ Napi::Object Connection::Init(Napi::Env env, Napi::Object exports) {
22
20
  InstanceMethod("unregister_udf", &Connection::UnregisterUdf),
23
21
  InstanceMethod("unregister_buffer", &Connection::UnRegisterBuffer)});
24
22
 
25
- constructor = Napi::Persistent(t);
26
- constructor.SuppressDestruct();
27
-
28
23
  exports.Set("Connection", t);
29
- return exports;
24
+
25
+ return Napi::Persistent(t);
30
26
  }
31
27
 
32
28
  struct ConnectTask : public Task {
@@ -103,7 +99,8 @@ Napi::Value Connection::Prepare(const Napi::CallbackInfo &info) {
103
99
  for (size_t i = 0; i < info.Length(); i++) {
104
100
  args.push_back(info[i]);
105
101
  }
106
- auto res = Utils::NewUnwrap<Statement>(args);
102
+ auto obj = Statement::NewInstance(info.Env(), args);
103
+ auto res = Statement::Unwrap(obj);
107
104
  res->SetProcessFirstParam();
108
105
  return res->Value();
109
106
  }
@@ -515,4 +512,8 @@ Napi::Value Connection::UnRegisterBuffer(const Napi::CallbackInfo &info) {
515
512
  return Value();
516
513
  }
517
514
 
515
+ Napi::Object Connection::NewInstance(const Napi::Value &db) {
516
+ return NodeDuckDB::GetData(db.Env())->connection_constructor.New({db});
517
+ }
518
+
518
519
  } // namespace node_duckdb
package/src/database.cpp CHANGED
@@ -10,9 +10,7 @@
10
10
 
11
11
  namespace node_duckdb {
12
12
 
13
- Napi::FunctionReference Database::constructor;
14
-
15
- Napi::Object Database::Init(Napi::Env env, Napi::Object exports) {
13
+ Napi::FunctionReference Database::Init(Napi::Env env, Napi::Object exports) {
16
14
  Napi::HandleScope scope(env);
17
15
 
18
16
  Napi::Function t = DefineClass(
@@ -22,11 +20,9 @@ Napi::Object Database::Init(Napi::Env env, Napi::Object exports) {
22
20
  InstanceMethod("connect", &Database::Connect), InstanceMethod("interrupt", &Database::Interrupt),
23
21
  InstanceMethod("registerReplacementScan", &Database::RegisterReplacementScan)});
24
22
 
25
- constructor = Napi::Persistent(t);
26
- constructor.SuppressDestruct();
27
-
28
23
  exports.Set("Database", t);
29
- return exports;
24
+
25
+ return Napi::Persistent(t);
30
26
  }
31
27
 
32
28
  struct OpenTask : public Task {
@@ -266,7 +262,8 @@ Napi::Value Database::Interrupt(const Napi::CallbackInfo &info) {
266
262
  }
267
263
 
268
264
  Napi::Value Database::Connect(const Napi::CallbackInfo &info) {
269
- return Connection::constructor.New({Value()});
265
+ Napi::HandleScope scope(env);
266
+ return Connection::NewInstance(Value());
270
267
  }
271
268
 
272
269
  struct JSRSArgs {
@@ -543,12 +543,12 @@ struct ICUDatePart : public ICUDateFunc {
543
543
  return make_uniq<BindStructData>(context, part_codes, bigints, doubles);
544
544
  }
545
545
 
546
- static void SerializeFunction(FieldWriter &writer, const FunctionData *bind_data_p,
546
+ static void SerializeFunction(Serializer &serializer, const optional_ptr<FunctionData> bind_data,
547
547
  const ScalarFunction &function) {
548
548
  throw NotImplementedException("FIXME: serialize icu-datepart");
549
549
  }
550
550
 
551
- static duckdb::unique_ptr<FunctionData> DeserializeFunction(PlanDeserializationState &state, FieldReader &reader,
551
+ static duckdb::unique_ptr<FunctionData> DeserializeFunction(Deserializer &deserializer,
552
552
  ScalarFunction &bound_function) {
553
553
  throw NotImplementedException("FIXME: serialize icu-datepart");
554
554
  }
@@ -48,15 +48,6 @@ struct ICUStrptime : public ICUDateFunc {
48
48
  duckdb::unique_ptr<FunctionData> Copy() const override {
49
49
  return make_uniq<ICUStrptimeBindData>(*this);
50
50
  }
51
-
52
- static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const ScalarFunction &function) {
53
- throw NotImplementedException("FIXME: serialize icu-strptime");
54
- }
55
-
56
- static duckdb::unique_ptr<FunctionData> Deserialize(PlanDeserializationState &state, FieldReader &reader,
57
- ScalarFunction &bound_function) {
58
- throw NotImplementedException("FIXME: serialize icu-strptime");
59
- }
60
51
  };
61
52
 
62
53
  static void ParseFormatSpecifier(string_t &format_specifier, StrpTimeFormat &format) {
@@ -136,12 +136,12 @@ static duckdb::unique_ptr<FunctionData> ICUSortKeyBind(ClientContext &context, S
136
136
  }
137
137
  }
138
138
 
139
- static void ICUCollateSerialize(FieldWriter &writer, const FunctionData *bind_data_p, const ScalarFunction &function) {
139
+ static void ICUCollateSerialize(Serializer &serializer, const optional_ptr<FunctionData> bind_data,
140
+ const ScalarFunction &function) {
140
141
  throw NotImplementedException("FIXME: serialize icu-collate");
141
142
  }
142
143
 
143
- static duckdb::unique_ptr<FunctionData> ICUCollateDeserialize(PlanDeserializationState &state, FieldReader &reader,
144
- ScalarFunction &bound_function) {
144
+ static duckdb::unique_ptr<FunctionData> ICUCollateDeserialize(Deserializer &deserializer, ScalarFunction &function) {
145
145
  throw NotImplementedException("FIXME: serialize icu-collate");
146
146
  }
147
147
 
@@ -141,7 +141,7 @@ U_NAMESPACE_BEGIN
141
141
  * cout << "DST_OFFSET: " << (calendar->get( UCAL_DST_OFFSET, success )/(60*60*1000)) << endl; // in hours
142
142
  *
143
143
  * if (U_FAILURE(success)) {
144
- * cout << "An error occured. success=" << u_errorName(success) << endl;
144
+ * cout << "An error occurred. success=" << u_errorName(success) << endl;
145
145
  * }
146
146
  *
147
147
  * delete ids;
@@ -1,28 +1,14 @@
1
1
  #include "buffered_json_reader.hpp"
2
2
 
3
- #include "duckdb/common/field_writer.hpp"
4
3
  #include "duckdb/common/file_opener.hpp"
5
- #include "duckdb/common/serializer/format_deserializer.hpp"
6
- #include "duckdb/common/serializer/format_serializer.hpp"
4
+ #include "duckdb/common/printer.hpp"
5
+ #include "duckdb/common/serializer/serializer.hpp"
6
+ #include "duckdb/common/serializer/deserializer.hpp"
7
7
 
8
8
  #include <utility>
9
9
 
10
10
  namespace duckdb {
11
11
 
12
- void BufferedJSONReaderOptions::Serialize(FieldWriter &writer) const {
13
- writer.WriteField<JSONFormat>(format);
14
- writer.WriteField<JSONRecordType>(record_type);
15
- writer.WriteField<FileCompressionType>(compression);
16
- writer.WriteSerializable(file_options);
17
- }
18
-
19
- void BufferedJSONReaderOptions::Deserialize(FieldReader &reader) {
20
- format = reader.ReadRequired<JSONFormat>();
21
- record_type = reader.ReadRequired<JSONRecordType>();
22
- compression = reader.ReadRequired<FileCompressionType>();
23
- file_options = reader.ReadRequiredSerializable<MultiFileReaderOptions, MultiFileReaderOptions>();
24
- }
25
-
26
12
  JSONBufferHandle::JSONBufferHandle(idx_t buffer_index_p, idx_t readers_p, AllocatedData &&buffer_p, idx_t buffer_size_p)
27
13
  : buffer_index(buffer_index_p), readers(readers_p), buffer(std::move(buffer_p)), buffer_size(buffer_size_p) {
28
14
  }
@@ -31,11 +31,8 @@ public:
31
31
  MultiFileReaderOptions file_options;
32
32
 
33
33
  public:
34
- void Serialize(FieldWriter &writer) const;
35
- void Deserialize(FieldReader &reader);
36
-
37
- void FormatSerialize(FormatSerializer &serializer) const;
38
- static BufferedJSONReaderOptions FormatDeserialize(FormatDeserializer &deserializer);
34
+ void Serialize(Serializer &serializer) const;
35
+ static BufferedJSONReaderOptions Deserialize(Deserializer &deserializer);
39
36
  };
40
37
 
41
38
  struct JSONBufferHandle {
@@ -1,10 +1,10 @@
1
1
  #pragma once
2
2
  #include "json_common.hpp"
3
- #include "duckdb/common/serializer/format_deserializer.hpp"
3
+ #include "duckdb/common/serializer/deserializer.hpp"
4
4
 
5
5
  namespace duckdb {
6
6
 
7
- class JsonDeserializer : public FormatDeserializer {
7
+ class JsonDeserializer : public Deserializer {
8
8
  public:
9
9
  JsonDeserializer(yyjson_val *val, yyjson_doc *doc) : doc(doc) {
10
10
  deserialize_enum_from_string = true;
@@ -92,11 +92,8 @@ public:
92
92
  void InitializeFormats(bool auto_detect);
93
93
  void SetCompression(const string &compression);
94
94
 
95
- void Serialize(FieldWriter &writer) const;
96
- void Deserialize(ClientContext &context, FieldReader &reader);
97
-
98
- void FormatSerialize(FormatSerializer &serializer) const;
99
- static unique_ptr<JSONScanData> FormatDeserialize(FormatDeserializer &deserializer);
95
+ void Serialize(Serializer &serializer) const;
96
+ static unique_ptr<JSONScanData> Deserialize(Deserializer &deserializer);
100
97
 
101
98
  public:
102
99
  //! Scan type
@@ -294,13 +291,9 @@ public:
294
291
  static void ComplexFilterPushdown(ClientContext &context, LogicalGet &get, FunctionData *bind_data_p,
295
292
  vector<unique_ptr<Expression>> &filters);
296
293
 
297
- static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const TableFunction &function);
298
- static unique_ptr<FunctionData> Deserialize(PlanDeserializationState &state, FieldReader &reader,
299
- TableFunction &function);
300
-
301
- static void FormatSerialize(FormatSerializer &serializer, const optional_ptr<FunctionData> bind_data,
302
- const TableFunction &function);
303
- static unique_ptr<FunctionData> FormatDeserialize(FormatDeserializer &deserializer, TableFunction &function);
294
+ static void Serialize(Serializer &serializer, const optional_ptr<FunctionData> bind_data,
295
+ const TableFunction &function);
296
+ static unique_ptr<FunctionData> Deserialize(Deserializer &deserializer, TableFunction &function);
304
297
 
305
298
  static void TableFunctionDefaults(TableFunction &table_function);
306
299
  };
@@ -1,11 +1,11 @@
1
1
  #pragma once
2
2
 
3
3
  #include "json_common.hpp"
4
- #include "duckdb/common/serializer/format_serializer.hpp"
4
+ #include "duckdb/common/serializer/serializer.hpp"
5
5
 
6
6
  namespace duckdb {
7
7
 
8
- struct JsonSerializer : FormatSerializer {
8
+ struct JsonSerializer : Serializer {
9
9
  private:
10
10
  yyjson_mut_doc *doc;
11
11
  yyjson_mut_val *current_tag;
@@ -34,7 +34,7 @@ public:
34
34
  template <class T>
35
35
  static yyjson_mut_val *Serialize(T &value, yyjson_mut_doc *doc, bool skip_if_null, bool skip_if_empty) {
36
36
  JsonSerializer serializer(doc, skip_if_null, skip_if_empty);
37
- value.FormatSerialize(serializer);
37
+ value.Serialize(serializer);
38
38
  return serializer.GetRootObject();
39
39
  }
40
40
 
@@ -42,11 +42,8 @@ public:
42
42
  idx_t object_index = DConstants::INVALID_INDEX;
43
43
 
44
44
  public:
45
- void Serialize(FieldWriter &writer) const;
46
- void Deserialize(FieldReader &reader);
47
-
48
- void FormatSerialize(FormatSerializer &serializer) const;
49
- static JSONTransformOptions FormatDeserialize(FormatDeserializer &deserializer);
45
+ void Serialize(Serializer &serializer) const;
46
+ static JSONTransformOptions Deserialize(Deserializer &deserializer);
50
47
  };
51
48
 
52
49
  struct TryParseDate {
@@ -184,7 +184,7 @@ static unique_ptr<SelectStatement> DeserializeSelectStatement(string_t input, yy
184
184
  }
185
185
  auto stmt_json = yyjson_arr_get(statements, 0);
186
186
  JsonDeserializer deserializer(stmt_json, doc);
187
- return SelectStatement::FormatDeserialize(deserializer);
187
+ return SelectStatement::Deserialize(deserializer);
188
188
  }
189
189
 
190
190
  //----------------------------------------------------------------------
@@ -8,8 +8,8 @@
8
8
  #include "duckdb/function/scalar/nested_functions.hpp"
9
9
  #include "json_functions.hpp"
10
10
  #include "json_scan.hpp"
11
- #include "duckdb/common/serializer/format_serializer.hpp"
12
- #include "duckdb/common/serializer/format_deserializer.hpp"
11
+ #include "duckdb/common/serializer/serializer.hpp"
12
+ #include "duckdb/common/serializer/deserializer.hpp"
13
13
 
14
14
  namespace duckdb {
15
15
 
@@ -22,22 +22,6 @@ JSONTransformOptions::JSONTransformOptions(bool strict_cast_p, bool error_duplic
22
22
  error_unknown_key(error_unkown_key_p) {
23
23
  }
24
24
 
25
- void JSONTransformOptions::Serialize(FieldWriter &writer) const {
26
- writer.WriteField(strict_cast);
27
- writer.WriteField(error_duplicate_key);
28
- writer.WriteField(error_missing_key);
29
- writer.WriteField(error_unknown_key);
30
- writer.WriteField(delay_error);
31
- }
32
-
33
- void JSONTransformOptions::Deserialize(FieldReader &reader) {
34
- strict_cast = reader.ReadRequired<bool>();
35
- error_duplicate_key = reader.ReadRequired<bool>();
36
- error_missing_key = reader.ReadRequired<bool>();
37
- error_unknown_key = reader.ReadRequired<bool>();
38
- delay_error = reader.ReadRequired<bool>();
39
- }
40
-
41
25
  //! Forward declaration for recursion
42
26
  static LogicalType StructureStringToType(yyjson_val *val, ClientContext &context);
43
27
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  #include "duckdb/common/enum_util.hpp"
4
4
  #include "duckdb/common/multi_file_reader.hpp"
5
- #include "duckdb/common/serializer/format_deserializer.hpp"
6
- #include "duckdb/common/serializer/format_serializer.hpp"
7
5
  #include "duckdb/main/extension_helper.hpp"
8
6
  #include "duckdb/parallel/task_scheduler.hpp"
9
7
  #include "duckdb/storage/buffer_manager.hpp"
8
+ #include "duckdb/common/serializer/serializer.hpp"
9
+ #include "duckdb/common/serializer/deserializer.hpp"
10
10
 
11
11
  namespace duckdb {
12
12
 
@@ -116,64 +116,6 @@ void JSONScanData::SetCompression(const string &compression) {
116
116
  options.compression = EnumUtil::FromString<FileCompressionType>(StringUtil::Upper(compression));
117
117
  }
118
118
 
119
- void JSONScanData::Serialize(FieldWriter &writer) const {
120
- writer.WriteField<JSONScanType>(type);
121
-
122
- options.Serialize(writer);
123
-
124
- writer.WriteSerializable(reader_bind);
125
-
126
- writer.WriteList<string>(files);
127
-
128
- writer.WriteField<bool>(ignore_errors);
129
- writer.WriteField<idx_t>(maximum_object_size);
130
- writer.WriteField<bool>(auto_detect);
131
- writer.WriteField<idx_t>(sample_size);
132
- writer.WriteField<idx_t>(max_depth);
133
-
134
- transform_options.Serialize(writer);
135
- writer.WriteList<string>(names);
136
- if (!date_format.empty()) {
137
- writer.WriteString(date_format);
138
- } else if (date_format_map.HasFormats(LogicalTypeId::DATE)) {
139
- writer.WriteString(date_format_map.GetFormat(LogicalTypeId::DATE).format_specifier);
140
- } else {
141
- writer.WriteString("");
142
- }
143
- if (!timestamp_format.empty()) {
144
- writer.WriteString(timestamp_format);
145
- } else if (date_format_map.HasFormats(LogicalTypeId::TIMESTAMP)) {
146
- writer.WriteString(date_format_map.GetFormat(LogicalTypeId::TIMESTAMP).format_specifier);
147
- } else {
148
- writer.WriteString("");
149
- }
150
- }
151
-
152
- void JSONScanData::Deserialize(ClientContext &context, FieldReader &reader) {
153
- type = reader.ReadRequired<JSONScanType>();
154
-
155
- options.Deserialize(reader);
156
-
157
- reader_bind = reader.ReadRequiredSerializable<MultiFileReaderBindData, MultiFileReaderBindData>();
158
-
159
- files = reader.ReadRequiredList<string>();
160
- InitializeReaders(context);
161
-
162
- ignore_errors = reader.ReadRequired<bool>();
163
- maximum_object_size = reader.ReadRequired<idx_t>();
164
- auto_detect = reader.ReadRequired<bool>();
165
- sample_size = reader.ReadRequired<idx_t>();
166
- max_depth = reader.ReadRequired<idx_t>();
167
-
168
- transform_options.Deserialize(reader);
169
- names = reader.ReadRequiredList<string>();
170
- date_format = reader.ReadRequired<string>();
171
- timestamp_format = reader.ReadRequired<string>();
172
-
173
- InitializeFormats();
174
- transform_options.date_format_map = &date_format_map;
175
- }
176
-
177
119
  string JSONScanData::GetDateFormat() const {
178
120
  if (!date_format.empty()) {
179
121
  return date_format;
@@ -988,26 +930,17 @@ void JSONScan::ComplexFilterPushdown(ClientContext &context, LogicalGet &get, Fu
988
930
  }
989
931
  }
990
932
 
991
- void JSONScan::Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const TableFunction &) {
992
- auto &bind_data = bind_data_p->Cast<JSONScanData>();
993
- bind_data.Serialize(writer);
994
- }
995
-
996
- unique_ptr<FunctionData> JSONScan::Deserialize(PlanDeserializationState &state, FieldReader &reader, TableFunction &) {
997
- auto result = make_uniq<JSONScanData>();
998
- result->Deserialize(state.context, reader);
999
- return std::move(result);
1000
- }
1001
-
1002
- void JSONScan::FormatSerialize(FormatSerializer &serializer, const optional_ptr<FunctionData> bind_data_p,
1003
- const TableFunction &) {
933
+ void JSONScan::Serialize(Serializer &serializer, const optional_ptr<FunctionData> bind_data_p, const TableFunction &) {
1004
934
  auto &bind_data = bind_data_p->Cast<JSONScanData>();
1005
935
  serializer.WriteProperty(100, "scan_data", &bind_data);
1006
936
  }
1007
937
 
1008
- unique_ptr<FunctionData> JSONScan::FormatDeserialize(FormatDeserializer &deserializer, TableFunction &) {
938
+ unique_ptr<FunctionData> JSONScan::Deserialize(Deserializer &deserializer, TableFunction &) {
1009
939
  unique_ptr<JSONScanData> result;
1010
940
  deserializer.ReadProperty(100, "scan_data", result);
941
+ result->InitializeReaders(deserializer.Get<ClientContext &>());
942
+ result->InitializeFormats();
943
+ result->transform_options.date_format_map = &result->date_format_map;
1011
944
  return std::move(result);
1012
945
  }
1013
946
 
@@ -1025,8 +958,6 @@ void JSONScan::TableFunctionDefaults(TableFunction &table_function) {
1025
958
 
1026
959
  table_function.serialize = Serialize;
1027
960
  table_function.deserialize = Deserialize;
1028
- table_function.format_serialize = FormatSerialize;
1029
- table_function.format_deserialize = FormatDeserialize;
1030
961
 
1031
962
  table_function.projection_pushdown = true;
1032
963
  table_function.filter_pushdown = false;
@@ -3,22 +3,22 @@
3
3
  // Do not edit this file manually, your changes will be overwritten
4
4
  //===----------------------------------------------------------------------===//
5
5
 
6
- #include "duckdb/common/serializer/format_serializer.hpp"
7
- #include "duckdb/common/serializer/format_deserializer.hpp"
6
+ #include "duckdb/common/serializer/serializer.hpp"
7
+ #include "duckdb/common/serializer/deserializer.hpp"
8
8
  #include "buffered_json_reader.hpp"
9
9
  #include "json_transform.hpp"
10
10
  #include "json_scan.hpp"
11
11
 
12
12
  namespace duckdb {
13
13
 
14
- void BufferedJSONReaderOptions::FormatSerialize(FormatSerializer &serializer) const {
14
+ void BufferedJSONReaderOptions::Serialize(Serializer &serializer) const {
15
15
  serializer.WriteProperty(100, "format", format);
16
16
  serializer.WriteProperty(101, "record_type", record_type);
17
17
  serializer.WriteProperty(102, "compression", compression);
18
18
  serializer.WriteProperty(103, "file_options", file_options);
19
19
  }
20
20
 
21
- BufferedJSONReaderOptions BufferedJSONReaderOptions::FormatDeserialize(FormatDeserializer &deserializer) {
21
+ BufferedJSONReaderOptions BufferedJSONReaderOptions::Deserialize(Deserializer &deserializer) {
22
22
  BufferedJSONReaderOptions result;
23
23
  deserializer.ReadProperty(100, "format", result.format);
24
24
  deserializer.ReadProperty(101, "record_type", result.record_type);
@@ -27,7 +27,7 @@ BufferedJSONReaderOptions BufferedJSONReaderOptions::FormatDeserialize(FormatDes
27
27
  return result;
28
28
  }
29
29
 
30
- void JSONScanData::FormatSerialize(FormatSerializer &serializer) const {
30
+ void JSONScanData::Serialize(Serializer &serializer) const {
31
31
  serializer.WriteProperty(100, "json_type", type);
32
32
  serializer.WriteProperty(101, "options", options);
33
33
  serializer.WriteProperty(102, "reader_bind", reader_bind);
@@ -43,7 +43,7 @@ void JSONScanData::FormatSerialize(FormatSerializer &serializer) const {
43
43
  serializer.WriteProperty(112, "timestamp_format", GetTimestampFormat());
44
44
  }
45
45
 
46
- unique_ptr<JSONScanData> JSONScanData::FormatDeserialize(FormatDeserializer &deserializer) {
46
+ unique_ptr<JSONScanData> JSONScanData::Deserialize(Deserializer &deserializer) {
47
47
  auto type = deserializer.ReadProperty<JSONScanType>(100, "json_type");
48
48
  auto options = deserializer.ReadProperty<BufferedJSONReaderOptions>(101, "options");
49
49
  auto reader_bind = deserializer.ReadProperty<MultiFileReaderBindData>(102, "reader_bind");
@@ -71,7 +71,7 @@ unique_ptr<JSONScanData> JSONScanData::FormatDeserialize(FormatDeserializer &des
71
71
  return result;
72
72
  }
73
73
 
74
- void JSONTransformOptions::FormatSerialize(FormatSerializer &serializer) const {
74
+ void JSONTransformOptions::Serialize(Serializer &serializer) const {
75
75
  serializer.WriteProperty(100, "strict_cast", strict_cast);
76
76
  serializer.WriteProperty(101, "error_duplicate_key", error_duplicate_key);
77
77
  serializer.WriteProperty(102, "error_missing_key", error_missing_key);
@@ -79,7 +79,7 @@ void JSONTransformOptions::FormatSerialize(FormatSerializer &serializer) const {
79
79
  serializer.WriteProperty(104, "delay_error", delay_error);
80
80
  }
81
81
 
82
- JSONTransformOptions JSONTransformOptions::FormatDeserialize(FormatDeserializer &deserializer) {
82
+ JSONTransformOptions JSONTransformOptions::Deserialize(Deserializer &deserializer) {
83
83
  JSONTransformOptions result;
84
84
  deserializer.ReadProperty(100, "strict_cast", result.strict_cast);
85
85
  deserializer.ReadProperty(101, "error_duplicate_key", result.error_duplicate_key);