duckdb 1.3.3-dev4.0 → 1.3.3

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.

Potentially problematic release.


This version of duckdb might be problematic. Click here for more details.

Files changed (1369) hide show
  1. package/.github/workflows/NodeJS.yml +20 -8
  2. package/binding.gyp +1 -9
  3. package/lib/binding/duckdb.node +0 -0
  4. package/lib/duckdb.js +2 -0
  5. package/package.json +2 -1
  6. package/src/connection.cpp +1 -1
  7. package/src/duckdb/extension/core_functions/aggregate/algebraic/avg.cpp +0 -4
  8. package/src/duckdb/extension/core_functions/aggregate/distributive/approx_count.cpp +4 -8
  9. package/src/duckdb/extension/core_functions/aggregate/distributive/arg_min_max.cpp +12 -16
  10. package/src/duckdb/extension/core_functions/aggregate/distributive/bitagg.cpp +1 -5
  11. package/src/duckdb/extension/core_functions/aggregate/distributive/bitstring_agg.cpp +1 -5
  12. package/src/duckdb/extension/core_functions/aggregate/distributive/bool.cpp +0 -4
  13. package/src/duckdb/extension/core_functions/aggregate/distributive/kurtosis.cpp +0 -4
  14. package/src/duckdb/extension/core_functions/aggregate/distributive/product.cpp +0 -4
  15. package/src/duckdb/extension/core_functions/aggregate/distributive/skew.cpp +0 -4
  16. package/src/duckdb/extension/core_functions/aggregate/distributive/string_agg.cpp +2 -6
  17. package/src/duckdb/extension/core_functions/aggregate/distributive/sum.cpp +0 -64
  18. package/src/duckdb/extension/core_functions/aggregate/holistic/approx_top_k.cpp +3 -7
  19. package/src/duckdb/extension/core_functions/aggregate/holistic/approximate_quantile.cpp +4 -7
  20. package/src/duckdb/extension/core_functions/aggregate/holistic/mad.cpp +3 -6
  21. package/src/duckdb/extension/core_functions/aggregate/holistic/mode.cpp +1 -8
  22. package/src/duckdb/extension/core_functions/aggregate/holistic/quantile.cpp +46 -7
  23. package/src/duckdb/extension/core_functions/aggregate/holistic/reservoir_quantile.cpp +15 -9
  24. package/src/duckdb/extension/core_functions/aggregate/nested/binned_histogram.cpp +8 -12
  25. package/src/duckdb/extension/core_functions/aggregate/nested/histogram.cpp +5 -7
  26. package/src/duckdb/extension/core_functions/aggregate/nested/list.cpp +24 -14
  27. package/src/duckdb/extension/core_functions/aggregate/regression/regr_avg.cpp +0 -5
  28. package/src/duckdb/extension/core_functions/aggregate/regression/regr_intercept.cpp +0 -3
  29. package/src/duckdb/extension/core_functions/aggregate/regression/regr_r2.cpp +0 -5
  30. package/src/duckdb/extension/core_functions/aggregate/regression/regr_sxx_syy.cpp +0 -3
  31. package/src/duckdb/extension/core_functions/aggregate/regression/regr_sxy.cpp +0 -4
  32. package/src/duckdb/extension/core_functions/core_functions_extension.cpp +18 -6
  33. package/src/duckdb/extension/core_functions/function_list.cpp +3 -6
  34. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/stddev.hpp +1 -1
  35. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic_functions.hpp +2 -2
  36. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/distributive_functions.hpp +4 -4
  37. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/holistic_functions.hpp +1 -1
  38. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_sort_tree.hpp +45 -32
  39. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_state.hpp +1 -1
  40. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression_functions.hpp +8 -8
  41. package/src/duckdb/extension/core_functions/include/core_functions/aggregate/sum_helpers.hpp +1 -1
  42. package/src/duckdb/extension/core_functions/include/core_functions/scalar/array_functions.hpp +22 -22
  43. package/src/duckdb/extension/core_functions/include/core_functions/scalar/blob_functions.hpp +2 -2
  44. package/src/duckdb/extension/core_functions/include/core_functions/scalar/date_functions.hpp +5 -15
  45. package/src/duckdb/extension/core_functions/include/core_functions/scalar/generic_functions.hpp +12 -22
  46. package/src/duckdb/extension/core_functions/include/core_functions/scalar/list_functions.hpp +56 -56
  47. package/src/duckdb/extension/core_functions/include/core_functions/scalar/map_functions.hpp +2 -2
  48. package/src/duckdb/extension/core_functions/include/core_functions/scalar/math_functions.hpp +3 -3
  49. package/src/duckdb/extension/core_functions/include/core_functions/scalar/string_functions.hpp +118 -118
  50. package/src/duckdb/extension/core_functions/include/core_functions/scalar/struct_functions.hpp +0 -10
  51. package/src/duckdb/extension/core_functions/include/core_functions_extension.hpp +1 -1
  52. package/src/duckdb/extension/core_functions/lambda_functions.cpp +4 -4
  53. package/src/duckdb/extension/core_functions/scalar/array/array_functions.cpp +1 -2
  54. package/src/duckdb/extension/core_functions/scalar/array/array_value.cpp +3 -7
  55. package/src/duckdb/extension/core_functions/scalar/bit/bitstring.cpp +0 -7
  56. package/src/duckdb/extension/core_functions/scalar/blob/base64.cpp +2 -5
  57. package/src/duckdb/extension/core_functions/scalar/blob/encode.cpp +2 -6
  58. package/src/duckdb/extension/core_functions/scalar/date/date_diff.cpp +3 -7
  59. package/src/duckdb/extension/core_functions/scalar/date/date_part.cpp +33 -187
  60. package/src/duckdb/extension/core_functions/scalar/date/date_sub.cpp +3 -7
  61. package/src/duckdb/extension/core_functions/scalar/date/date_trunc.cpp +8 -12
  62. package/src/duckdb/extension/core_functions/scalar/date/epoch.cpp +12 -16
  63. package/src/duckdb/extension/core_functions/scalar/date/make_date.cpp +7 -11
  64. package/src/duckdb/extension/core_functions/scalar/date/time_bucket.cpp +3 -7
  65. package/src/duckdb/extension/core_functions/scalar/date/to_interval.cpp +0 -4
  66. package/src/duckdb/extension/core_functions/scalar/enum/enum_functions.cpp +6 -6
  67. package/src/duckdb/extension/core_functions/scalar/generic/binning.cpp +4 -8
  68. package/src/duckdb/extension/core_functions/scalar/generic/can_implicitly_cast.cpp +2 -6
  69. package/src/duckdb/extension/core_functions/scalar/generic/cast_to_type.cpp +1 -4
  70. package/src/duckdb/extension/core_functions/scalar/generic/current_setting.cpp +3 -9
  71. package/src/duckdb/extension/core_functions/scalar/generic/least.cpp +2 -5
  72. package/src/duckdb/extension/core_functions/scalar/generic/stats.cpp +2 -5
  73. package/src/duckdb/extension/core_functions/scalar/generic/system_functions.cpp +9 -13
  74. package/src/duckdb/extension/core_functions/scalar/generic/typeof.cpp +1 -5
  75. package/src/duckdb/extension/core_functions/scalar/list/array_slice.cpp +26 -29
  76. package/src/duckdb/extension/core_functions/scalar/list/flatten.cpp +49 -9
  77. package/src/duckdb/extension/core_functions/scalar/list/list_aggregates.cpp +34 -17
  78. package/src/duckdb/extension/core_functions/scalar/list/list_has_any_or_all.cpp +50 -4
  79. package/src/duckdb/extension/core_functions/scalar/list/list_reduce.cpp +42 -46
  80. package/src/duckdb/extension/core_functions/scalar/list/list_sort.cpp +51 -48
  81. package/src/duckdb/extension/core_functions/scalar/list/list_value.cpp +144 -224
  82. package/src/duckdb/extension/core_functions/scalar/list/range.cpp +1 -5
  83. package/src/duckdb/extension/core_functions/scalar/map/map.cpp +41 -13
  84. package/src/duckdb/extension/core_functions/scalar/map/map_concat.cpp +6 -6
  85. package/src/duckdb/extension/core_functions/scalar/map/map_entries.cpp +42 -6
  86. package/src/duckdb/extension/core_functions/scalar/map/map_extract.cpp +59 -10
  87. package/src/duckdb/extension/core_functions/scalar/map/map_from_entries.cpp +32 -7
  88. package/src/duckdb/extension/core_functions/scalar/map/map_keys_values.cpp +45 -10
  89. package/src/duckdb/extension/core_functions/scalar/math/numeric.cpp +139 -364
  90. package/src/duckdb/extension/core_functions/scalar/operators/bitwise.cpp +7 -29
  91. package/src/duckdb/extension/core_functions/scalar/random/random.cpp +14 -18
  92. package/src/duckdb/extension/core_functions/scalar/random/setseed.cpp +1 -5
  93. package/src/duckdb/extension/core_functions/scalar/string/hex.cpp +2 -2
  94. package/src/duckdb/extension/core_functions/scalar/string/instr.cpp +3 -5
  95. package/src/duckdb/extension/core_functions/scalar/string/printf.cpp +0 -16
  96. package/src/duckdb/extension/core_functions/scalar/string/repeat.cpp +17 -2
  97. package/src/duckdb/extension/core_functions/scalar/struct/struct_insert.cpp +1 -1
  98. package/src/duckdb/extension/core_functions/scalar/union/union_extract.cpp +3 -7
  99. package/src/duckdb/extension/core_functions/scalar/union/union_tag.cpp +3 -7
  100. package/src/duckdb/extension/core_functions/scalar/union/union_value.cpp +3 -7
  101. package/src/duckdb/extension/icu/icu-current.cpp +5 -5
  102. package/src/duckdb/extension/icu/icu-dateadd.cpp +11 -11
  103. package/src/duckdb/extension/icu/icu-datepart.cpp +44 -44
  104. package/src/duckdb/extension/icu/icu-datesub.cpp +10 -10
  105. package/src/duckdb/extension/icu/icu-datetrunc.cpp +6 -6
  106. package/src/duckdb/extension/icu/icu-list-range.cpp +6 -7
  107. package/src/duckdb/extension/icu/icu-makedate.cpp +11 -8
  108. package/src/duckdb/extension/icu/icu-strptime.cpp +29 -23
  109. package/src/duckdb/extension/icu/icu-table-range.cpp +6 -8
  110. package/src/duckdb/extension/icu/icu-timebucket.cpp +5 -5
  111. package/src/duckdb/extension/icu/icu-timezone.cpp +30 -24
  112. package/src/duckdb/extension/icu/icu_extension.cpp +34 -22
  113. package/src/duckdb/extension/icu/include/icu-casts.hpp +2 -2
  114. package/src/duckdb/extension/icu/include/icu-current.hpp +3 -3
  115. package/src/duckdb/extension/icu/include/icu-dateadd.hpp +3 -3
  116. package/src/duckdb/extension/icu/include/icu-datepart.hpp +3 -3
  117. package/src/duckdb/extension/icu/include/icu-datesub.hpp +3 -3
  118. package/src/duckdb/extension/icu/include/icu-datetrunc.hpp +3 -3
  119. package/src/duckdb/extension/icu/include/icu-list-range.hpp +3 -3
  120. package/src/duckdb/extension/icu/include/icu-makedate.hpp +3 -3
  121. package/src/duckdb/extension/icu/include/icu-strptime.hpp +3 -3
  122. package/src/duckdb/extension/icu/include/icu-table-range.hpp +3 -3
  123. package/src/duckdb/extension/icu/include/icu-timebucket.hpp +3 -3
  124. package/src/duckdb/extension/icu/include/icu-timezone.hpp +3 -3
  125. package/src/duckdb/extension/icu/include/icu_extension.hpp +1 -1
  126. package/src/duckdb/extension/json/include/json_common.hpp +2 -10
  127. package/src/duckdb/extension/json/include/json_enums.hpp +1 -3
  128. package/src/duckdb/extension/json/include/json_extension.hpp +1 -1
  129. package/src/duckdb/extension/json/include/json_functions.hpp +4 -4
  130. package/src/duckdb/extension/json/include/json_multi_file_info.hpp +2 -2
  131. package/src/duckdb/extension/json/include/json_reader.hpp +1 -3
  132. package/src/duckdb/extension/json/json_enums.cpp +0 -5
  133. package/src/duckdb/extension/json/json_extension.cpp +38 -27
  134. package/src/duckdb/extension/json/json_functions/copy_json.cpp +3 -8
  135. package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -9
  136. package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +20 -3
  137. package/src/duckdb/extension/json/json_functions/json_pretty.cpp +3 -3
  138. package/src/duckdb/extension/json/json_functions/json_serialize_plan.cpp +4 -6
  139. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +4 -6
  140. package/src/duckdb/extension/json/json_functions/json_table_in_out.cpp +2 -6
  141. package/src/duckdb/extension/json/json_functions/json_transform.cpp +3 -5
  142. package/src/duckdb/extension/json/json_functions/read_json.cpp +3 -4
  143. package/src/duckdb/extension/json/json_functions.cpp +8 -135
  144. package/src/duckdb/extension/json/json_multi_file_info.cpp +2 -5
  145. package/src/duckdb/extension/json/json_reader.cpp +6 -7
  146. package/src/duckdb/extension/parquet/column_reader.cpp +21 -46
  147. package/src/duckdb/extension/parquet/column_writer.cpp +105 -16
  148. package/src/duckdb/extension/parquet/geo_parquet.cpp +171 -231
  149. package/src/duckdb/extension/parquet/include/column_reader.hpp +2 -0
  150. package/src/duckdb/extension/parquet/include/column_writer.hpp +1 -2
  151. package/src/duckdb/extension/parquet/include/geo_parquet.hpp +66 -160
  152. package/src/duckdb/extension/parquet/include/parquet_column_schema.hpp +4 -6
  153. package/src/duckdb/extension/parquet/include/parquet_crypto.hpp +3 -0
  154. package/src/duckdb/extension/parquet/include/parquet_extension.hpp +1 -1
  155. package/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp +2 -5
  156. package/src/duckdb/extension/parquet/include/parquet_multi_file_info.hpp +2 -2
  157. package/src/duckdb/extension/parquet/include/parquet_reader.hpp +2 -10
  158. package/src/duckdb/extension/parquet/include/parquet_rle_bp_encoder.hpp +0 -3
  159. package/src/duckdb/extension/parquet/include/parquet_statistics.hpp +2 -0
  160. package/src/duckdb/extension/parquet/include/parquet_timestamp.hpp +6 -10
  161. package/src/duckdb/extension/parquet/include/parquet_writer.hpp +3 -4
  162. package/src/duckdb/extension/parquet/include/reader/row_number_column_reader.hpp +2 -0
  163. package/src/duckdb/extension/parquet/include/reader/uuid_column_reader.hpp +13 -3
  164. package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +2 -0
  165. package/src/duckdb/extension/parquet/include/thrift_tools.hpp +3 -3
  166. package/src/duckdb/extension/parquet/include/writer/array_column_writer.hpp +1 -2
  167. package/src/duckdb/extension/parquet/include/writer/list_column_writer.hpp +1 -2
  168. package/src/duckdb/extension/parquet/include/writer/parquet_write_operators.hpp +10 -47
  169. package/src/duckdb/extension/parquet/include/writer/parquet_write_stats.hpp +1 -55
  170. package/src/duckdb/extension/parquet/include/writer/primitive_column_writer.hpp +3 -4
  171. package/src/duckdb/extension/parquet/include/writer/struct_column_writer.hpp +1 -2
  172. package/src/duckdb/extension/parquet/include/writer/templated_column_writer.hpp +3 -6
  173. package/src/duckdb/extension/parquet/include/zstd_file_system.hpp +3 -1
  174. package/src/duckdb/extension/parquet/parquet_crypto.cpp +11 -11
  175. package/src/duckdb/extension/parquet/parquet_extension.cpp +68 -84
  176. package/src/duckdb/extension/parquet/parquet_file_metadata_cache.cpp +4 -4
  177. package/src/duckdb/extension/parquet/parquet_float16.cpp +3 -0
  178. package/src/duckdb/extension/parquet/parquet_metadata.cpp +17 -115
  179. package/src/duckdb/extension/parquet/parquet_multi_file_info.cpp +10 -25
  180. package/src/duckdb/extension/parquet/parquet_reader.cpp +56 -181
  181. package/src/duckdb/extension/parquet/parquet_statistics.cpp +8 -26
  182. package/src/duckdb/extension/parquet/parquet_timestamp.cpp +4 -14
  183. package/src/duckdb/extension/parquet/parquet_writer.cpp +16 -117
  184. package/src/duckdb/extension/parquet/reader/decimal_column_reader.cpp +1 -1
  185. package/src/duckdb/extension/parquet/writer/array_column_writer.cpp +2 -5
  186. package/src/duckdb/extension/parquet/writer/enum_column_writer.cpp +1 -1
  187. package/src/duckdb/extension/parquet/writer/list_column_writer.cpp +3 -6
  188. package/src/duckdb/extension/parquet/writer/primitive_column_writer.cpp +8 -24
  189. package/src/duckdb/extension/parquet/writer/struct_column_writer.cpp +2 -4
  190. package/src/duckdb/extension/parquet/zstd_file_system.cpp +6 -7
  191. package/src/duckdb/src/catalog/catalog.cpp +62 -92
  192. package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +8 -8
  193. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +8 -14
  194. package/src/duckdb/src/catalog/catalog_set.cpp +0 -1
  195. package/src/duckdb/src/catalog/default/default_functions.cpp +4 -4
  196. package/src/duckdb/src/catalog/default/default_table_functions.cpp +4 -5
  197. package/src/duckdb/src/catalog/default/default_views.cpp +1 -1
  198. package/src/duckdb/src/catalog/duck_catalog.cpp +0 -28
  199. package/src/duckdb/src/common/adbc/adbc.cpp +125 -243
  200. package/src/duckdb/src/common/adbc/driver_manager.cpp +3 -3
  201. package/src/duckdb/src/common/arrow/appender/bool_data.cpp +7 -6
  202. package/src/duckdb/src/common/arrow/appender/fixed_size_list_data.cpp +1 -1
  203. package/src/duckdb/src/common/arrow/appender/struct_data.cpp +1 -1
  204. package/src/duckdb/src/common/arrow/appender/union_data.cpp +1 -0
  205. package/src/duckdb/src/common/arrow/arrow_appender.cpp +17 -13
  206. package/src/duckdb/src/common/arrow/arrow_converter.cpp +6 -14
  207. package/src/duckdb/src/common/arrow/arrow_type_extension.cpp +6 -6
  208. package/src/duckdb/src/common/arrow/physical_arrow_collector.cpp +10 -16
  209. package/src/duckdb/src/common/arrow/schema_metadata.cpp +2 -2
  210. package/src/duckdb/src/common/box_renderer.cpp +32 -83
  211. package/src/duckdb/src/common/complex_json.cpp +5 -20
  212. package/src/duckdb/src/common/compressed_file_system.cpp +5 -6
  213. package/src/duckdb/src/common/encryption_state.cpp +9 -56
  214. package/src/duckdb/src/common/enum_util.cpp +51 -405
  215. package/src/duckdb/src/common/enums/expression_type.cpp +0 -2
  216. package/src/duckdb/src/common/enums/logical_operator_type.cpp +0 -2
  217. package/src/duckdb/src/common/enums/metric_type.cpp +0 -6
  218. package/src/duckdb/src/common/enums/optimizer_type.cpp +0 -1
  219. package/src/duckdb/src/common/enums/physical_operator_type.cpp +0 -2
  220. package/src/duckdb/src/common/enums/statement_type.cpp +0 -2
  221. package/src/duckdb/src/common/error_data.cpp +0 -11
  222. package/src/duckdb/src/common/exception_format_value.cpp +1 -15
  223. package/src/duckdb/src/common/extra_type_info.cpp +0 -43
  224. package/src/duckdb/src/common/file_buffer.cpp +8 -11
  225. package/src/duckdb/src/common/file_system.cpp +12 -82
  226. package/src/duckdb/src/common/gzip_file_system.cpp +11 -13
  227. package/src/duckdb/src/common/local_file_system.cpp +16 -25
  228. package/src/duckdb/src/common/multi_file/base_file_reader.cpp +0 -4
  229. package/src/duckdb/src/common/multi_file/multi_file_column_mapper.cpp +11 -7
  230. package/src/duckdb/src/common/multi_file/multi_file_function.cpp +0 -8
  231. package/src/duckdb/src/common/multi_file/multi_file_list.cpp +4 -8
  232. package/src/duckdb/src/common/multi_file/multi_file_reader.cpp +5 -9
  233. package/src/duckdb/src/common/operator/cast_operators.cpp +6 -147
  234. package/src/duckdb/src/common/operator/string_cast.cpp +12 -41
  235. package/src/duckdb/src/common/pipe_file_system.cpp +5 -10
  236. package/src/duckdb/src/common/progress_bar/progress_bar.cpp +2 -2
  237. package/src/duckdb/src/common/progress_bar/terminal_progress_bar_display.cpp +7 -81
  238. package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
  239. package/src/duckdb/src/common/row_operations/row_aggregate.cpp +11 -8
  240. package/src/duckdb/src/common/row_operations/row_external.cpp +7 -0
  241. package/src/duckdb/src/common/row_operations/row_gather.cpp +5 -0
  242. package/src/duckdb/src/common/row_operations/row_matcher.cpp +37 -55
  243. package/src/duckdb/src/common/row_operations/row_scatter.cpp +6 -0
  244. package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +0 -4
  245. package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +0 -4
  246. package/src/duckdb/src/common/serializer/memory_stream.cpp +0 -4
  247. package/src/duckdb/src/common/sort/partition_state.cpp +3 -3
  248. package/src/duckdb/src/common/string_util.cpp +44 -64
  249. package/src/duckdb/src/common/tree_renderer/text_tree_renderer.cpp +3 -40
  250. package/src/duckdb/src/common/tree_renderer.cpp +0 -3
  251. package/src/duckdb/src/common/types/column/column_data_allocator.cpp +29 -27
  252. package/src/duckdb/src/common/types/column/column_data_collection.cpp +68 -216
  253. package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +2 -3
  254. package/src/duckdb/src/common/types/conflict_info.cpp +2 -1
  255. package/src/duckdb/src/common/types/conflict_manager.cpp +207 -82
  256. package/src/duckdb/src/common/types/data_chunk.cpp +3 -10
  257. package/src/duckdb/src/common/types/date.cpp +10 -8
  258. package/src/duckdb/src/common/types/hash.cpp +7 -7
  259. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +29 -38
  260. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +54 -272
  261. package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +45 -156
  262. package/src/duckdb/src/common/types/row/tuple_data_iterator.cpp +5 -5
  263. package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +18 -122
  264. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +83 -466
  265. package/src/duckdb/src/common/types/row/tuple_data_segment.cpp +28 -8
  266. package/src/duckdb/src/common/types/time.cpp +2 -2
  267. package/src/duckdb/src/common/types/timestamp.cpp +14 -26
  268. package/src/duckdb/src/common/types/uuid.cpp +2 -33
  269. package/src/duckdb/src/common/types/value.cpp +16 -79
  270. package/src/duckdb/src/common/types/vector.cpp +22 -190
  271. package/src/duckdb/src/common/types/vector_buffer.cpp +0 -4
  272. package/src/duckdb/src/common/types/vector_cache.cpp +0 -4
  273. package/src/duckdb/src/common/types.cpp +22 -110
  274. package/src/duckdb/src/common/value_operations/comparison_operations.cpp +27 -24
  275. package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +9 -12
  276. package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +4 -5
  277. package/src/duckdb/src/common/vector_operations/generators.cpp +1 -1
  278. package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +135 -70
  279. package/src/duckdb/src/common/vector_operations/null_operations.cpp +1 -1
  280. package/src/duckdb/src/common/vector_operations/vector_copy.cpp +2 -5
  281. package/src/duckdb/src/common/vector_operations/vector_hash.cpp +55 -110
  282. package/src/duckdb/src/common/vector_operations/vector_storage.cpp +10 -14
  283. package/src/duckdb/src/common/virtual_file_system.cpp +3 -12
  284. package/src/duckdb/src/execution/aggregate_hashtable.cpp +50 -88
  285. package/src/duckdb/src/execution/column_binding_resolver.cpp +6 -7
  286. package/src/duckdb/src/execution/expression_executor/execute_function.cpp +2 -113
  287. package/src/duckdb/src/execution/expression_executor.cpp +4 -44
  288. package/src/duckdb/src/execution/index/art/art.cpp +216 -78
  289. package/src/duckdb/src/execution/index/art/art_key.cpp +23 -0
  290. package/src/duckdb/src/execution/index/art/art_merger.cpp +4 -3
  291. package/src/duckdb/src/execution/index/art/base_leaf.cpp +11 -10
  292. package/src/duckdb/src/execution/index/art/base_node.cpp +75 -103
  293. package/src/duckdb/src/execution/index/art/iterator.cpp +3 -3
  294. package/src/duckdb/src/execution/index/art/leaf.cpp +11 -9
  295. package/src/duckdb/src/execution/index/art/node.cpp +53 -54
  296. package/src/duckdb/src/execution/index/art/node256.cpp +56 -30
  297. package/src/duckdb/src/execution/index/art/node256_leaf.cpp +30 -43
  298. package/src/duckdb/src/execution/index/art/node48.cpp +101 -69
  299. package/src/duckdb/src/execution/index/art/plan_art.cpp +1 -2
  300. package/src/duckdb/src/execution/index/art/prefix.cpp +125 -115
  301. package/src/duckdb/src/execution/index/bound_index.cpp +10 -39
  302. package/src/duckdb/src/execution/index/fixed_size_allocator.cpp +8 -23
  303. package/src/duckdb/src/execution/index/fixed_size_buffer.cpp +23 -35
  304. package/src/duckdb/src/execution/index/unbound_index.cpp +6 -26
  305. package/src/duckdb/src/execution/join_hashtable.cpp +55 -52
  306. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +0 -3
  307. package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +4 -6
  308. package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +18 -27
  309. package/src/duckdb/src/execution/operator/aggregate/physical_partitioned_aggregate.cpp +2 -4
  310. package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +2 -4
  311. package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -8
  312. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -6
  313. package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +387 -433
  314. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +4 -5
  315. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +4 -12
  316. package/src/duckdb/src/execution/operator/csv_scanner/encode/csv_encoder.cpp +7 -8
  317. package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +5 -7
  318. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +2 -15
  319. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +1 -1
  320. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +4 -4
  321. package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_multi_file_info.cpp +3 -12
  322. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +2 -7
  323. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +0 -4
  324. package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +12 -14
  325. package/src/duckdb/src/execution/operator/helper/physical_batch_collector.cpp +1 -2
  326. package/src/duckdb/src/execution/operator/helper/physical_buffered_batch_collector.cpp +2 -2
  327. package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +2 -3
  328. package/src/duckdb/src/execution/operator/helper/physical_execute.cpp +2 -2
  329. package/src/duckdb/src/execution/operator/helper/physical_limit.cpp +3 -3
  330. package/src/duckdb/src/execution/operator/helper/physical_limit_percent.cpp +3 -4
  331. package/src/duckdb/src/execution/operator/helper/physical_materialized_collector.cpp +2 -3
  332. package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +9 -29
  333. package/src/duckdb/src/execution/operator/helper/physical_result_collector.cpp +20 -23
  334. package/src/duckdb/src/execution/operator/helper/physical_set.cpp +11 -28
  335. package/src/duckdb/src/execution/operator/helper/physical_set_variable.cpp +2 -3
  336. package/src/duckdb/src/execution/operator/helper/physical_streaming_limit.cpp +3 -4
  337. package/src/duckdb/src/execution/operator/helper/physical_streaming_sample.cpp +3 -3
  338. package/src/duckdb/src/execution/operator/helper/physical_transaction.cpp +4 -4
  339. package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +3 -7
  340. package/src/duckdb/src/execution/operator/helper/physical_verify_vector.cpp +2 -4
  341. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +10 -11
  342. package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +2 -3
  343. package/src/duckdb/src/execution/operator/join/physical_comparison_join.cpp +4 -4
  344. package/src/duckdb/src/execution/operator/join/physical_cross_product.cpp +3 -4
  345. package/src/duckdb/src/execution/operator/join/physical_delim_join.cpp +2 -2
  346. package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +8 -13
  347. package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +14 -15
  348. package/src/duckdb/src/execution/operator/join/physical_join.cpp +3 -3
  349. package/src/duckdb/src/execution/operator/join/physical_left_delim_join.cpp +4 -5
  350. package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +7 -7
  351. package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +21 -20
  352. package/src/duckdb/src/execution/operator/join/physical_positional_join.cpp +3 -4
  353. package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +6 -18
  354. package/src/duckdb/src/execution/operator/join/physical_right_delim_join.cpp +4 -5
  355. package/src/duckdb/src/execution/operator/order/physical_order.cpp +203 -62
  356. package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +4 -5
  357. package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +3 -5
  358. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +7 -9
  359. package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +5 -7
  360. package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +7 -12
  361. package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +5 -34
  362. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +20 -6
  363. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +74 -91
  364. package/src/duckdb/src/execution/operator/persistent/physical_update.cpp +9 -11
  365. package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +4 -7
  366. package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +36 -3
  367. package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +4 -26
  368. package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -5
  369. package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +7 -9
  370. package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +3 -3
  371. package/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +5 -6
  372. package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +9 -11
  373. package/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp +4 -5
  374. package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +3 -3
  375. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +2 -3
  376. package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +2 -3
  377. package/src/duckdb/src/execution/operator/set/physical_cte.cpp +4 -5
  378. package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +3 -5
  379. package/src/duckdb/src/execution/operator/set/physical_union.cpp +3 -3
  380. package/src/duckdb/src/execution/physical_operator.cpp +32 -42
  381. package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +12 -24
  382. package/src/duckdb/src/execution/physical_plan/plan_asof_join.cpp +3 -5
  383. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +18 -12
  384. package/src/duckdb/src/execution/physical_plan/plan_get.cpp +1 -3
  385. package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +10 -11
  386. package/src/duckdb/src/execution/physical_plan/plan_recursive_cte.cpp +18 -16
  387. package/src/duckdb/src/execution/physical_plan_generator.cpp +5 -8
  388. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +27 -16
  389. package/src/duckdb/src/execution/sample/base_reservoir_sample.cpp +22 -22
  390. package/src/duckdb/src/function/aggregate/distributive/count.cpp +11 -14
  391. package/src/duckdb/src/function/aggregate/distributive/first_last_any.cpp +19 -23
  392. package/src/duckdb/src/function/aggregate/distributive/minmax.cpp +7 -14
  393. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +234 -185
  394. package/src/duckdb/src/function/cast/blob_cast.cpp +0 -3
  395. package/src/duckdb/src/function/cast/cast_function_set.cpp +4 -24
  396. package/src/duckdb/src/function/cast/decimal_cast.cpp +3 -3
  397. package/src/duckdb/src/function/cast/default_casts.cpp +4 -12
  398. package/src/duckdb/src/function/cast/enum_casts.cpp +3 -4
  399. package/src/duckdb/src/function/cast/numeric_casts.cpp +3 -3
  400. package/src/duckdb/src/function/cast/string_cast.cpp +11 -14
  401. package/src/duckdb/src/function/cast/struct_cast.cpp +2 -127
  402. package/src/duckdb/src/function/cast/time_casts.cpp +0 -18
  403. package/src/duckdb/src/function/cast/union_casts.cpp +6 -7
  404. package/src/duckdb/src/function/cast/uuid_casts.cpp +0 -3
  405. package/src/duckdb/src/function/cast_rules.cpp +4 -38
  406. package/src/duckdb/src/function/copy_function.cpp +0 -15
  407. package/src/duckdb/src/function/function.cpp +0 -2
  408. package/src/duckdb/src/function/function_binder.cpp +13 -239
  409. package/src/duckdb/src/function/function_list.cpp +0 -8
  410. package/src/duckdb/src/function/macro_function.cpp +70 -263
  411. package/src/duckdb/src/function/pragma/pragma_functions.cpp +38 -6
  412. package/src/duckdb/src/function/pragma/pragma_queries.cpp +22 -37
  413. package/src/duckdb/src/function/register_function_list.cpp +5 -5
  414. package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +34 -43
  415. package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +38 -61
  416. package/src/duckdb/src/function/scalar/create_sort_key.cpp +154 -374
  417. package/src/duckdb/src/function/scalar/date/strftime.cpp +28 -31
  418. package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +14 -18
  419. package/src/duckdb/src/function/scalar/generic/error.cpp +7 -18
  420. package/src/duckdb/src/function/scalar/generic/getvariable.cpp +2 -5
  421. package/src/duckdb/src/function/scalar/list/contains_or_position.cpp +52 -4
  422. package/src/duckdb/src/function/scalar/list/list_extract.cpp +12 -5
  423. package/src/duckdb/src/function/scalar/list/list_resize.cpp +1 -1
  424. package/src/duckdb/src/function/scalar/list/list_select.cpp +27 -11
  425. package/src/duckdb/src/function/scalar/map/map_contains.cpp +31 -5
  426. package/src/duckdb/src/function/scalar/operator/add.cpp +1 -6
  427. package/src/duckdb/src/function/scalar/operator/arithmetic.cpp +10 -130
  428. package/src/duckdb/src/function/scalar/operator/multiply.cpp +2 -4
  429. package/src/duckdb/src/function/scalar/operator/subtract.cpp +1 -3
  430. package/src/duckdb/src/function/scalar/sequence/nextval.cpp +3 -7
  431. package/src/duckdb/src/function/scalar/strftime_format.cpp +2 -2
  432. package/src/duckdb/src/function/scalar/string/caseconvert.cpp +0 -4
  433. package/src/duckdb/src/function/scalar/string/concat.cpp +19 -18
  434. package/src/duckdb/src/function/scalar/string/contains.cpp +7 -14
  435. package/src/duckdb/src/function/scalar/string/length.cpp +9 -13
  436. package/src/duckdb/src/function/scalar/string/like.cpp +143 -146
  437. package/src/duckdb/src/function/scalar/string/md5.cpp +2 -6
  438. package/src/duckdb/src/function/scalar/string/nfc_normalize.cpp +1 -5
  439. package/src/duckdb/src/function/scalar/string/prefix.cpp +8 -11
  440. package/src/duckdb/src/function/scalar/string/regexp_escape.cpp +1 -5
  441. package/src/duckdb/src/function/scalar/string/sha1.cpp +1 -5
  442. package/src/duckdb/src/function/scalar/string/sha256.cpp +1 -5
  443. package/src/duckdb/src/function/scalar/string/string_split.cpp +3 -7
  444. package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -5
  445. package/src/duckdb/src/function/scalar/string/substring.cpp +6 -10
  446. package/src/duckdb/src/function/scalar/string/suffix.cpp +8 -10
  447. package/src/duckdb/src/function/scalar/struct/remap_struct.cpp +17 -20
  448. package/src/duckdb/src/function/scalar/struct/struct_concat.cpp +1 -1
  449. package/src/duckdb/src/function/scalar/struct/struct_pack.cpp +2 -2
  450. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +31 -34
  451. package/src/duckdb/src/function/scalar/system/current_connection_id.cpp +1 -5
  452. package/src/duckdb/src/function/scalar/system/current_query_id.cpp +1 -5
  453. package/src/duckdb/src/function/scalar/system/current_transaction_id.cpp +1 -5
  454. package/src/duckdb/src/function/scalar/system/parse_log_message.cpp +1 -5
  455. package/src/duckdb/src/function/scalar/system/write_log.cpp +13 -11
  456. package/src/duckdb/src/function/scalar_macro_function.cpp +11 -8
  457. package/src/duckdb/src/function/table/arrow/arrow_array_scan_state.cpp +3 -2
  458. package/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp +2 -27
  459. package/src/duckdb/src/function/table/arrow.cpp +17 -37
  460. package/src/duckdb/src/function/table/arrow_conversion.cpp +236 -186
  461. package/src/duckdb/src/function/table/copy_csv.cpp +245 -76
  462. package/src/duckdb/src/function/table/read_file.cpp +220 -90
  463. package/src/duckdb/src/function/table/sniff_csv.cpp +1 -0
  464. package/src/duckdb/src/function/table/system/duckdb_columns.cpp +2 -2
  465. package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +7 -3
  466. package/src/duckdb/src/function/table/system/duckdb_databases.cpp +5 -20
  467. package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +5 -10
  468. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +22 -6
  469. package/src/duckdb/src/function/table/system/duckdb_log.cpp +5 -41
  470. package/src/duckdb/src/function/table/system/duckdb_log_contexts.cpp +6 -15
  471. package/src/duckdb/src/function/table/system/duckdb_settings.cpp +6 -29
  472. package/src/duckdb/src/function/table/system/duckdb_types.cpp +0 -4
  473. package/src/duckdb/src/function/table/system/pragma_database_size.cpp +2 -2
  474. package/src/duckdb/src/function/table/system/test_all_types.cpp +6 -30
  475. package/src/duckdb/src/function/table/system_functions.cpp +0 -2
  476. package/src/duckdb/src/function/table/table_scan.cpp +48 -82
  477. package/src/duckdb/src/function/table/version/pragma_version.cpp +4 -7
  478. package/src/duckdb/src/function/window/window_aggregate_function.cpp +46 -56
  479. package/src/duckdb/src/function/window/window_aggregator.cpp +19 -33
  480. package/src/duckdb/src/function/window/window_boundaries_state.cpp +2 -12
  481. package/src/duckdb/src/function/window/window_collection.cpp +0 -30
  482. package/src/duckdb/src/function/window/window_constant_aggregator.cpp +24 -32
  483. package/src/duckdb/src/function/window/window_custom_aggregator.cpp +40 -54
  484. package/src/duckdb/src/function/window/window_distinct_aggregator.cpp +251 -200
  485. package/src/duckdb/src/function/window/window_executor.cpp +36 -44
  486. package/src/duckdb/src/function/window/window_index_tree.cpp +16 -26
  487. package/src/duckdb/src/function/window/window_merge_sort_tree.cpp +151 -98
  488. package/src/duckdb/src/function/window/window_naive_aggregator.cpp +72 -94
  489. package/src/duckdb/src/function/window/window_rank_function.cpp +63 -57
  490. package/src/duckdb/src/function/window/window_rownumber_function.cpp +47 -45
  491. package/src/duckdb/src/function/window/window_segment_tree.cpp +22 -28
  492. package/src/duckdb/src/function/window/window_token_tree.cpp +41 -46
  493. package/src/duckdb/src/function/window/window_value_function.cpp +93 -632
  494. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +5 -24
  495. package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +2 -5
  496. package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +0 -16
  497. package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +1 -68
  498. package/src/duckdb/src/include/duckdb/common/allocator.hpp +0 -3
  499. package/src/duckdb/src/include/duckdb/common/arrow/appender/append_data.hpp +55 -31
  500. package/src/duckdb/src/include/duckdb/common/arrow/appender/enum_data.hpp +1 -1
  501. package/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp +1 -1
  502. package/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp +1 -1
  503. package/src/duckdb/src/include/duckdb/common/arrow/appender/map_data.hpp +1 -1
  504. package/src/duckdb/src/include/duckdb/common/arrow/appender/scalar_data.hpp +1 -1
  505. package/src/duckdb/src/include/duckdb/common/arrow/appender/varchar_data.hpp +6 -6
  506. package/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp +0 -10
  507. package/src/duckdb/src/include/duckdb/common/arrow/physical_arrow_batch_collector.hpp +2 -2
  508. package/src/duckdb/src/include/duckdb/common/arrow/physical_arrow_collector.hpp +4 -3
  509. package/src/duckdb/src/include/duckdb/common/box_renderer.hpp +4 -4
  510. package/src/duckdb/src/include/duckdb/common/chrono.hpp +0 -1
  511. package/src/duckdb/src/include/duckdb/common/complex_json.hpp +4 -15
  512. package/src/duckdb/src/include/duckdb/common/compressed_file_system.hpp +2 -2
  513. package/src/duckdb/src/include/duckdb/common/encryption_state.hpp +9 -25
  514. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +0 -120
  515. package/src/duckdb/src/include/duckdb/common/enums/checkpoint_type.hpp +1 -3
  516. package/src/duckdb/src/include/duckdb/common/enums/debug_vector_verification.hpp +1 -2
  517. package/src/duckdb/src/include/duckdb/common/enums/explain_format.hpp +1 -1
  518. package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +0 -1
  519. package/src/duckdb/src/include/duckdb/common/enums/file_glob_options.hpp +3 -11
  520. package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +0 -1
  521. package/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +0 -3
  522. package/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp +1 -2
  523. package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +0 -1
  524. package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +0 -1
  525. package/src/duckdb/src/include/duckdb/common/enums/tableref_type.hpp +1 -2
  526. package/src/duckdb/src/include/duckdb/common/enums/undo_flags.hpp +1 -2
  527. package/src/duckdb/src/include/duckdb/common/error_data.hpp +2 -4
  528. package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +1 -9
  529. package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +1 -25
  530. package/src/duckdb/src/include/duckdb/common/file_buffer.hpp +6 -15
  531. package/src/duckdb/src/include/duckdb/common/file_open_flags.hpp +0 -14
  532. package/src/duckdb/src/include/duckdb/common/file_opener.hpp +1 -2
  533. package/src/duckdb/src/include/duckdb/common/file_system.hpp +6 -14
  534. package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
  535. package/src/duckdb/src/include/duckdb/common/gzip_file_system.hpp +1 -1
  536. package/src/duckdb/src/include/duckdb/common/helper.hpp +3 -21
  537. package/src/duckdb/src/include/duckdb/common/local_file_system.hpp +1 -1
  538. package/src/duckdb/src/include/duckdb/common/multi_file/base_file_reader.hpp +0 -4
  539. package/src/duckdb/src/include/duckdb/common/multi_file/multi_file_function.hpp +14 -43
  540. package/src/duckdb/src/include/duckdb/common/multi_file/multi_file_list.hpp +3 -4
  541. package/src/duckdb/src/include/duckdb/common/multi_file/multi_file_reader.hpp +3 -10
  542. package/src/duckdb/src/include/duckdb/common/multi_file/multi_file_states.hpp +0 -2
  543. package/src/duckdb/src/include/duckdb/common/numeric_utils.hpp +0 -57
  544. package/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +3 -7
  545. package/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp +0 -84
  546. package/src/duckdb/src/include/duckdb/common/operator/string_cast.hpp +0 -6
  547. package/src/duckdb/src/include/duckdb/common/optionally_owned_ptr.hpp +2 -18
  548. package/src/duckdb/src/include/duckdb/common/owning_string_map.hpp +0 -8
  549. package/src/duckdb/src/include/duckdb/common/pipe_file_system.hpp +1 -1
  550. package/src/duckdb/src/include/duckdb/common/progress_bar/display/terminal_progress_bar_display.hpp +5 -44
  551. package/src/duckdb/src/include/duckdb/common/progress_bar/progress_bar.hpp +1 -1
  552. package/src/duckdb/src/include/duckdb/common/row_operations/row_matcher.hpp +14 -8
  553. package/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +12 -0
  554. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +0 -2
  555. package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +2 -17
  556. package/src/duckdb/src/include/duckdb/common/serializer/memory_stream.hpp +0 -1
  557. package/src/duckdb/src/include/duckdb/common/serializer/read_stream.hpp +1 -9
  558. package/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp +0 -5
  559. package/src/duckdb/src/include/duckdb/common/type_util.hpp +4 -34
  560. package/src/duckdb/src/include/duckdb/common/type_visitor.hpp +6 -36
  561. package/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp +2 -3
  562. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp +2 -4
  563. package/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp +56 -202
  564. package/src/duckdb/src/include/duckdb/common/types/constraint_conflict_info.hpp +5 -7
  565. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +1 -3
  566. package/src/duckdb/src/include/duckdb/common/types/date.hpp +5 -9
  567. package/src/duckdb/src/include/duckdb/common/types/datetime.hpp +2 -11
  568. package/src/duckdb/src/include/duckdb/common/types/hash.hpp +10 -22
  569. package/src/duckdb/src/include/duckdb/common/types/hugeint.hpp +6 -6
  570. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +1 -1
  571. package/src/duckdb/src/include/duckdb/common/types/row/row_data_collection.hpp +2 -1
  572. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +0 -7
  573. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +2 -26
  574. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +5 -43
  575. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +11 -4
  576. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +1 -10
  577. package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +58 -8
  578. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +1 -7
  579. package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +3 -7
  580. package/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp +4 -4
  581. package/src/duckdb/src/include/duckdb/common/types/uuid.hpp +0 -5
  582. package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +5 -14
  583. package/src/duckdb/src/include/duckdb/common/types/value.hpp +2 -15
  584. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +5 -118
  585. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +0 -8
  586. package/src/duckdb/src/include/duckdb/common/types.hpp +6 -26
  587. package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +11 -50
  588. package/src/duckdb/src/include/duckdb/common/virtual_file_system.hpp +3 -2
  589. package/src/duckdb/src/include/duckdb/common/winapi.hpp +4 -0
  590. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +6 -8
  591. package/src/duckdb/src/include/duckdb/execution/executor.hpp +2 -0
  592. package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +0 -4
  593. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +2 -21
  594. package/src/duckdb/src/include/duckdb/execution/ht_entry.hpp +0 -4
  595. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +16 -15
  596. package/src/duckdb/src/include/duckdb/execution/index/art/art_key.hpp +13 -0
  597. package/src/duckdb/src/include/duckdb/execution/index/art/art_merger.hpp +0 -1
  598. package/src/duckdb/src/include/duckdb/execution/index/art/art_operator.hpp +1 -113
  599. package/src/duckdb/src/include/duckdb/execution/index/art/art_scanner.hpp +2 -5
  600. package/src/duckdb/src/include/duckdb/execution/index/art/base_leaf.hpp +1 -2
  601. package/src/duckdb/src/include/duckdb/execution/index/art/base_node.hpp +15 -18
  602. package/src/duckdb/src/include/duckdb/execution/index/art/iterator.hpp +1 -1
  603. package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +1 -1
  604. package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +3 -30
  605. package/src/duckdb/src/include/duckdb/execution/index/art/node256.hpp +8 -30
  606. package/src/duckdb/src/include/duckdb/execution/index/art/node256_leaf.hpp +5 -8
  607. package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +9 -36
  608. package/src/duckdb/src/include/duckdb/execution/index/art/prefix.hpp +20 -9
  609. package/src/duckdb/src/include/duckdb/execution/index/bound_index.hpp +6 -8
  610. package/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +4 -21
  611. package/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +11 -95
  612. package/src/duckdb/src/include/duckdb/execution/index/unbound_index.hpp +11 -22
  613. package/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +1 -6
  614. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/distinct_aggregate_data.hpp +2 -3
  615. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +8 -12
  616. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp +1 -1
  617. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_perfecthash_aggregate.hpp +1 -1
  618. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_streaming_window.hpp +2 -2
  619. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp +2 -3
  620. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +2 -4
  621. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +1 -1
  622. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +0 -3
  623. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_multi_file_info.hpp +3 -3
  624. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +1 -1
  625. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp +1 -1
  626. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +1 -1
  627. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp +0 -3
  628. package/src/duckdb/src/include/duckdb/execution/operator/filter/physical_filter.hpp +1 -2
  629. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +1 -1
  630. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp +1 -1
  631. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_collector.hpp +1 -1
  632. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_create_secret.hpp +2 -3
  633. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_execute.hpp +1 -1
  634. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp +2 -2
  635. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp +2 -2
  636. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit_percent.hpp +2 -2
  637. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_load.hpp +2 -2
  638. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_materialized_collector.hpp +1 -1
  639. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_pragma.hpp +2 -2
  640. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_prepare.hpp +2 -3
  641. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp +2 -4
  642. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reset.hpp +4 -5
  643. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +2 -2
  644. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set.hpp +3 -6
  645. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set_variable.hpp +1 -1
  646. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_streaming_limit.hpp +2 -2
  647. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_streaming_sample.hpp +1 -2
  648. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_transaction.hpp +2 -4
  649. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_update_extensions.hpp +2 -3
  650. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_vacuum.hpp +1 -1
  651. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_verify_vector.hpp +1 -1
  652. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_asof_join.hpp +1 -2
  653. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_blockwise_nl_join.hpp +2 -3
  654. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_comparison_join.hpp +2 -2
  655. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_cross_product.hpp +2 -2
  656. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_delim_join.hpp +3 -4
  657. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +4 -4
  658. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +4 -5
  659. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_join.hpp +1 -2
  660. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_left_delim_join.hpp +3 -4
  661. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_nested_loop_join.hpp +5 -6
  662. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_piecewise_merge_join.hpp +3 -3
  663. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_positional_join.hpp +2 -2
  664. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_range_join.hpp +3 -3
  665. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_right_delim_join.hpp +3 -4
  666. package/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp +9 -13
  667. package/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp +2 -2
  668. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp +2 -2
  669. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp +3 -3
  670. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_database.hpp +1 -2
  671. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp +2 -2
  672. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_delete.hpp +2 -2
  673. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +2 -2
  674. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +3 -3
  675. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_update.hpp +2 -2
  676. package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_pivot.hpp +1 -2
  677. package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_projection.hpp +7 -2
  678. package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp +1 -6
  679. package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_unnest.hpp +2 -2
  680. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +4 -4
  681. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_dummy_scan.hpp +2 -2
  682. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_empty_result.hpp +2 -2
  683. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_expression_scan.hpp +3 -4
  684. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp +1 -2
  685. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +3 -4
  686. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_alter.hpp +2 -2
  687. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_attach.hpp +2 -2
  688. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp +4 -4
  689. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_function.hpp +2 -4
  690. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_schema.hpp +2 -4
  691. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_sequence.hpp +2 -4
  692. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_table.hpp +2 -2
  693. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_type.hpp +1 -1
  694. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_view.hpp +2 -4
  695. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_detach.hpp +2 -2
  696. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_drop.hpp +2 -2
  697. package/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +2 -2
  698. package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +2 -2
  699. package/src/duckdb/src/include/duckdb/execution/operator/set/physical_union.hpp +2 -2
  700. package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +22 -23
  701. package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +2 -7
  702. package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +1 -4
  703. package/src/duckdb/src/include/duckdb/execution/reservoir_sample.hpp +1 -0
  704. package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +3 -3
  705. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +11 -36
  706. package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +0 -1
  707. package/src/duckdb/src/include/duckdb/function/cast/bound_cast_data.hpp +0 -28
  708. package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +1 -6
  709. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +1 -5
  710. package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +3 -2
  711. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +10 -28
  712. package/src/duckdb/src/include/duckdb/function/create_sort_key.hpp +0 -13
  713. package/src/duckdb/src/include/duckdb/function/function_binder.hpp +0 -3
  714. package/src/duckdb/src/include/duckdb/function/function_list.hpp +1 -1
  715. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +3 -25
  716. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +6 -18
  717. package/src/duckdb/src/include/duckdb/function/pragma/pragma_functions.hpp +1 -1
  718. package/src/duckdb/src/include/duckdb/function/register_function_list_helper.hpp +2 -34
  719. package/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp +0 -10
  720. package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +6 -6
  721. package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +5 -5
  722. package/src/duckdb/src/include/duckdb/function/scalar/list_functions.hpp +19 -19
  723. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +103 -103
  724. package/src/duckdb/src/include/duckdb/function/scalar/struct_functions.hpp +0 -32
  725. package/src/duckdb/src/include/duckdb/function/scalar/system_functions.hpp +1 -1
  726. package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +2 -8
  727. package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_type_info.hpp +0 -2
  728. package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +11 -26
  729. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +12 -2
  730. package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +1 -9
  731. package/src/duckdb/src/include/duckdb/function/table_function.hpp +5 -8
  732. package/src/duckdb/src/include/duckdb/function/window/window_aggregate_function.hpp +10 -10
  733. package/src/duckdb/src/include/duckdb/function/window/window_aggregator.hpp +48 -25
  734. package/src/duckdb/src/include/duckdb/function/window/window_collection.hpp +0 -142
  735. package/src/duckdb/src/include/duckdb/function/window/window_constant_aggregator.hpp +12 -11
  736. package/src/duckdb/src/include/duckdb/function/window/window_custom_aggregator.hpp +8 -8
  737. package/src/duckdb/src/include/duckdb/function/window/window_distinct_aggregator.hpp +10 -10
  738. package/src/duckdb/src/include/duckdb/function/window/window_executor.hpp +40 -26
  739. package/src/duckdb/src/include/duckdb/function/window/window_index_tree.hpp +2 -2
  740. package/src/duckdb/src/include/duckdb/function/window/window_merge_sort_tree.hpp +30 -32
  741. package/src/duckdb/src/include/duckdb/function/window/window_naive_aggregator.hpp +3 -5
  742. package/src/duckdb/src/include/duckdb/function/window/window_rank_function.hpp +16 -17
  743. package/src/duckdb/src/include/duckdb/function/window/window_rownumber_function.hpp +9 -10
  744. package/src/duckdb/src/include/duckdb/function/window/window_segment_tree.hpp +8 -8
  745. package/src/duckdb/src/include/duckdb/function/window/window_token_tree.hpp +6 -6
  746. package/src/duckdb/src/include/duckdb/function/window/window_value_function.hpp +21 -44
  747. package/src/duckdb/src/include/duckdb/logging/log_manager.hpp +4 -12
  748. package/src/duckdb/src/include/duckdb/logging/log_storage.hpp +50 -271
  749. package/src/duckdb/src/include/duckdb/main/appender.hpp +16 -37
  750. package/src/duckdb/src/include/duckdb/main/attached_database.hpp +4 -18
  751. package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +6 -23
  752. package/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp +8 -92
  753. package/src/duckdb/src/include/duckdb/main/client_config.hpp +70 -11
  754. package/src/duckdb/src/include/duckdb/main/client_context.hpp +5 -28
  755. package/src/duckdb/src/include/duckdb/main/client_data.hpp +23 -21
  756. package/src/duckdb/src/include/duckdb/main/client_properties.hpp +19 -3
  757. package/src/duckdb/src/include/duckdb/main/config.hpp +111 -48
  758. package/src/duckdb/src/include/duckdb/main/database.hpp +27 -23
  759. package/src/duckdb/src/include/duckdb/main/database_file_opener.hpp +0 -1
  760. package/src/duckdb/src/include/duckdb/main/database_manager.hpp +21 -19
  761. package/src/duckdb/src/include/duckdb/main/database_path_and_type.hpp +1 -3
  762. package/src/duckdb/src/include/duckdb/main/db_instance_cache.hpp +4 -8
  763. package/src/duckdb/src/include/duckdb/main/error_manager.hpp +1 -3
  764. package/src/duckdb/src/include/duckdb/main/extension.hpp +2 -2
  765. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +0 -35
  766. package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +0 -2
  767. package/src/duckdb/src/include/duckdb/main/extension_util.hpp +77 -6
  768. package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +23 -41
  769. package/src/duckdb/src/include/duckdb/main/relation.hpp +1 -1
  770. package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +0 -1
  771. package/src/duckdb/src/include/duckdb/main/secret/secret_manager.hpp +18 -18
  772. package/src/duckdb/src/include/duckdb/main/settings.hpp +184 -168
  773. package/src/duckdb/src/include/duckdb/main/valid_checker.hpp +2 -5
  774. package/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp +1 -1
  775. package/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp +1 -1
  776. package/src/duckdb/src/include/duckdb/optimizer/compressed_materialization.hpp +0 -4
  777. package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +1 -4
  778. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_order_optimizer.hpp +0 -3
  779. package/src/duckdb/src/include/duckdb/optimizer/late_materialization.hpp +1 -1
  780. package/src/duckdb/src/include/duckdb/optimizer/rule/list.hpp +0 -1
  781. package/src/duckdb/src/include/duckdb/parallel/interrupt.hpp +3 -9
  782. package/src/duckdb/src/include/duckdb/parallel/task_scheduler.hpp +0 -1
  783. package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +1 -3
  784. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +8 -18
  785. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +4 -3
  786. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +4 -6
  787. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +0 -2
  788. package/src/duckdb/src/include/duckdb/parser/parsed_expression_iterator.hpp +0 -14
  789. package/src/duckdb/src/include/duckdb/parser/parser.hpp +0 -2
  790. package/src/duckdb/src/include/duckdb/parser/qualified_name.hpp +0 -2
  791. package/src/duckdb/src/include/duckdb/parser/query_node/cte_node.hpp +0 -2
  792. package/src/duckdb/src/include/duckdb/parser/statement/list.hpp +0 -1
  793. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +4 -1
  794. package/src/duckdb/src/include/duckdb/parser/statement/update_statement.hpp +0 -1
  795. package/src/duckdb/src/include/duckdb/parser/tableref/column_data_ref.hpp +9 -4
  796. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +0 -2
  797. package/src/duckdb/src/include/duckdb/parser/tableref/list.hpp +0 -1
  798. package/src/duckdb/src/include/duckdb/parser/tableref/showref.hpp +1 -5
  799. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +0 -4
  800. package/src/duckdb/src/include/duckdb/parser/tokens.hpp +0 -3
  801. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -9
  802. package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +0 -5
  803. package/src/duckdb/src/include/duckdb/planner/binder.hpp +8 -45
  804. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +0 -2
  805. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +0 -1
  806. package/src/duckdb/src/include/duckdb/planner/bound_tokens.hpp +0 -3
  807. package/src/duckdb/src/include/duckdb/planner/constraints/bound_check_constraint.hpp +0 -8
  808. package/src/duckdb/src/include/duckdb/planner/constraints/bound_foreign_key_constraint.hpp +0 -4
  809. package/src/duckdb/src/include/duckdb/planner/constraints/bound_not_null_constraint.hpp +0 -4
  810. package/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp +0 -5
  811. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +2 -2
  812. package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +1 -3
  813. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +8 -3
  814. package/src/duckdb/src/include/duckdb/planner/expression_iterator.hpp +0 -18
  815. package/src/duckdb/src/include/duckdb/planner/extension_callback.hpp +0 -8
  816. package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +0 -1
  817. package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +0 -1
  818. package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +0 -3
  819. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +1 -1
  820. package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +0 -2
  821. package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +22 -28
  822. package/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +1 -1
  823. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -5
  824. package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +0 -2
  825. package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +1 -1
  826. package/src/duckdb/src/include/duckdb/planner/query_node/bound_cte_node.hpp +0 -2
  827. package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +0 -26
  828. package/src/duckdb/src/include/duckdb/storage/block.hpp +1 -1
  829. package/src/duckdb/src/include/duckdb/storage/block_manager.hpp +8 -24
  830. package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +1 -3
  831. package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +36 -55
  832. package/src/duckdb/src/include/duckdb/storage/caching_file_system.hpp +4 -10
  833. package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +6 -19
  834. package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_reader.hpp +1 -1
  835. package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +8 -15
  836. package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +8 -6
  837. package/src/duckdb/src/include/duckdb/storage/compression/alp/algorithm/alp.hpp +1 -2
  838. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_fetch.hpp +1 -1
  839. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +2 -4
  840. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_fetch.hpp +1 -1
  841. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_scan.hpp +1 -1
  842. package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/packed_data.hpp +1 -3
  843. package/src/duckdb/src/include/duckdb/storage/compression/dict_fsst/compression.hpp +1 -1
  844. package/src/duckdb/src/include/duckdb/storage/compression/dict_fsst/decompression.hpp +1 -1
  845. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas.hpp +1 -1
  846. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_fetch.hpp +1 -1
  847. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_scan.hpp +2 -7
  848. package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +0 -5
  849. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +9 -14
  850. package/src/duckdb/src/include/duckdb/storage/external_file_cache.hpp +5 -6
  851. package/src/duckdb/src/include/duckdb/storage/in_memory_block_manager.hpp +2 -7
  852. package/src/duckdb/src/include/duckdb/storage/magic_bytes.hpp +1 -2
  853. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +0 -15
  854. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_reader.hpp +0 -7
  855. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_writer.hpp +0 -1
  856. package/src/duckdb/src/include/duckdb/storage/optimistic_data_writer.hpp +3 -10
  857. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +3 -14
  858. package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +20 -65
  859. package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +6 -6
  860. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -2
  861. package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +4 -4
  862. package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +20 -80
  863. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +17 -43
  864. package/src/duckdb/src/include/duckdb/storage/storage_options.hpp +0 -21
  865. package/src/duckdb/src/include/duckdb/storage/table/array_column_data.hpp +0 -1
  866. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +2 -2
  867. package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +1 -7
  868. package/src/duckdb/src/include/duckdb/storage/table/column_data_checkpointer.hpp +2 -5
  869. package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +7 -10
  870. package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -3
  871. package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +0 -1
  872. package/src/duckdb/src/include/duckdb/storage/table/persistent_table_data.hpp +0 -1
  873. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -17
  874. package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +1 -11
  875. package/src/duckdb/src/include/duckdb/storage/table/row_group_segment_tree.hpp +0 -5
  876. package/src/duckdb/src/include/duckdb/storage/table/segment_lock.hpp +0 -4
  877. package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +14 -34
  878. package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +0 -1
  879. package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +0 -1
  880. package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +46 -55
  881. package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +0 -3
  882. package/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp +6 -17
  883. package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +1 -2
  884. package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +0 -3
  885. package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +0 -1
  886. package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +1 -3
  887. package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +1 -22
  888. package/src/duckdb/src/include/duckdb/transaction/undo_buffer_allocator.hpp +0 -2
  889. package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +7 -14
  890. package/src/duckdb/src/include/duckdb.h +121 -537
  891. package/src/duckdb/src/include/duckdb_extension.h +14 -122
  892. package/src/duckdb/src/logging/log_manager.cpp +15 -59
  893. package/src/duckdb/src/logging/log_storage.cpp +128 -672
  894. package/src/duckdb/src/main/appender.cpp +88 -129
  895. package/src/duckdb/src/main/attached_database.cpp +52 -47
  896. package/src/duckdb/src/main/capi/aggregate_function-c.cpp +9 -18
  897. package/src/duckdb/src/main/capi/appender-c.cpp +28 -82
  898. package/src/duckdb/src/main/capi/arrow-c.cpp +17 -181
  899. package/src/duckdb/src/main/capi/config-c.cpp +3 -18
  900. package/src/duckdb/src/main/capi/data_chunk-c.cpp +10 -22
  901. package/src/duckdb/src/main/capi/duckdb-c.cpp +21 -64
  902. package/src/duckdb/src/main/capi/duckdb_value-c.cpp +7 -13
  903. package/src/duckdb/src/main/capi/helper-c.cpp +39 -227
  904. package/src/duckdb/src/main/capi/logical_types-c.cpp +28 -48
  905. package/src/duckdb/src/main/capi/prepared-c.cpp +10 -68
  906. package/src/duckdb/src/main/capi/profiling_info-c.cpp +4 -6
  907. package/src/duckdb/src/main/capi/result-c.cpp +95 -16
  908. package/src/duckdb/src/main/capi/scalar_function-c.cpp +1 -43
  909. package/src/duckdb/src/main/capi/table_function-c.cpp +0 -9
  910. package/src/duckdb/src/main/client_config.cpp +0 -21
  911. package/src/duckdb/src/main/client_context.cpp +77 -153
  912. package/src/duckdb/src/main/client_context_file_opener.cpp +0 -1
  913. package/src/duckdb/src/main/client_data.cpp +1 -139
  914. package/src/duckdb/src/main/client_verify.cpp +6 -14
  915. package/src/duckdb/src/main/config.cpp +121 -214
  916. package/src/duckdb/src/main/database.cpp +58 -31
  917. package/src/duckdb/src/main/database_manager.cpp +108 -134
  918. package/src/duckdb/src/main/database_path_and_type.cpp +3 -4
  919. package/src/duckdb/src/main/db_instance_cache.cpp +35 -64
  920. package/src/duckdb/src/main/error_manager.cpp +1 -2
  921. package/src/duckdb/src/main/extension/extension_helper.cpp +22 -3
  922. package/src/duckdb/src/main/extension/extension_install.cpp +6 -6
  923. package/src/duckdb/src/main/extension/extension_load.cpp +9 -24
  924. package/src/duckdb/src/main/http/http_util.cpp +5 -18
  925. package/src/duckdb/src/main/profiling_info.cpp +2 -8
  926. package/src/duckdb/src/main/query_profiler.cpp +30 -65
  927. package/src/duckdb/src/main/query_result.cpp +1 -1
  928. package/src/duckdb/src/main/relation/query_relation.cpp +0 -23
  929. package/src/duckdb/src/main/secret/secret_manager.cpp +7 -8
  930. package/src/duckdb/src/main/settings/autogenerated_settings.cpp +645 -50
  931. package/src/duckdb/src/main/settings/custom_settings.cpp +152 -111
  932. package/src/duckdb/src/main/valid_checker.cpp +4 -10
  933. package/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp +5 -7
  934. package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +7 -7
  935. package/src/duckdb/src/optimizer/compressed_materialization/compress_comparison_join.cpp +7 -11
  936. package/src/duckdb/src/optimizer/compressed_materialization.cpp +39 -56
  937. package/src/duckdb/src/optimizer/empty_result_pullup.cpp +1 -8
  938. package/src/duckdb/src/optimizer/filter_combiner.cpp +7 -5
  939. package/src/duckdb/src/optimizer/filter_pushdown.cpp +0 -3
  940. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +2 -18
  941. package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +0 -1
  942. package/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp +3 -4
  943. package/src/duckdb/src/optimizer/join_order/query_graph_manager.cpp +15 -11
  944. package/src/duckdb/src/optimizer/join_order/relation_manager.cpp +23 -40
  945. package/src/duckdb/src/optimizer/late_materialization.cpp +23 -16
  946. package/src/duckdb/src/optimizer/optimizer.cpp +0 -15
  947. package/src/duckdb/src/optimizer/pushdown/pushdown_aggregate.cpp +20 -15
  948. package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +13 -11
  949. package/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp +26 -20
  950. package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +14 -11
  951. package/src/duckdb/src/optimizer/remove_unused_columns.cpp +1 -2
  952. package/src/duckdb/src/optimizer/rule/join_dependent_filter.cpp +9 -3
  953. package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +6 -1
  954. package/src/duckdb/src/optimizer/rule/timestamp_comparison.cpp +6 -3
  955. package/src/duckdb/src/optimizer/statistics/operator/propagate_aggregate.cpp +1 -33
  956. package/src/duckdb/src/parallel/event.cpp +3 -1
  957. package/src/duckdb/src/parallel/executor.cpp +7 -0
  958. package/src/duckdb/src/parallel/pipeline.cpp +2 -2
  959. package/src/duckdb/src/parallel/pipeline_executor.cpp +2 -2
  960. package/src/duckdb/src/parallel/task_scheduler.cpp +34 -146
  961. package/src/duckdb/src/parallel/thread_context.cpp +9 -2
  962. package/src/duckdb/src/parser/column_definition.cpp +6 -3
  963. package/src/duckdb/src/parser/expression/window_expression.cpp +0 -3
  964. package/src/duckdb/src/parser/parsed_data/attach_info.cpp +35 -8
  965. package/src/duckdb/src/parser/parsed_data/copy_info.cpp +7 -27
  966. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +13 -8
  967. package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -16
  968. package/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +17 -7
  969. package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +14 -1
  970. package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +12 -1
  971. package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +13 -1
  972. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +0 -22
  973. package/src/duckdb/src/parser/parser.cpp +0 -5
  974. package/src/duckdb/src/parser/qualified_name.cpp +0 -26
  975. package/src/duckdb/src/parser/query_node/cte_node.cpp +0 -1
  976. package/src/duckdb/src/parser/query_node/select_node.cpp +0 -1
  977. package/src/duckdb/src/parser/query_node.cpp +0 -1
  978. package/src/duckdb/src/parser/statement/export_statement.cpp +3 -1
  979. package/src/duckdb/src/parser/statement/update_statement.cpp +16 -19
  980. package/src/duckdb/src/parser/tableref/column_data_ref.cpp +1 -26
  981. package/src/duckdb/src/parser/tableref/joinref.cpp +2 -3
  982. package/src/duckdb/src/parser/tableref/showref.cpp +0 -14
  983. package/src/duckdb/src/parser/tableref/table_function.cpp +1 -6
  984. package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +1 -0
  985. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +1 -6
  986. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +11 -8
  987. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +0 -3
  988. package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +5 -7
  989. package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +4 -4
  990. package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +80 -16
  991. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +22 -27
  992. package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +1 -0
  993. package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +2 -1
  994. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +14 -22
  995. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +0 -2
  996. package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +1 -1
  997. package/src/duckdb/src/parser/transform/statement/transform_show.cpp +4 -22
  998. package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +1 -3
  999. package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +6 -12
  1000. package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +3 -3
  1001. package/src/duckdb/src/parser/transformer.cpp +7 -8
  1002. package/src/duckdb/src/planner/bind_context.cpp +2 -19
  1003. package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +6 -13
  1004. package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +0 -3
  1005. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +4 -18
  1006. package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +25 -8
  1007. package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +4 -31
  1008. package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +0 -2
  1009. package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +11 -48
  1010. package/src/duckdb/src/planner/binder/query_node/bind_cte_node.cpp +1 -9
  1011. package/src/duckdb/src/planner/binder/query_node/bind_recursive_cte_node.cpp +0 -4
  1012. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +6 -6
  1013. package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +26 -11
  1014. package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +3 -4
  1015. package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +4 -10
  1016. package/src/duckdb/src/planner/binder/statement/bind_attach.cpp +0 -15
  1017. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +58 -239
  1018. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +55 -157
  1019. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +25 -30
  1020. package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +3 -2
  1021. package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +3 -28
  1022. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +0 -36
  1023. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +322 -282
  1024. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +14 -23
  1025. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +27 -37
  1026. package/src/duckdb/src/planner/binder/tableref/bind_column_data_ref.cpp +1 -4
  1027. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +36 -120
  1028. package/src/duckdb/src/planner/binder/tableref/bind_showref.cpp +0 -30
  1029. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +1 -72
  1030. package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +12 -7
  1031. package/src/duckdb/src/planner/binder/tableref/plan_table_function.cpp +1 -15
  1032. package/src/duckdb/src/planner/binder.cpp +175 -42
  1033. package/src/duckdb/src/planner/bound_result_modifier.cpp +0 -8
  1034. package/src/duckdb/src/planner/collation_binding.cpp +1 -2
  1035. package/src/duckdb/src/planner/expression.cpp +1 -1
  1036. package/src/duckdb/src/planner/expression_binder/order_binder.cpp +2 -4
  1037. package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +6 -8
  1038. package/src/duckdb/src/planner/expression_iterator.cpp +0 -31
  1039. package/src/duckdb/src/planner/logical_operator_visitor.cpp +4 -18
  1040. package/src/duckdb/src/planner/operator/logical_aggregate.cpp +1 -2
  1041. package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +2 -4
  1042. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +0 -3
  1043. package/src/duckdb/src/planner/operator/logical_get.cpp +2 -7
  1044. package/src/duckdb/src/planner/operator/logical_insert.cpp +2 -5
  1045. package/src/duckdb/src/planner/operator/logical_join.cpp +7 -6
  1046. package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +0 -1
  1047. package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +0 -8
  1048. package/src/duckdb/src/planner/planner.cpp +2 -4
  1049. package/src/duckdb/src/planner/pragma_handler.cpp +1 -1
  1050. package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +7 -76
  1051. package/src/duckdb/src/planner/table_binding.cpp +12 -6
  1052. package/src/duckdb/src/storage/block.cpp +1 -2
  1053. package/src/duckdb/src/storage/buffer/block_handle.cpp +4 -7
  1054. package/src/duckdb/src/storage/buffer/block_manager.cpp +6 -14
  1055. package/src/duckdb/src/storage/buffer/buffer_pool.cpp +2 -2
  1056. package/src/duckdb/src/storage/buffer_manager.cpp +13 -45
  1057. package/src/duckdb/src/storage/caching_file_system.cpp +12 -20
  1058. package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +3 -26
  1059. package/src/duckdb/src/storage/checkpoint/table_data_reader.cpp +1 -3
  1060. package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +35 -56
  1061. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +1 -1
  1062. package/src/duckdb/src/storage/checkpoint_manager.cpp +11 -12
  1063. package/src/duckdb/src/storage/compression/bitpacking.cpp +1 -4
  1064. package/src/duckdb/src/storage/compression/dict_fsst/compression.cpp +25 -48
  1065. package/src/duckdb/src/storage/compression/dict_fsst/decompression.cpp +13 -10
  1066. package/src/duckdb/src/storage/compression/dict_fsst.cpp +2 -2
  1067. package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +5 -10
  1068. package/src/duckdb/src/storage/compression/fsst.cpp +2 -3
  1069. package/src/duckdb/src/storage/compression/rle.cpp +1 -1
  1070. package/src/duckdb/src/storage/compression/zstd.cpp +6 -5
  1071. package/src/duckdb/src/storage/data_table.cpp +144 -167
  1072. package/src/duckdb/src/storage/external_file_cache.cpp +6 -6
  1073. package/src/duckdb/src/storage/local_storage.cpp +68 -132
  1074. package/src/duckdb/src/storage/magic_bytes.cpp +2 -3
  1075. package/src/duckdb/src/storage/metadata/metadata_manager.cpp +17 -88
  1076. package/src/duckdb/src/storage/metadata/metadata_reader.cpp +3 -26
  1077. package/src/duckdb/src/storage/metadata/metadata_writer.cpp +0 -7
  1078. package/src/duckdb/src/storage/open_file_storage_extension.cpp +3 -3
  1079. package/src/duckdb/src/storage/optimistic_data_writer.cpp +3 -5
  1080. package/src/duckdb/src/storage/partial_block_manager.cpp +5 -26
  1081. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +22 -72
  1082. package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +3 -9
  1083. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +0 -2
  1084. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +2 -12
  1085. package/src/duckdb/src/storage/serialization/serialize_types.cpp +0 -14
  1086. package/src/duckdb/src/storage/single_file_block_manager.cpp +86 -381
  1087. package/src/duckdb/src/storage/standard_buffer_manager.cpp +30 -86
  1088. package/src/duckdb/src/storage/statistics/base_statistics.cpp +3 -3
  1089. package/src/duckdb/src/storage/statistics/string_stats.cpp +2 -2
  1090. package/src/duckdb/src/storage/statistics/struct_stats.cpp +1 -1
  1091. package/src/duckdb/src/storage/storage_info.cpp +7 -13
  1092. package/src/duckdb/src/storage/storage_manager.cpp +35 -110
  1093. package/src/duckdb/src/storage/table/array_column_data.cpp +0 -4
  1094. package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +15 -22
  1095. package/src/duckdb/src/storage/table/column_data.cpp +14 -53
  1096. package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +17 -17
  1097. package/src/duckdb/src/storage/table/column_segment.cpp +21 -23
  1098. package/src/duckdb/src/storage/table/list_column_data.cpp +1 -6
  1099. package/src/duckdb/src/storage/table/row_group.cpp +154 -226
  1100. package/src/duckdb/src/storage/table/row_group_collection.cpp +47 -146
  1101. package/src/duckdb/src/storage/table/row_version_manager.cpp +1 -1
  1102. package/src/duckdb/src/storage/table/standard_column_data.cpp +2 -14
  1103. package/src/duckdb/src/storage/table/struct_column_data.cpp +0 -15
  1104. package/src/duckdb/src/storage/table/update_segment.cpp +5 -111
  1105. package/src/duckdb/src/storage/table_index_list.cpp +73 -137
  1106. package/src/duckdb/src/storage/temporary_file_manager.cpp +28 -103
  1107. package/src/duckdb/src/storage/wal_replay.cpp +36 -158
  1108. package/src/duckdb/src/storage/write_ahead_log.cpp +17 -102
  1109. package/src/duckdb/src/transaction/commit_state.cpp +0 -2
  1110. package/src/duckdb/src/transaction/duck_transaction.cpp +2 -12
  1111. package/src/duckdb/src/transaction/duck_transaction_manager.cpp +35 -66
  1112. package/src/duckdb/src/transaction/meta_transaction.cpp +23 -85
  1113. package/src/duckdb/src/transaction/rollback_state.cpp +0 -7
  1114. package/src/duckdb/src/transaction/transaction_context.cpp +4 -3
  1115. package/src/duckdb/src/transaction/undo_buffer.cpp +4 -5
  1116. package/src/duckdb/src/transaction/undo_buffer_allocator.cpp +0 -1
  1117. package/src/duckdb/src/transaction/wal_write_state.cpp +0 -2
  1118. package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
  1119. package/src/duckdb/src/verification/statement_verifier.cpp +5 -10
  1120. package/src/duckdb/third_party/brotli/common/shared_dictionary.cpp +4 -4
  1121. package/src/duckdb/third_party/fmt/include/fmt/core.h +12 -6
  1122. package/src/duckdb/third_party/fmt/include/fmt/format-inl.h +1 -5
  1123. package/src/duckdb/third_party/fmt/include/fmt/format.h +24 -34
  1124. package/src/duckdb/third_party/fmt/include/fmt/printf.h +21 -49
  1125. package/src/duckdb/third_party/httplib/httplib.hpp +5 -13
  1126. package/src/duckdb/third_party/jaro_winkler/details/jaro_impl.hpp +4 -4
  1127. package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +0 -3
  1128. package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +1 -56
  1129. package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +733 -744
  1130. package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +1 -6
  1131. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +18623 -19067
  1132. package/src/duckdb/third_party/mbedtls/include/des_alt.h +1 -1
  1133. package/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h +1 -1
  1134. package/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h +1 -1
  1135. package/src/duckdb/third_party/mbedtls/include/mbedtls/block_cipher.h +1 -1
  1136. package/src/duckdb/third_party/mbedtls/include/mbedtls/build_info.h +4 -4
  1137. package/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h +1 -1
  1138. package/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h +1 -1
  1139. package/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h +1 -1
  1140. package/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h +1 -1
  1141. package/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h +1 -1
  1142. package/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h +1 -1
  1143. package/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h +1 -1
  1144. package/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h +1 -1
  1145. package/src/duckdb/third_party/mbedtls/include/mbedtls/mbedtls_config.h +1 -5
  1146. package/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h +1 -1
  1147. package/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h +1 -1
  1148. package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h +1 -1
  1149. package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h +1 -1
  1150. package/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h +1 -1
  1151. package/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h +1 -1
  1152. package/src/duckdb/third_party/mbedtls/include/mbedtls/sha3.h +1 -1
  1153. package/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h +1 -1
  1154. package/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h +1 -1
  1155. package/src/duckdb/third_party/mbedtls/include/mbedtls_wrapper.hpp +7 -16
  1156. package/src/duckdb/third_party/mbedtls/include/platform_alt.h +1 -1
  1157. package/src/duckdb/third_party/mbedtls/include/psa/crypto.h +1 -1
  1158. package/src/duckdb/third_party/mbedtls/include/psa/crypto_config.h +1 -1
  1159. package/src/duckdb/third_party/mbedtls/include/rsa_alt.h +1 -1
  1160. package/src/duckdb/third_party/mbedtls/include/sha1_alt.h +1 -1
  1161. package/src/duckdb/third_party/mbedtls/include/sha256_alt.h +1 -1
  1162. package/src/duckdb/third_party/mbedtls/include/sha512_alt.h +1 -1
  1163. package/src/duckdb/third_party/mbedtls/include/ssl_misc.h +1 -1
  1164. package/src/duckdb/third_party/mbedtls/library/aes.cpp +1 -1
  1165. package/src/duckdb/third_party/mbedtls/library/aesce.h +1 -136
  1166. package/src/duckdb/third_party/mbedtls/library/alignment.h +9 -9
  1167. package/src/duckdb/third_party/mbedtls/library/asn1parse.cpp +1 -1
  1168. package/src/duckdb/third_party/mbedtls/library/asn1write.cpp +3 -6
  1169. package/src/duckdb/third_party/mbedtls/library/base64.cpp +24 -48
  1170. package/src/duckdb/third_party/mbedtls/library/base64_internal.h +1 -45
  1171. package/src/duckdb/third_party/mbedtls/library/bignum.cpp +3 -3
  1172. package/src/duckdb/third_party/mbedtls/library/bignum_core.cpp +14 -16
  1173. package/src/duckdb/third_party/mbedtls/library/bignum_core.h +18 -10
  1174. package/src/duckdb/third_party/mbedtls/library/block_cipher_internal.h +1 -99
  1175. package/src/duckdb/third_party/mbedtls/library/check_crypto_config.h +1 -141
  1176. package/src/duckdb/third_party/mbedtls/library/cipher.cpp +12 -18
  1177. package/src/duckdb/third_party/mbedtls/library/cipher_wrap.cpp +10 -110
  1178. package/src/duckdb/third_party/mbedtls/library/cipher_wrap.h +1 -1
  1179. package/src/duckdb/third_party/mbedtls/library/common.h +4 -20
  1180. package/src/duckdb/third_party/mbedtls/library/constant_time.cpp +1 -1
  1181. package/src/duckdb/third_party/mbedtls/library/constant_time_impl.h +43 -28
  1182. package/src/duckdb/third_party/mbedtls/library/constant_time_internal.h +24 -24
  1183. package/src/duckdb/third_party/mbedtls/library/ctr.h +1 -35
  1184. package/src/duckdb/third_party/mbedtls/library/gcm.cpp +2 -2
  1185. package/src/duckdb/third_party/mbedtls/library/md.cpp +11 -11
  1186. package/src/duckdb/third_party/mbedtls/library/md_psa.h +1 -1
  1187. package/src/duckdb/third_party/mbedtls/library/oid.cpp +2 -2
  1188. package/src/duckdb/third_party/mbedtls/library/pem.cpp +2 -5
  1189. package/src/duckdb/third_party/mbedtls/library/pk.cpp +5 -1
  1190. package/src/duckdb/third_party/mbedtls/library/pk_internal.h +4 -4
  1191. package/src/duckdb/third_party/mbedtls/library/pk_wrap.cpp +18 -16
  1192. package/src/duckdb/third_party/mbedtls/library/pkwrite.h +1 -121
  1193. package/src/duckdb/third_party/mbedtls/library/psa_crypto_core.h +1 -995
  1194. package/src/duckdb/third_party/mbedtls/library/psa_util_internal.h +1 -100
  1195. package/src/duckdb/third_party/mbedtls/library/rsa.cpp +4 -4
  1196. package/src/duckdb/third_party/mbedtls/mbedtls_wrapper.cpp +42 -114
  1197. package/src/duckdb/third_party/parquet/parquet_types.cpp +773 -2344
  1198. package/src/duckdb/third_party/parquet/parquet_types.h +4 -400
  1199. package/src/duckdb/third_party/snappy/snappy-stubs-internal.h +18 -18
  1200. package/src/duckdb/third_party/snappy/snappy.cc +6 -6
  1201. package/src/duckdb/third_party/thrift/thrift/protocol/TCompactProtocol.h +4 -4
  1202. package/src/duckdb/third_party/thrift/thrift/protocol/TCompactProtocol.tcc +36 -36
  1203. package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +1 -1
  1204. package/src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp +1 -1
  1205. package/src/duckdb/ub_extension_core_functions_scalar_generic.cpp +0 -2
  1206. package/src/duckdb/ub_extension_core_functions_scalar_struct.cpp +0 -2
  1207. package/src/duckdb/ub_extension_parquet_reader.cpp +0 -2
  1208. package/src/duckdb/ub_src_common.cpp +0 -8
  1209. package/src/duckdb/ub_src_common_arrow_appender.cpp +0 -2
  1210. package/src/duckdb/ub_src_common_progress_bar.cpp +0 -2
  1211. package/src/duckdb/ub_src_common_tree_renderer.cpp +0 -2
  1212. package/src/duckdb/ub_src_common_types.cpp +1 -1
  1213. package/src/duckdb/ub_src_common_types_row.cpp +0 -2
  1214. package/src/duckdb/ub_src_execution_index_art.cpp +9 -11
  1215. package/src/duckdb/ub_src_execution_operator_persistent.cpp +0 -2
  1216. package/src/duckdb/ub_src_execution_physical_plan.cpp +0 -2
  1217. package/src/duckdb/ub_src_function.cpp +0 -2
  1218. package/src/duckdb/ub_src_function_cast.cpp +1 -1
  1219. package/src/duckdb/ub_src_function_scalar_struct.cpp +0 -2
  1220. package/src/duckdb/ub_src_function_table.cpp +0 -2
  1221. package/src/duckdb/ub_src_function_table_system.cpp +0 -4
  1222. package/src/duckdb/ub_src_main.cpp +0 -4
  1223. package/src/duckdb/ub_src_main_capi.cpp +0 -4
  1224. package/src/duckdb/ub_src_optimizer.cpp +0 -2
  1225. package/src/duckdb/ub_src_optimizer_pushdown.cpp +0 -2
  1226. package/src/duckdb/ub_src_optimizer_rule.cpp +0 -2
  1227. package/src/duckdb/ub_src_parser_statement.cpp +0 -2
  1228. package/src/duckdb/ub_src_parser_tableref.cpp +0 -2
  1229. package/src/duckdb/ub_src_parser_transform_statement.cpp +0 -2
  1230. package/src/duckdb/ub_src_planner.cpp +0 -2
  1231. package/src/duckdb/ub_src_planner_binder_statement.cpp +0 -2
  1232. package/src/duckdb/ub_src_planner_binder_tableref.cpp +0 -2
  1233. package/src/duckdb/ub_src_planner_expression_binder.cpp +0 -2
  1234. package/src/duckdb/ub_src_planner_operator.cpp +0 -2
  1235. package/src/duckdb/ub_src_storage_table.cpp +0 -4
  1236. package/test/columns.test.ts +1 -1
  1237. package/test/exec.test.ts +3 -3
  1238. package/test/jsdoc.test.ts +1 -2
  1239. package/test/syntax_error.test.ts +1 -1
  1240. package/test/test_all_types.test.ts +1 -1
  1241. package/src/duckdb/extension/core_functions/scalar/generic/replace_type.cpp +0 -34
  1242. package/src/duckdb/extension/core_functions/scalar/struct/struct_update.cpp +0 -161
  1243. package/src/duckdb/extension/parquet/include/reader/variant/variant_binary_decoder.hpp +0 -150
  1244. package/src/duckdb/extension/parquet/include/reader/variant/variant_shredded_conversion.hpp +0 -23
  1245. package/src/duckdb/extension/parquet/include/reader/variant/variant_value.hpp +0 -54
  1246. package/src/duckdb/extension/parquet/include/reader/variant_column_reader.hpp +0 -44
  1247. package/src/duckdb/extension/parquet/reader/variant/variant_binary_decoder.cpp +0 -367
  1248. package/src/duckdb/extension/parquet/reader/variant/variant_shredded_conversion.cpp +0 -565
  1249. package/src/duckdb/extension/parquet/reader/variant/variant_value.cpp +0 -85
  1250. package/src/duckdb/extension/parquet/reader/variant_column_reader.cpp +0 -161
  1251. package/src/duckdb/src/common/arrow/appender/append_data.cpp +0 -29
  1252. package/src/duckdb/src/common/bignum.cpp +0 -362
  1253. package/src/duckdb/src/common/csv_writer.cpp +0 -381
  1254. package/src/duckdb/src/common/encryption_functions.cpp +0 -228
  1255. package/src/duckdb/src/common/encryption_key_manager.cpp +0 -143
  1256. package/src/duckdb/src/common/progress_bar/unscented_kalman_filter.cpp +0 -288
  1257. package/src/duckdb/src/common/sorting/hashed_sort.cpp +0 -724
  1258. package/src/duckdb/src/common/sorting/sort.cpp +0 -513
  1259. package/src/duckdb/src/common/sorting/sorted_run.cpp +0 -341
  1260. package/src/duckdb/src/common/sorting/sorted_run_merger.cpp +0 -969
  1261. package/src/duckdb/src/common/tree_renderer/yaml_tree_renderer.cpp +0 -144
  1262. package/src/duckdb/src/common/types/bignum.cpp +0 -350
  1263. package/src/duckdb/src/common/types/row/block_iterator.cpp +0 -34
  1264. package/src/duckdb/src/execution/index/art/art_builder.cpp +0 -91
  1265. package/src/duckdb/src/execution/operator/persistent/physical_merge_into.cpp +0 -516
  1266. package/src/duckdb/src/execution/physical_plan/plan_merge_into.cpp +0 -132
  1267. package/src/duckdb/src/function/cast/bignum_casts.cpp +0 -315
  1268. package/src/duckdb/src/function/cast/variant/from_variant.cpp +0 -697
  1269. package/src/duckdb/src/function/cast/variant/to_json.cpp +0 -272
  1270. package/src/duckdb/src/function/cast/variant/to_variant.cpp +0 -193
  1271. package/src/duckdb/src/function/copy_blob.cpp +0 -157
  1272. package/src/duckdb/src/function/scalar/struct/struct_contains.cpp +0 -255
  1273. package/src/duckdb/src/function/scalar/variant/variant_extract.cpp +0 -234
  1274. package/src/duckdb/src/function/scalar/variant/variant_typeof.cpp +0 -70
  1275. package/src/duckdb/src/function/scalar/variant/variant_utils.cpp +0 -412
  1276. package/src/duckdb/src/function/table/direct_file_reader.cpp +0 -172
  1277. package/src/duckdb/src/function/table/system/duckdb_approx_database_count.cpp +0 -43
  1278. package/src/duckdb/src/function/table/system/logging_utils.cpp +0 -154
  1279. package/src/duckdb/src/include/duckdb/common/arena_linked_list.hpp +0 -169
  1280. package/src/duckdb/src/include/duckdb/common/bignum.hpp +0 -85
  1281. package/src/duckdb/src/include/duckdb/common/csv_writer.hpp +0 -153
  1282. package/src/duckdb/src/include/duckdb/common/encryption_functions.hpp +0 -54
  1283. package/src/duckdb/src/include/duckdb/common/encryption_key_manager.hpp +0 -80
  1284. package/src/duckdb/src/include/duckdb/common/enums/arrow_format_version.hpp +0 -33
  1285. package/src/duckdb/src/include/duckdb/common/enums/checkpoint_abort.hpp +0 -22
  1286. package/src/duckdb/src/include/duckdb/common/enums/copy_option_mode.hpp +0 -17
  1287. package/src/duckdb/src/include/duckdb/common/enums/merge_action_type.hpp +0 -19
  1288. package/src/duckdb/src/include/duckdb/common/enums/ordinality_request_type.hpp +0 -16
  1289. package/src/duckdb/src/include/duckdb/common/enums/thread_pin_mode.hpp +0 -17
  1290. package/src/duckdb/src/include/duckdb/common/enums/tuple_data_layout_enums.hpp +0 -25
  1291. package/src/duckdb/src/include/duckdb/common/operator/interpolate.hpp +0 -39
  1292. package/src/duckdb/src/include/duckdb/common/progress_bar/unscented_kalman_filter.hpp +0 -65
  1293. package/src/duckdb/src/include/duckdb/common/serializer/varint.hpp +0 -62
  1294. package/src/duckdb/src/include/duckdb/common/sorting/hashed_sort.hpp +0 -76
  1295. package/src/duckdb/src/include/duckdb/common/sorting/sort.hpp +0 -85
  1296. package/src/duckdb/src/include/duckdb/common/sorting/sort_key.hpp +0 -442
  1297. package/src/duckdb/src/include/duckdb/common/sorting/sort_projection_column.hpp +0 -21
  1298. package/src/duckdb/src/include/duckdb/common/sorting/sorted_run.hpp +0 -55
  1299. package/src/duckdb/src/include/duckdb/common/sorting/sorted_run_merger.hpp +0 -62
  1300. package/src/duckdb/src/include/duckdb/common/tree_renderer/yaml_tree_renderer.hpp +0 -40
  1301. package/src/duckdb/src/include/duckdb/common/types/bignum.hpp +0 -159
  1302. package/src/duckdb/src/include/duckdb/common/types/double_na_equal.hpp +0 -65
  1303. package/src/duckdb/src/include/duckdb/common/types/row/block_iterator.hpp +0 -360
  1304. package/src/duckdb/src/include/duckdb/common/types/string.hpp +0 -338
  1305. package/src/duckdb/src/include/duckdb/common/types/variant.hpp +0 -202
  1306. package/src/duckdb/src/include/duckdb/execution/index/art/art_builder.hpp +0 -55
  1307. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_merge_into.hpp +0 -87
  1308. package/src/duckdb/src/include/duckdb/function/cast/variant/array_to_variant.hpp +0 -66
  1309. package/src/duckdb/src/include/duckdb/function/cast/variant/json_to_variant.hpp +0 -283
  1310. package/src/duckdb/src/include/duckdb/function/cast/variant/list_to_variant.hpp +0 -70
  1311. package/src/duckdb/src/include/duckdb/function/cast/variant/primitive_to_variant.hpp +0 -399
  1312. package/src/duckdb/src/include/duckdb/function/cast/variant/struct_to_variant.hpp +0 -111
  1313. package/src/duckdb/src/include/duckdb/function/cast/variant/to_variant.hpp +0 -66
  1314. package/src/duckdb/src/include/duckdb/function/cast/variant/to_variant_fwd.hpp +0 -179
  1315. package/src/duckdb/src/include/duckdb/function/cast/variant/union_to_variant.hpp +0 -59
  1316. package/src/duckdb/src/include/duckdb/function/cast/variant/variant_to_variant.hpp +0 -275
  1317. package/src/duckdb/src/include/duckdb/function/scalar/variant_functions.hpp +0 -38
  1318. package/src/duckdb/src/include/duckdb/function/scalar/variant_utils.hpp +0 -85
  1319. package/src/duckdb/src/include/duckdb/function/table/direct_file_reader.hpp +0 -39
  1320. package/src/duckdb/src/include/duckdb/function/table/read_file.hpp +0 -83
  1321. package/src/duckdb/src/include/duckdb/main/database_file_path_manager.hpp +0 -39
  1322. package/src/duckdb/src/include/duckdb/main/extension/extension_loader.hpp +0 -120
  1323. package/src/duckdb/src/include/duckdb/main/extension_manager.hpp +0 -59
  1324. package/src/duckdb/src/include/duckdb/main/setting_info.hpp +0 -109
  1325. package/src/duckdb/src/include/duckdb/optimizer/cte_inlining.hpp +0 -50
  1326. package/src/duckdb/src/include/duckdb/optimizer/rule/date_trunc_simplification.hpp +0 -73
  1327. package/src/duckdb/src/include/duckdb/parser/statement/merge_into_statement.hpp +0 -72
  1328. package/src/duckdb/src/include/duckdb/parser/tableref/bound_ref_wrapper.hpp +0 -38
  1329. package/src/duckdb/src/include/duckdb/planner/expression_binder/projection_binder.hpp +0 -37
  1330. package/src/duckdb/src/include/duckdb/planner/logical_operator_deep_copy.hpp +0 -67
  1331. package/src/duckdb/src/include/duckdb/planner/operator/logical_merge_into.hpp +0 -75
  1332. package/src/duckdb/src/include/duckdb/storage/table/in_memory_checkpoint.hpp +0 -93
  1333. package/src/duckdb/src/include/duckdb/storage/table/row_id_column_data.hpp +0 -68
  1334. package/src/duckdb/src/include/duckdb/verification/explain_statement_verifier.hpp +0 -23
  1335. package/src/duckdb/src/main/capi/error_data-c.cpp +0 -46
  1336. package/src/duckdb/src/main/capi/expression-c.cpp +0 -57
  1337. package/src/duckdb/src/main/database_file_path_manager.cpp +0 -42
  1338. package/src/duckdb/src/main/extension/extension_loader.cpp +0 -234
  1339. package/src/duckdb/src/main/extension_manager.cpp +0 -115
  1340. package/src/duckdb/src/optimizer/cte_inlining.cpp +0 -225
  1341. package/src/duckdb/src/optimizer/pushdown/pushdown_outer_join.cpp +0 -201
  1342. package/src/duckdb/src/optimizer/rule/date_trunc_simplification.cpp +0 -446
  1343. package/src/duckdb/src/parser/statement/merge_into_statement.cpp +0 -167
  1344. package/src/duckdb/src/parser/tableref/bound_ref_wrapper.cpp +0 -29
  1345. package/src/duckdb/src/parser/transform/statement/transform_merge_into.cpp +0 -111
  1346. package/src/duckdb/src/planner/binder/statement/bind_merge_into.cpp +0 -335
  1347. package/src/duckdb/src/planner/binder/tableref/bind_bound_table_ref.cpp +0 -13
  1348. package/src/duckdb/src/planner/expression_binder/projection_binder.cpp +0 -46
  1349. package/src/duckdb/src/planner/logical_operator_deep_copy.cpp +0 -264
  1350. package/src/duckdb/src/planner/operator/logical_merge_into.cpp +0 -43
  1351. package/src/duckdb/src/storage/table/in_memory_checkpoint.cpp +0 -136
  1352. package/src/duckdb/src/storage/table/row_id_column_data.cpp +0 -173
  1353. package/src/duckdb/src/verification/explain_statement_verifier.cpp +0 -16
  1354. package/src/duckdb/third_party/mbedtls/include/psa/build_info.h +0 -20
  1355. package/src/duckdb/third_party/mbedtls/include/psa/crypto_se_driver.h +0 -1
  1356. package/src/duckdb/third_party/mbedtls/library/cipher_invasive.h +0 -1
  1357. package/src/duckdb/third_party/pdqsort/pdqsort.h +0 -550
  1358. package/src/duckdb/third_party/ska_sort/ska_sort.hpp +0 -1494
  1359. package/src/duckdb/third_party/vergesort/detail/insertion_sort.h +0 -56
  1360. package/src/duckdb/third_party/vergesort/detail/is_sorted_until.h +0 -51
  1361. package/src/duckdb/third_party/vergesort/detail/iter_sort3.h +0 -48
  1362. package/src/duckdb/third_party/vergesort/detail/log2.h +0 -41
  1363. package/src/duckdb/third_party/vergesort/detail/prevnext.h +0 -68
  1364. package/src/duckdb/third_party/vergesort/detail/quicksort.h +0 -138
  1365. package/src/duckdb/third_party/vergesort/vergesort.h +0 -352
  1366. package/src/duckdb/ub_extension_parquet_reader_variant.cpp +0 -6
  1367. package/src/duckdb/ub_src_common_sorting.cpp +0 -8
  1368. package/src/duckdb/ub_src_function_cast_variant.cpp +0 -6
  1369. package/src/duckdb/ub_src_function_scalar_variant.cpp +0 -6
@@ -16,11 +16,11 @@
16
16
  #include "duckdb/common/common.hpp"
17
17
  #include "duckdb/common/encryption_state.hpp"
18
18
  #include "duckdb/common/enums/access_mode.hpp"
19
- #include "duckdb/common/enums/thread_pin_mode.hpp"
20
19
  #include "duckdb/common/enums/compression_type.hpp"
21
20
  #include "duckdb/common/enums/optimizer_type.hpp"
22
21
  #include "duckdb/common/enums/order_type.hpp"
23
22
  #include "duckdb/common/enums/set_scope.hpp"
23
+ #include "duckdb/common/enums/window_aggregation_mode.hpp"
24
24
  #include "duckdb/common/file_system.hpp"
25
25
  #include "duckdb/common/set.hpp"
26
26
  #include "duckdb/common/types/value.hpp"
@@ -29,14 +29,16 @@
29
29
  #include "duckdb/execution/index/index_type_set.hpp"
30
30
  #include "duckdb/function/cast/default_casts.hpp"
31
31
  #include "duckdb/function/replacement_scan.hpp"
32
+ #include "duckdb/main/client_properties.hpp"
32
33
  #include "duckdb/optimizer/optimizer_extension.hpp"
33
34
  #include "duckdb/parser/parsed_data/create_info.hpp"
34
35
  #include "duckdb/parser/parser_extension.hpp"
35
36
  #include "duckdb/planner/operator_extension.hpp"
36
37
  #include "duckdb/storage/compression/bitpacking.hpp"
37
38
  #include "duckdb/function/encoding_function.hpp"
38
- #include "duckdb/main/setting_info.hpp"
39
39
  #include "duckdb/logging/log_manager.hpp"
40
+ #include "duckdb/common/enums/debug_vector_verification.hpp"
41
+ #include "duckdb/logging/logging.hpp"
40
42
 
41
43
  namespace duckdb {
42
44
 
@@ -55,12 +57,50 @@ class SecretManager;
55
57
  class CompressionInfo;
56
58
  class EncryptionUtil;
57
59
  class HTTPUtil;
58
- class DatabaseFilePathManager;
59
60
 
60
61
  struct CompressionFunctionSet;
61
62
  struct DatabaseCacheEntry;
62
63
  struct DBConfig;
63
- struct SettingLookupResult;
64
+
65
+ enum class CheckpointAbort : uint8_t {
66
+ NO_ABORT = 0,
67
+ DEBUG_ABORT_BEFORE_TRUNCATE = 1,
68
+ DEBUG_ABORT_BEFORE_HEADER = 2,
69
+ DEBUG_ABORT_AFTER_FREE_LIST_WRITE = 3
70
+ };
71
+
72
+ typedef void (*set_global_function_t)(DatabaseInstance *db, DBConfig &config, const Value &parameter);
73
+ typedef void (*set_local_function_t)(ClientContext &context, const Value &parameter);
74
+ typedef void (*reset_global_function_t)(DatabaseInstance *db, DBConfig &config);
75
+ typedef void (*reset_local_function_t)(ClientContext &context);
76
+ typedef Value (*get_setting_function_t)(const ClientContext &context);
77
+
78
+ struct ConfigurationOption {
79
+ const char *name;
80
+ const char *description;
81
+ const char *parameter_type;
82
+ set_global_function_t set_global;
83
+ set_local_function_t set_local;
84
+ reset_global_function_t reset_global;
85
+ reset_local_function_t reset_local;
86
+ get_setting_function_t get_setting;
87
+ };
88
+
89
+ typedef void (*set_option_callback_t)(ClientContext &context, SetScope scope, Value &parameter);
90
+
91
+ struct ExtensionOption {
92
+ // NOLINTNEXTLINE: work around bug in clang-tidy
93
+ ExtensionOption(string description_p, LogicalType type_p, set_option_callback_t set_function_p,
94
+ Value default_value_p)
95
+ : description(std::move(description_p)), type(std::move(type_p)), set_function(set_function_p),
96
+ default_value(std::move(default_value_p)) {
97
+ }
98
+
99
+ string description;
100
+ LogicalType type;
101
+ set_option_callback_t set_function;
102
+ Value default_value;
103
+ };
64
104
 
65
105
  class SerializationCompatibility {
66
106
  public:
@@ -134,8 +174,12 @@ struct DBConfigOptions {
134
174
  bool buffer_manager_track_eviction_timestamps = false;
135
175
  //! Whether or not to allow printing unredacted secrets
136
176
  bool allow_unredacted_secrets = false;
137
- //! Disables invalidating the database instance when encountering a fatal error.
138
- bool disable_database_invalidation = false;
177
+ //! The collation type of the database
178
+ string collation = string();
179
+ //! The order type used when none is specified (default: ASC)
180
+ OrderType default_order_type = OrderType::ASCENDING;
181
+ //! NULL ordering used when none is specified (default: NULLS LAST)
182
+ DefaultOrderByNullType default_null_order = DefaultOrderByNullType::NULLS_LAST;
139
183
  //! enable COPY and related commands
140
184
  bool enable_external_access = true;
141
185
  //! Whether or not the global http metadata cache is used
@@ -152,6 +196,8 @@ struct DBConfigOptions {
152
196
  bool checkpoint_on_shutdown = true;
153
197
  //! Serialize the metadata on checkpoint with compatibility for a given DuckDB version.
154
198
  SerializationCompatibility serialization_compatibility = SerializationCompatibility::Default();
199
+ //! Debug flag that decides when a checkpoing should be aborted. Only used for testing purposes.
200
+ CheckpointAbort checkpoint_abort = CheckpointAbort::NO_ABORT;
155
201
  //! Initialize the database with the standard set of DuckDB functions
156
202
  //! You should probably not touch this unless you know what you are doing
157
203
  bool initialize_default_database = true;
@@ -165,6 +211,19 @@ struct DBConfigOptions {
165
211
  set<CompressionType> disabled_compression_methods;
166
212
  //! Force a specific bitpacking mode to be used when using the bitpacking compression method
167
213
  BitpackingMode force_bitpacking_mode = BitpackingMode::AUTO;
214
+ //! Debug setting for window aggregation mode: (window, combine, separate)
215
+ WindowAggregationMode window_mode = WindowAggregationMode::WINDOW;
216
+ //! Whether preserving insertion order should be preserved
217
+ bool preserve_insertion_order = true;
218
+ //! Whether Arrow Arrays use Large or Regular buffers
219
+ ArrowOffsetSize arrow_offset_size = ArrowOffsetSize::REGULAR;
220
+ //! Whether LISTs should produce Arrow ListViews
221
+ bool arrow_use_list_view = false;
222
+ //! Whenever a DuckDB type does not have a clear native or canonical extension match in Arrow, export the types
223
+ //! with a duckdb.type_name extension name
224
+ bool arrow_lossless_conversion = false;
225
+ //! Whether when producing arrow objects we produce string_views or regular strings
226
+ bool produce_arrow_string_views = false;
168
227
  //! Database configuration variables as controlled by SET
169
228
  case_insensitive_map_t<Value> set_variables;
170
229
  //! Database configuration variable default values;
@@ -175,6 +234,16 @@ struct DBConfigOptions {
175
234
  bool allow_unsigned_extensions = false;
176
235
  //! Whether community extensions should be loaded
177
236
  bool allow_community_extensions = true;
237
+ //! Whether extensions with missing metadata should be loaded
238
+ bool allow_extensions_metadata_mismatch = false;
239
+ //! Enable emitting FSST Vectors
240
+ bool enable_fsst_vectors = false;
241
+ //! Enable VIEWs to create dependencies
242
+ bool enable_view_dependencies = false;
243
+ //! Enable macros to create dependencies
244
+ bool enable_macro_dependencies = false;
245
+ //! Start transactions immediately in all attached databases - instead of lazily when a database is referenced
246
+ bool immediate_transaction_mode = false;
178
247
  //! Debug setting - how to initialize blocks in the storage layer when allocating
179
248
  DebugInitialize debug_initialize = DebugInitialize::NO_INITIALIZE;
180
249
  //! The set of user-provided options
@@ -195,14 +264,30 @@ struct DBConfigOptions {
195
264
  string duckdb_api;
196
265
  //! Metadata from DuckDB callers
197
266
  string custom_user_agent;
198
- //! Encrypt the temp files
199
- bool temp_file_encryption = false;
267
+ //! Use old implicit casting style (i.e. allow everything to be implicitly casted to VARCHAR)
268
+ bool old_implicit_casting = false;
200
269
  //! The default block allocation size for new duckdb database files (new as-in, they do not yet exist).
201
- idx_t default_block_alloc_size = DEFAULT_BLOCK_ALLOC_SIZE;
270
+ idx_t default_block_alloc_size = DUCKDB_BLOCK_ALLOC_SIZE;
202
271
  //! The default block header size for new duckdb database files.
203
272
  idx_t default_block_header_size = DUCKDB_BLOCK_HEADER_STORAGE_SIZE;
204
273
  //! Whether or not to abort if a serialization exception is thrown during WAL playback (when reading truncated WAL)
205
274
  bool abort_on_wal_failure = false;
275
+ //! The index_scan_percentage sets a threshold for index scans.
276
+ //! If fewer than MAX(index_scan_max_count, index_scan_percentage * total_row_count)
277
+ //! rows match, we perform an index scan instead of a table scan.
278
+ double index_scan_percentage = 0.001;
279
+ //! The index_scan_max_count sets a threshold for index scans.
280
+ //! If fewer than MAX(index_scan_max_count, index_scan_percentage * total_row_count)
281
+ //! rows match, we perform an index scan instead of a table scan.
282
+ idx_t index_scan_max_count = STANDARD_VECTOR_SIZE;
283
+ //! The maximum number of schemas we will look through for "did you mean..." style errors in the catalog
284
+ idx_t catalog_error_max_schemas = 100;
285
+ //! Whether or not to always write to the WAL file, even if this is not required
286
+ bool debug_skip_checkpoint_on_commit = false;
287
+ //! Vector verification to enable (debug setting only)
288
+ DebugVectorVerification debug_verify_vector = DebugVectorVerification::NONE;
289
+ //! The maximum amount of vacuum tasks to schedule during a checkpoint
290
+ idx_t max_vacuum_tasks = 100;
206
291
  //! Paths that are explicitly allowed, even if enable_external_access is false
207
292
  unordered_set<string> allowed_paths;
208
293
  //! Directories that are explicitly allowed, even if enable_external_access is false
@@ -211,14 +296,14 @@ struct DBConfigOptions {
211
296
  LogConfig log_config = LogConfig();
212
297
  //! Whether to enable external file caching using CachingFileSystem
213
298
  bool enable_external_file_cache = true;
299
+ //! Output version of arrow depending on the format version
300
+ ArrowFormatVersion arrow_output_version = V1_0;
214
301
  //! Partially process tasks before rescheduling - allows for more scheduler fairness between separate queries
215
302
  #ifdef DUCKDB_ALTERNATIVE_VERIFY
216
303
  bool scheduler_process_partial = true;
217
304
  #else
218
305
  bool scheduler_process_partial = false;
219
306
  #endif
220
- //! Whether to pin threads to cores (linux only, default AUTOMATIC: on when there are more than 64 cores)
221
- ThreadPinMode pin_threads = ThreadPinMode::AUTO;
222
307
 
223
308
  bool operator==(const DBConfigOptions &other) const;
224
309
  };
@@ -233,7 +318,7 @@ public:
233
318
  DUCKDB_API DBConfig(const case_insensitive_map_t<Value> &config_dict, bool read_only);
234
319
  DUCKDB_API ~DBConfig();
235
320
 
236
- mutable mutex config_lock;
321
+ mutex config_lock;
237
322
  //! Replacement table scans are automatically attempted when a table name cannot be found in the schema
238
323
  vector<ReplacementScan> replacement_scans;
239
324
 
@@ -272,8 +357,6 @@ public:
272
357
  shared_ptr<HTTPUtil> http_util;
273
358
  //! Reference to the database cache entry (if any)
274
359
  shared_ptr<DatabaseCacheEntry> db_cache_entry;
275
- //! Reference to the database file path manager
276
- shared_ptr<DatabaseFilePathManager> path_manager;
277
360
 
278
361
  public:
279
362
  DUCKDB_API static DBConfig &GetConfig(ClientContext &context);
@@ -282,32 +365,26 @@ public:
282
365
  DUCKDB_API static const DBConfig &GetConfig(const ClientContext &context);
283
366
  DUCKDB_API static const DBConfig &GetConfig(const DatabaseInstance &db);
284
367
  DUCKDB_API static vector<ConfigurationOption> GetOptions();
285
- DUCKDB_API static vector<ConfigurationAlias> GetAliases();
286
368
  DUCKDB_API static idx_t GetOptionCount();
287
- DUCKDB_API static idx_t GetAliasCount();
288
369
  DUCKDB_API static vector<string> GetOptionNames();
289
370
  DUCKDB_API static bool IsInMemoryDatabase(const char *database_path);
290
371
 
291
372
  DUCKDB_API void AddExtensionOption(const string &name, string description, LogicalType parameter,
292
- const Value &default_value = Value(), set_option_callback_t function = nullptr,
293
- SetScope default_scope = SetScope::SESSION);
373
+ const Value &default_value = Value(), set_option_callback_t function = nullptr);
294
374
  //! Fetch an option by index. Returns a pointer to the option, or nullptr if out of range
295
375
  DUCKDB_API static optional_ptr<const ConfigurationOption> GetOptionByIndex(idx_t index);
296
- //! Fetcha n alias by index, or nullptr if out of range
297
- DUCKDB_API static optional_ptr<const ConfigurationAlias> GetAliasByIndex(idx_t index);
298
376
  //! Fetch an option by name. Returns a pointer to the option, or nullptr if none exists.
299
- DUCKDB_API static optional_ptr<const ConfigurationOption> GetOptionByName(const String &name);
377
+ DUCKDB_API static optional_ptr<const ConfigurationOption> GetOptionByName(const string &name);
300
378
  DUCKDB_API void SetOption(const ConfigurationOption &option, const Value &value);
301
- DUCKDB_API void SetOption(optional_ptr<DatabaseInstance> db, const ConfigurationOption &option, const Value &value);
379
+ DUCKDB_API void SetOption(DatabaseInstance *db, const ConfigurationOption &option, const Value &value);
302
380
  DUCKDB_API void SetOptionByName(const string &name, const Value &value);
303
381
  DUCKDB_API void SetOptionsByName(const case_insensitive_map_t<Value> &values);
304
- DUCKDB_API void ResetOption(optional_ptr<DatabaseInstance> db, const ConfigurationOption &option);
382
+ DUCKDB_API void ResetOption(DatabaseInstance *db, const ConfigurationOption &option);
305
383
  DUCKDB_API void SetOption(const string &name, Value value);
306
- DUCKDB_API void ResetOption(const String &name);
307
- DUCKDB_API void ResetGenericOption(const String &name);
384
+ DUCKDB_API void ResetOption(const string &name);
308
385
  static LogicalType ParseLogicalType(const string &type);
309
386
 
310
- DUCKDB_API void CheckLock(const String &name);
387
+ DUCKDB_API void CheckLock(const string &name);
311
388
 
312
389
  DUCKDB_API static idx_t ParseMemoryLimit(const string &arg);
313
390
 
@@ -341,28 +418,19 @@ public:
341
418
  void SetDefaultMaxMemory();
342
419
  void SetDefaultTempDirectory();
343
420
 
344
- OrderType ResolveOrder(ClientContext &context, OrderType order_type) const;
345
- OrderByNullType ResolveNullOrder(ClientContext &context, OrderType order_type, OrderByNullType null_type) const;
421
+ OrderType ResolveOrder(OrderType order_type) const;
422
+ OrderByNullType ResolveNullOrder(OrderType order_type, OrderByNullType null_type) const;
346
423
  const string UserAgent() const;
347
424
 
348
- SettingLookupResult TryGetCurrentSetting(const string &key, Value &result) const;
349
-
350
- template <class OP, class SOURCE>
351
- static typename std::enable_if<std::is_enum<typename OP::RETURN_TYPE>::value, typename OP::RETURN_TYPE>::type
352
- GetSetting(const SOURCE &source) {
353
- return EnumUtil::FromString<typename OP::RETURN_TYPE>(
354
- GetSettingInternal(source, OP::Name, OP::DefaultValue).ToString());
355
- }
356
-
357
- template <class OP, class SOURCE>
358
- static typename std::enable_if<!std::is_enum<typename OP::RETURN_TYPE>::value, typename OP::RETURN_TYPE>::type
359
- GetSetting(const SOURCE &source) {
360
- return GetSettingInternal(source, OP::Name, OP::DefaultValue).template GetValue<typename OP::RETURN_TYPE>();
425
+ template <class OP>
426
+ typename OP::RETURN_TYPE GetSetting(const ClientContext &context) {
427
+ std::lock_guard<mutex> lock(config_lock);
428
+ return OP::GetSetting(context).template GetValue<typename OP::RETURN_TYPE>();
361
429
  }
362
430
 
363
431
  template <class OP>
364
- Value GetSettingValue(const ClientContext &context) const {
365
- lock_guard<mutex> lock(config_lock);
432
+ Value GetSettingValue(const ClientContext &context) {
433
+ std::lock_guard<mutex> lock(config_lock);
366
434
  return OP::GetSetting(context);
367
435
  }
368
436
 
@@ -371,11 +439,6 @@ public:
371
439
  void AddAllowedPath(const string &path);
372
440
  string SanitizeAllowedPath(const string &path) const;
373
441
 
374
- private:
375
- static Value GetSettingInternal(const DatabaseInstance &db, const char *setting, const char *default_value);
376
- static Value GetSettingInternal(const DBConfig &config, const char *setting, const char *default_value);
377
- static Value GetSettingInternal(const ClientContext &context, const char *setting, const char *default_value);
378
-
379
442
  private:
380
443
  unique_ptr<CompressionFunctionSet> compression_functions;
381
444
  unique_ptr<EncodingFunctionSet> encoding_functions;
@@ -12,9 +12,9 @@
12
12
  #include "duckdb/main/capi/extension_api.hpp"
13
13
  #include "duckdb/main/config.hpp"
14
14
  #include "duckdb/main/extension.hpp"
15
+ #include "duckdb/main/extension_install_info.hpp"
16
+ #include "duckdb/main/settings.hpp"
15
17
  #include "duckdb/main/valid_checker.hpp"
16
- #include "duckdb/main/extension/extension_loader.hpp"
17
- #include "duckdb/main/extension_manager.hpp"
18
18
 
19
19
  namespace duckdb {
20
20
  class BufferManager;
@@ -23,7 +23,6 @@ class StorageManager;
23
23
  class Catalog;
24
24
  class TransactionManager;
25
25
  class ConnectionManager;
26
- class ExtensionManager;
27
26
  class FileSystem;
28
27
  class TaskScheduler;
29
28
  class ObjectCache;
@@ -34,6 +33,12 @@ struct DatabaseCacheEntry;
34
33
  class LogManager;
35
34
  class ExternalFileCache;
36
35
 
36
+ struct ExtensionInfo {
37
+ bool is_loaded;
38
+ unique_ptr<ExtensionInstallInfo> install_info;
39
+ unique_ptr<ExtensionLoadedInfo> load_info;
40
+ };
41
+
37
42
  class DatabaseInstance : public enable_shared_from_this<DatabaseInstance> {
38
43
  friend class DuckDB;
39
44
 
@@ -54,9 +59,9 @@ public:
54
59
  DUCKDB_API TaskScheduler &GetScheduler();
55
60
  DUCKDB_API ObjectCache &GetObjectCache();
56
61
  DUCKDB_API ConnectionManager &GetConnectionManager();
57
- DUCKDB_API ExtensionManager &GetExtensionManager();
58
62
  DUCKDB_API ValidChecker &GetValidChecker();
59
63
  DUCKDB_API LogManager &GetLogManager() const;
64
+ DUCKDB_API void SetExtensionLoaded(const string &extension_name, ExtensionInstallInfo &install_info);
60
65
 
61
66
  DUCKDB_API const duckdb_ext_api_v1 GetExtensionAPIV1();
62
67
 
@@ -65,15 +70,16 @@ public:
65
70
  DUCKDB_API static DatabaseInstance &GetDatabase(ClientContext &context);
66
71
  DUCKDB_API static const DatabaseInstance &GetDatabase(const ClientContext &context);
67
72
 
73
+ DUCKDB_API const unordered_map<string, ExtensionInfo> &GetExtensions();
68
74
  DUCKDB_API bool ExtensionIsLoaded(const string &name);
69
75
 
70
76
  DUCKDB_API SettingLookupResult TryGetCurrentSetting(const string &key, Value &result) const;
71
77
 
72
- DUCKDB_API shared_ptr<EncryptionUtil> GetEncryptionUtil() const;
73
-
74
- shared_ptr<AttachedDatabase> CreateAttachedDatabase(ClientContext &context, AttachInfo &info,
78
+ unique_ptr<AttachedDatabase> CreateAttachedDatabase(ClientContext &context, AttachInfo &info,
75
79
  AttachOptions &options);
76
80
 
81
+ void AddExtensionInfo(const string &name, const ExtensionLoadedInfo &info);
82
+
77
83
  private:
78
84
  void Initialize(const char *path, DBConfig *config);
79
85
  void LoadExtensionSettings();
@@ -87,7 +93,7 @@ private:
87
93
  unique_ptr<TaskScheduler> scheduler;
88
94
  unique_ptr<ObjectCache> object_cache;
89
95
  unique_ptr<ConnectionManager> connection_manager;
90
- unique_ptr<ExtensionManager> extension_manager;
96
+ unordered_map<string, ExtensionInfo> loaded_extensions_info;
91
97
  ValidChecker db_validity;
92
98
  unique_ptr<DatabaseFileSystem> db_file_system;
93
99
  shared_ptr<LogManager> log_manager;
@@ -114,26 +120,24 @@ public:
114
120
  template <class T>
115
121
  void LoadStaticExtension() {
116
122
  T extension;
117
- auto &manager = ExtensionManager::Get(*instance);
118
- auto info = manager.BeginLoad(extension.Name());
119
- if (!info) {
120
- // already loaded - return
123
+ if (ExtensionIsLoaded(extension.Name())) {
121
124
  return;
122
125
  }
123
-
124
- // Instantiate a new loader
125
- ExtensionLoader loader(*instance, extension.Name());
126
-
127
- // Call the Load method of the extension
128
- extension.Load(loader);
129
-
130
- // Finalize the loading process
131
- loader.FinalizeLoad();
132
-
126
+ extension.Load(*this);
133
127
  ExtensionInstallInfo install_info;
134
128
  install_info.mode = ExtensionInstallMode::STATICALLY_LINKED;
135
129
  install_info.version = extension.Version();
136
- info->FinishLoad(install_info);
130
+ instance->SetExtensionLoaded(extension.Name(), install_info);
131
+ }
132
+
133
+ // DEPRECATED function that some extensions may still use to call their own Load method from the
134
+ // _init function of their loadable extension. Don't use this. Instead opt for a static LoadInternal function called
135
+ // from both the _init function and the Extension::Load. (see autocomplete extension)
136
+ // TODO: when to remove this function?
137
+ template <class T>
138
+ void LoadExtension() {
139
+ T extension;
140
+ extension.Load(*this);
137
141
  }
138
142
 
139
143
  DUCKDB_API FileSystem &GetFileSystem();
@@ -12,7 +12,6 @@
12
12
  #include "duckdb/common/opener_file_system.hpp"
13
13
  #include "duckdb/main/config.hpp"
14
14
  #include "duckdb/main/database.hpp"
15
- #include "duckdb/logging/log_manager.hpp"
16
15
 
17
16
  namespace duckdb {
18
17
  class DatabaseInstance;
@@ -17,7 +17,6 @@
17
17
  #include "duckdb/common/optional_ptr.hpp"
18
18
  #include "duckdb/main/config.hpp"
19
19
  #include "duckdb/parser/parsed_data/attach_info.hpp"
20
- #include "duckdb/main/database_file_path_manager.hpp"
21
20
 
22
21
  namespace duckdb {
23
22
  class AttachedDatabase;
@@ -49,14 +48,9 @@ public:
49
48
  //! Get an attached database by its name
50
49
  optional_ptr<AttachedDatabase> GetDatabase(ClientContext &context, const string &name);
51
50
  //! Attach a new database
52
- shared_ptr<AttachedDatabase> AttachDatabase(ClientContext &context, AttachInfo &info, AttachOptions &options);
53
-
54
- optional_ptr<AttachedDatabase> FinalizeAttach(ClientContext &context, AttachInfo &info,
55
- shared_ptr<AttachedDatabase> database);
51
+ optional_ptr<AttachedDatabase> AttachDatabase(ClientContext &context, AttachInfo &info, AttachOptions &options);
56
52
  //! Detach an existing database
57
53
  void DetachDatabase(ClientContext &context, const string &name, OnEntryNotFound if_not_found);
58
- //! Rollback the attach of a database
59
- shared_ptr<AttachedDatabase> DetachInternal(const string &name);
60
54
  //! Returns a reference to the system catalog
61
55
  Catalog &GetSystemCatalog();
62
56
 
@@ -64,7 +58,9 @@ public:
64
58
  void SetDefaultDatabase(ClientContext &context, const string &new_value);
65
59
 
66
60
  //! Inserts a path to name mapping to the database paths map
67
- InsertDatabasePathResult InsertDatabasePath(const AttachInfo &info, AttachOptions &options);
61
+ void InsertDatabasePath(ClientContext &context, const string &path, const string &name);
62
+ //! Erases a path from the database paths map
63
+ void EraseDatabasePath(const string &path);
68
64
 
69
65
  //! Returns the database type. This might require checking the header of the file, in which case the file handle is
70
66
  //! necessary. We can only grab the file handle, if it is not yet held, even for uncommitted changes. Thus, we have
@@ -72,12 +68,10 @@ public:
72
68
  void GetDatabaseType(ClientContext &context, AttachInfo &info, const DBConfig &config, AttachOptions &options);
73
69
  //! Scans the catalog set and adds each committed database entry, and each database entry of the current
74
70
  //! transaction, to a vector holding AttachedDatabase references
75
- vector<shared_ptr<AttachedDatabase>> GetDatabases(ClientContext &context,
76
- const optional_idx max_db_count = optional_idx());
71
+ vector<reference<AttachedDatabase>> GetDatabases(ClientContext &context,
72
+ const optional_idx max_db_count = optional_idx());
77
73
  //! Scans the catalog set and returns each committed database entry
78
- vector<shared_ptr<AttachedDatabase>> GetDatabases();
79
- //! Returns the approximate count of attached databases.
80
- idx_t ApproxDatabaseCount();
74
+ vector<reference<AttachedDatabase>> GetDatabases();
81
75
  //! Removes all databases from the catalog set. This is necessary for the database instance's destructor,
82
76
  //! as the database manager has to be alive when destroying the catalog set objects.
83
77
  void ResetDatabases(unique_ptr<TaskScheduler> &scheduler);
@@ -103,13 +97,16 @@ public:
103
97
  //! Gets a list of all attached database paths
104
98
  vector<string> GetAttachedDatabasePaths();
105
99
 
100
+ private:
101
+ //! Returns a database with a specified path
102
+ optional_ptr<AttachedDatabase> GetDatabaseFromPath(ClientContext &context, const string &path);
103
+ void CheckPathConflict(ClientContext &context, const string &path);
104
+
106
105
  private:
107
106
  //! The system database is a special database that holds system entries (e.g. functions)
108
- shared_ptr<AttachedDatabase> system;
109
- //! Lock for databases
110
- mutex databases_lock;
107
+ unique_ptr<AttachedDatabase> system;
111
108
  //! The set of attached databases
112
- case_insensitive_map_t<shared_ptr<AttachedDatabase>> databases;
109
+ unique_ptr<CatalogSet> databases;
113
110
  //! The next object id handed out by the NextOid method
114
111
  atomic<idx_t> next_oid;
115
112
  //! The current query number
@@ -118,8 +115,13 @@ private:
118
115
  atomic<transaction_t> current_transaction_id;
119
116
  //! The current default database
120
117
  string default_database;
121
- //! Manager for ensuring we never open the same database file twice in the same program
122
- shared_ptr<DatabaseFilePathManager> path_manager;
118
+
119
+ //! The lock to add entries to the database path map
120
+ mutex db_paths_lock;
121
+ //! A set containing all attached database path
122
+ //! This allows to attach many databases efficiently, and to avoid attaching the
123
+ //! same file path twice
124
+ case_insensitive_set_t db_paths;
123
125
  };
124
126
 
125
127
  } // namespace duckdb
@@ -13,13 +13,11 @@
13
13
 
14
14
  namespace duckdb {
15
15
 
16
- class QueryContext;
17
-
18
16
  struct DBPathAndType {
19
17
  //! Parse database extension type and rest of path from combined form (type:path)
20
18
  static void ExtractExtensionPrefix(string &path, string &db_type);
21
19
  //! Check the magic bytes of a file and set the database type based on that
22
- static void CheckMagicBytes(QueryContext context, FileSystem &fs, string &path, string &db_type);
20
+ static void CheckMagicBytes(FileSystem &fs, string &path, string &db_type);
23
21
 
24
22
  //! Run ExtractExtensionPrefix followed by CheckMagicBytes
25
23
  static void ResolveDatabaseType(FileSystem &fs, string &path, string &db_type);
@@ -11,11 +11,11 @@
11
11
  #include "duckdb/main/connection_manager.hpp"
12
12
  #include "duckdb/main/database.hpp"
13
13
  #include "duckdb/common/unordered_map.hpp"
14
+ #include "duckdb/function/replacement_scan.hpp"
14
15
  #include <functional>
15
16
 
16
17
  namespace duckdb {
17
18
  class DBInstanceCache;
18
- class DatabaseFilePathManager;
19
19
 
20
20
  struct DatabaseCacheEntry {
21
21
  DatabaseCacheEntry();
@@ -23,13 +23,12 @@ struct DatabaseCacheEntry {
23
23
  ~DatabaseCacheEntry();
24
24
 
25
25
  weak_ptr<DuckDB> database;
26
- mutex update_database_mutex;
27
26
  };
28
27
 
29
28
  class DBInstanceCache {
30
29
  public:
31
- DBInstanceCache();
32
- ~DBInstanceCache();
30
+ DBInstanceCache() {
31
+ }
33
32
 
34
33
  //! Gets a DB Instance from the cache if already exists (Fails if the configurations do not match)
35
34
  shared_ptr<DuckDB> GetInstance(const string &database, const DBConfig &config_dict);
@@ -43,7 +42,6 @@ public:
43
42
  const std::function<void(DuckDB &)> &on_create = nullptr);
44
43
 
45
44
  private:
46
- shared_ptr<DatabaseFilePathManager> path_manager;
47
45
  //! A map with the cached instances <absolute_path/instance>
48
46
  unordered_map<string, weak_ptr<DatabaseCacheEntry>> db_instances;
49
47
 
@@ -51,10 +49,8 @@ private:
51
49
  mutex cache_lock;
52
50
 
53
51
  private:
54
- shared_ptr<DuckDB> GetInstanceInternal(const string &database, const DBConfig &config,
55
- std::unique_lock<std::mutex> &db_instances_lock);
52
+ shared_ptr<DuckDB> GetInstanceInternal(const string &database, const DBConfig &config_dict);
56
53
  shared_ptr<DuckDB> CreateInstanceInternal(const string &database, DBConfig &config_dict, bool cache_instance,
57
- std::unique_lock<std::mutex> db_instances_lock,
58
54
  const std::function<void(DuckDB &)> &on_create);
59
55
  };
60
56
  } // namespace duckdb
@@ -13,7 +13,6 @@
13
13
  #include "duckdb/common/map.hpp"
14
14
 
15
15
  namespace duckdb {
16
- class String;
17
16
  class ClientContext;
18
17
  class DatabaseInstance;
19
18
  class TransactionException;
@@ -53,8 +52,7 @@ public:
53
52
  return Get(context).FormatException(error_type, params...);
54
53
  }
55
54
 
56
- DUCKDB_API static InvalidInputException InvalidUnicodeError(const String &input, const string &context);
57
-
55
+ DUCKDB_API static InvalidInputException InvalidUnicodeError(const string &input, const string &context);
58
56
  DUCKDB_API static FatalException InvalidatedDatabase(ClientContext &context, const string &invalidated_msg);
59
57
  DUCKDB_API static TransactionException InvalidatedTransaction(ClientContext &context);
60
58
 
@@ -12,14 +12,14 @@
12
12
  #include "duckdb/common/winapi.hpp"
13
13
 
14
14
  namespace duckdb {
15
- class ExtensionLoader;
15
+ class DuckDB;
16
16
 
17
17
  //! The Extension class is the base class used to define extensions
18
18
  class Extension {
19
19
  public:
20
20
  DUCKDB_API virtual ~Extension();
21
21
 
22
- DUCKDB_API virtual void Load(ExtensionLoader &db) = 0;
22
+ DUCKDB_API virtual void Load(DuckDB &db) = 0;
23
23
  DUCKDB_API virtual std::string Name() = 0;
24
24
  DUCKDB_API virtual std::string Version() const {
25
25
  return "";