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
@@ -5,10 +5,9 @@
5
5
 
6
6
  namespace duckdb {
7
7
 
8
- namespace {
9
-
10
8
  struct ListBindData : public FunctionData {
11
9
  explicit ListBindData(const LogicalType &stype_p);
10
+ ~ListBindData() override;
12
11
 
13
12
  LogicalType stype;
14
13
  ListSegmentFunctions functions;
@@ -29,6 +28,9 @@ ListBindData::ListBindData(const LogicalType &stype_p) : stype(stype_p) {
29
28
  GetSegmentDataFunctions(functions, type);
30
29
  }
31
30
 
31
+ ListBindData::~ListBindData() {
32
+ }
33
+
32
34
  struct ListAggState {
33
35
  LinkedList linked_list;
34
36
  };
@@ -45,8 +47,8 @@ struct ListFunction {
45
47
  }
46
48
  };
47
49
 
48
- void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_data, idx_t input_count, Vector &state_vector,
49
- idx_t count) {
50
+ static void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_data, idx_t input_count,
51
+ Vector &state_vector, idx_t count) {
50
52
 
51
53
  D_ASSERT(input_count == 1);
52
54
  auto &input = inputs[0];
@@ -66,7 +68,8 @@ void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_data, id
66
68
  }
67
69
  }
68
70
 
69
- void ListAbsorbFunction(Vector &states_vector, Vector &combined, AggregateInputData &aggr_input_data, idx_t count) {
71
+ static void ListAbsorbFunction(Vector &states_vector, Vector &combined, AggregateInputData &aggr_input_data,
72
+ idx_t count) {
70
73
  D_ASSERT(aggr_input_data.combine_type == AggregateCombineType::ALLOW_DESTRUCTIVE);
71
74
 
72
75
  UnifiedVectorFormat states_data;
@@ -96,8 +99,8 @@ void ListAbsorbFunction(Vector &states_vector, Vector &combined, AggregateInputD
96
99
  }
97
100
  }
98
101
 
99
- void ListFinalize(Vector &states_vector, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
100
- idx_t offset) {
102
+ static void ListFinalize(Vector &states_vector, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
103
+ idx_t offset) {
101
104
 
102
105
  UnifiedVectorFormat states_data;
103
106
  states_vector.ToUnifiedFormat(count, states_data);
@@ -146,7 +149,8 @@ void ListFinalize(Vector &states_vector, AggregateInputData &aggr_input_data, Ve
146
149
  ListVector::SetListSize(result, total_len);
147
150
  }
148
151
 
149
- void ListCombineFunction(Vector &states_vector, Vector &combined, AggregateInputData &aggr_input_data, idx_t count) {
152
+ static void ListCombineFunction(Vector &states_vector, Vector &combined, AggregateInputData &aggr_input_data,
153
+ idx_t count) {
150
154
 
151
155
  // Can we use destructive combining?
152
156
  if (aggr_input_data.combine_type == AggregateCombineType::ALLOW_DESTRUCTIVE) {
@@ -182,18 +186,24 @@ void ListCombineFunction(Vector &states_vector, Vector &combined, AggregateInput
182
186
 
183
187
  unique_ptr<FunctionData> ListBindFunction(ClientContext &context, AggregateFunction &function,
184
188
  vector<unique_ptr<Expression>> &arguments) {
189
+ D_ASSERT(arguments.size() == 1);
190
+ D_ASSERT(function.arguments.size() == 1);
191
+
192
+ if (arguments[0]->return_type.id() == LogicalTypeId::UNKNOWN) {
193
+ function.arguments[0] = LogicalTypeId::UNKNOWN;
194
+ function.return_type = LogicalType::SQLNULL;
195
+ return nullptr;
196
+ }
185
197
 
186
198
  function.return_type = LogicalType::LIST(arguments[0]->return_type);
187
199
  return make_uniq<ListBindData>(function.return_type);
188
200
  }
189
201
 
190
- } // namespace
191
-
192
202
  AggregateFunction ListFun::GetFunction() {
193
- auto func = AggregateFunction(
194
- {LogicalType::TEMPLATE("T")}, LogicalType::LIST(LogicalType::TEMPLATE("T")),
195
- AggregateFunction::StateSize<ListAggState>, AggregateFunction::StateInitialize<ListAggState, ListFunction>,
196
- ListUpdateFunction, ListCombineFunction, ListFinalize, nullptr, ListBindFunction, nullptr, nullptr, nullptr);
203
+ auto func =
204
+ AggregateFunction({LogicalType::ANY}, LogicalTypeId::LIST, AggregateFunction::StateSize<ListAggState>,
205
+ AggregateFunction::StateInitialize<ListAggState, ListFunction>, ListUpdateFunction,
206
+ ListCombineFunction, ListFinalize, nullptr, ListBindFunction, nullptr, nullptr, nullptr);
197
207
 
198
208
  return func;
199
209
  }
@@ -5,9 +5,6 @@
5
5
  #include "duckdb/function/function_set.hpp"
6
6
 
7
7
  namespace duckdb {
8
-
9
- namespace {
10
-
11
8
  struct RegrState {
12
9
  double sum;
13
10
  size_t count;
@@ -54,8 +51,6 @@ struct RegrAvgYFunction : RegrAvgFunction {
54
51
  }
55
52
  };
56
53
 
57
- } // namespace
58
-
59
54
  AggregateFunction RegrAvgxFun::GetFunction() {
60
55
  return AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgXFunction>(
61
56
  LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
@@ -6,7 +6,6 @@
6
6
 
7
7
  namespace duckdb {
8
8
 
9
- namespace {
10
9
  struct RegrInterceptState {
11
10
  size_t count;
12
11
  double sum_x;
@@ -60,8 +59,6 @@ struct RegrInterceptOperation {
60
59
  }
61
60
  };
62
61
 
63
- } // namespace
64
-
65
62
  AggregateFunction RegrInterceptFun::GetFunction() {
66
63
  return AggregateFunction::BinaryAggregate<RegrInterceptState, double, double, double, RegrInterceptOperation>(
67
64
  LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
@@ -10,8 +10,6 @@
10
10
  #include "core_functions/aggregate/regression_functions.hpp"
11
11
 
12
12
  namespace duckdb {
13
-
14
- namespace {
15
13
  struct RegrR2State {
16
14
  CorrState corr;
17
15
  StddevState var_pop_x;
@@ -67,11 +65,8 @@ struct RegrR2Operation {
67
65
  }
68
66
  };
69
67
 
70
- } // namespace
71
-
72
68
  AggregateFunction RegrR2Fun::GetFunction() {
73
69
  return AggregateFunction::BinaryAggregate<RegrR2State, double, double, double, RegrR2Operation>(
74
70
  LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
75
71
  }
76
-
77
72
  } // namespace duckdb
@@ -9,7 +9,6 @@
9
9
 
10
10
  namespace duckdb {
11
11
 
12
- namespace {
13
12
  struct RegrSState {
14
13
  size_t count;
15
14
  StddevState var_pop;
@@ -63,8 +62,6 @@ struct RegrSYYOperation : RegrBaseOperation {
63
62
  }
64
63
  };
65
64
 
66
- } // namespace
67
-
68
65
  AggregateFunction RegrSXXFun::GetFunction() {
69
66
  return AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSXXOperation>(
70
67
  LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
@@ -8,8 +8,6 @@
8
8
 
9
9
  namespace duckdb {
10
10
 
11
- namespace {
12
-
13
11
  struct RegrSXyState {
14
12
  size_t count;
15
13
  CovarState cov_pop;
@@ -47,8 +45,6 @@ struct RegrSXYOperation {
47
45
  }
48
46
  };
49
47
 
50
- } // namespace
51
-
52
48
  AggregateFunction RegrSXYFun::GetFunction() {
53
49
  return AggregateFunction::BinaryAggregate<RegrSXyState, double, double, double, RegrSXYOperation>(
54
50
  LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
@@ -1,14 +1,17 @@
1
+ #define DUCKDB_EXTENSION_MAIN
1
2
  #include "core_functions_extension.hpp"
3
+
2
4
  #include "core_functions/function_list.hpp"
5
+ #include "duckdb/main/extension_util.hpp"
3
6
 
4
7
  namespace duckdb {
5
8
 
6
- static void LoadInternal(ExtensionLoader &loader) {
7
- FunctionList::RegisterExtensionFunctions(loader, CoreFunctionList::GetFunctionList());
9
+ void LoadInternal(DuckDB &db) {
10
+ FunctionList::RegisterExtensionFunctions(*db.instance, CoreFunctionList::GetFunctionList());
8
11
  }
9
12
 
10
- void CoreFunctionsExtension::Load(ExtensionLoader &loader) {
11
- LoadInternal(loader);
13
+ void CoreFunctionsExtension::Load(DuckDB &db) {
14
+ LoadInternal(db);
12
15
  }
13
16
 
14
17
  std::string CoreFunctionsExtension::Name() {
@@ -27,7 +30,16 @@ std::string CoreFunctionsExtension::Version() const {
27
30
 
28
31
  extern "C" {
29
32
 
30
- DUCKDB_CPP_EXTENSION_ENTRY(core_functions, loader) {
31
- duckdb::LoadInternal(loader);
33
+ DUCKDB_EXTENSION_API void core_functions_init(duckdb::DatabaseInstance &db) {
34
+ duckdb::DuckDB db_wrapper(db);
35
+ duckdb::LoadInternal(db_wrapper);
36
+ }
37
+
38
+ DUCKDB_EXTENSION_API const char *core_functions_version() {
39
+ return duckdb::DuckDB::LibraryVersion();
32
40
  }
33
41
  }
42
+
43
+ #ifndef DUCKDB_EXTENSION_MAIN
44
+ #error DUCKDB_EXTENSION_MAIN not defined
45
+ #endif
@@ -243,14 +243,14 @@ static const StaticFunctionDefinition core_functions[] = {
243
243
  DUCKDB_SCALAR_FUNCTION_SET(ListInnerProductFun),
244
244
  DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ListNegativeDotProductFun),
245
245
  DUCKDB_SCALAR_FUNCTION_SET(ListNegativeInnerProductFun),
246
- DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ListPackFun),
246
+ DUCKDB_SCALAR_FUNCTION_ALIAS(ListPackFun),
247
247
  DUCKDB_SCALAR_FUNCTION_SET(ListReduceFun),
248
248
  DUCKDB_SCALAR_FUNCTION_SET(ListReverseSortFun),
249
249
  DUCKDB_SCALAR_FUNCTION_SET(ListSliceFun),
250
250
  DUCKDB_SCALAR_FUNCTION_SET(ListSortFun),
251
251
  DUCKDB_SCALAR_FUNCTION(ListTransformFun),
252
252
  DUCKDB_SCALAR_FUNCTION(ListUniqueFun),
253
- DUCKDB_SCALAR_FUNCTION_SET(ListValueFun),
253
+ DUCKDB_SCALAR_FUNCTION(ListValueFun),
254
254
  DUCKDB_AGGREGATE_FUNCTION_SET_ALIAS(ListaggFun),
255
255
  DUCKDB_SCALAR_FUNCTION(LnFun),
256
256
  DUCKDB_SCALAR_FUNCTION_SET(LogFun),
@@ -262,9 +262,8 @@ static const StaticFunctionDefinition core_functions[] = {
262
262
  DUCKDB_SCALAR_FUNCTION_SET(MakeDateFun),
263
263
  DUCKDB_SCALAR_FUNCTION(MakeTimeFun),
264
264
  DUCKDB_SCALAR_FUNCTION_SET(MakeTimestampFun),
265
- DUCKDB_SCALAR_FUNCTION_SET(MakeTimestampMsFun),
266
265
  DUCKDB_SCALAR_FUNCTION_SET(MakeTimestampNsFun),
267
- DUCKDB_SCALAR_FUNCTION_SET(MapFun),
266
+ DUCKDB_SCALAR_FUNCTION(MapFun),
268
267
  DUCKDB_SCALAR_FUNCTION(MapConcatFun),
269
268
  DUCKDB_SCALAR_FUNCTION(MapEntriesFun),
270
269
  DUCKDB_SCALAR_FUNCTION(MapExtractFun),
@@ -318,7 +317,6 @@ static const StaticFunctionDefinition core_functions[] = {
318
317
  DUCKDB_AGGREGATE_FUNCTION(RegrSYYFun),
319
318
  DUCKDB_SCALAR_FUNCTION_SET(RepeatFun),
320
319
  DUCKDB_SCALAR_FUNCTION(ReplaceFun),
321
- DUCKDB_SCALAR_FUNCTION(ReplaceTypeFun),
322
320
  DUCKDB_AGGREGATE_FUNCTION_SET(ReservoirQuantileFun),
323
321
  DUCKDB_SCALAR_FUNCTION(ReverseFun),
324
322
  DUCKDB_SCALAR_FUNCTION(RightFun),
@@ -344,7 +342,6 @@ static const StaticFunctionDefinition core_functions[] = {
344
342
  DUCKDB_AGGREGATE_FUNCTION_SET(StringAggFun),
345
343
  DUCKDB_SCALAR_FUNCTION_ALIAS(StrposFun),
346
344
  DUCKDB_SCALAR_FUNCTION(StructInsertFun),
347
- DUCKDB_SCALAR_FUNCTION(StructUpdateFun),
348
345
  DUCKDB_AGGREGATE_FUNCTION_SET(SumFun),
349
346
  DUCKDB_AGGREGATE_FUNCTION_SET(SumNoOverflowFun),
350
347
  DUCKDB_AGGREGATE_FUNCTION_ALIAS(SumkahanFun),
@@ -65,8 +65,8 @@ struct STDDevBaseOperation {
65
65
  const double target_count = static_cast<double>(target.count);
66
66
  const double source_count = static_cast<double>(source.count);
67
67
  const double total_count = static_cast<double>(count);
68
+ const auto mean = (source_count * source.mean + target_count * target.mean) / total_count;
68
69
  const auto delta = source.mean - target.mean;
69
- const auto mean = std::fma(source_count / total_count, delta, target.mean);
70
70
  target.dsquared =
71
71
  source.dsquared + target.dsquared + delta * delta * source_count * target_count / total_count;
72
72
  target.mean = mean;
@@ -34,7 +34,7 @@ struct MeanFun {
34
34
  struct CorrFun {
35
35
  static constexpr const char *Name = "corr";
36
36
  static constexpr const char *Parameters = "y,x";
37
- static constexpr const char *Description = "Returns the correlation coefficient for non-NULL pairs in a group.";
37
+ static constexpr const char *Description = "Returns the correlation coefficient for non-null pairs in a group.";
38
38
  static constexpr const char *Example = "COVAR_POP(y, x) / (STDDEV_POP(x) * STDDEV_POP(y))";
39
39
  static constexpr const char *Categories = "";
40
40
 
@@ -54,7 +54,7 @@ struct CovarPopFun {
54
54
  struct CovarSampFun {
55
55
  static constexpr const char *Name = "covar_samp";
56
56
  static constexpr const char *Parameters = "y,x";
57
- static constexpr const char *Description = "Returns the sample covariance for non-NULL pairs in a group.";
57
+ static constexpr const char *Description = "Returns the sample covariance for non-null pairs in a group.";
58
58
  static constexpr const char *Example = "(SUM(x*y) - SUM(x) * SUM(y) / COUNT(*)) / (COUNT(*) - 1)";
59
59
  static constexpr const char *Categories = "";
60
60
 
@@ -29,7 +29,7 @@ struct ArgMinFun {
29
29
  static constexpr const char *Name = "arg_min";
30
30
  static constexpr const char *Parameters = "arg,val";
31
31
  static constexpr const char *Description = "Finds the row with the minimum val. Calculates the non-NULL arg expression at that row.";
32
- static constexpr const char *Example = "arg_min(A, B)";
32
+ static constexpr const char *Example = "arg_min(A,B)";
33
33
  static constexpr const char *Categories = "";
34
34
 
35
35
  static AggregateFunctionSet GetFunctions();
@@ -51,7 +51,7 @@ struct ArgMinNullFun {
51
51
  static constexpr const char *Name = "arg_min_null";
52
52
  static constexpr const char *Parameters = "arg,val";
53
53
  static constexpr const char *Description = "Finds the row with the minimum val. Calculates the arg expression at that row.";
54
- static constexpr const char *Example = "arg_min_null(A, B)";
54
+ static constexpr const char *Example = "arg_min_null(A,B)";
55
55
  static constexpr const char *Categories = "";
56
56
 
57
57
  static AggregateFunctionSet GetFunctions();
@@ -61,7 +61,7 @@ struct ArgMaxFun {
61
61
  static constexpr const char *Name = "arg_max";
62
62
  static constexpr const char *Parameters = "arg,val";
63
63
  static constexpr const char *Description = "Finds the row with the maximum val. Calculates the non-NULL arg expression at that row.";
64
- static constexpr const char *Example = "arg_max(A, B)";
64
+ static constexpr const char *Example = "arg_max(A,B)";
65
65
  static constexpr const char *Categories = "";
66
66
 
67
67
  static AggregateFunctionSet GetFunctions();
@@ -83,7 +83,7 @@ struct ArgMaxNullFun {
83
83
  static constexpr const char *Name = "arg_max_null";
84
84
  static constexpr const char *Parameters = "arg,val";
85
85
  static constexpr const char *Description = "Finds the row with the maximum val. Calculates the arg expression at that row.";
86
- static constexpr const char *Example = "arg_max_null(A, B)";
86
+ static constexpr const char *Example = "arg_max_null(A,B)";
87
87
  static constexpr const char *Categories = "";
88
88
 
89
89
  static AggregateFunctionSet GetFunctions();
@@ -85,7 +85,7 @@ struct ReservoirQuantileFun {
85
85
  static constexpr const char *Name = "reservoir_quantile";
86
86
  static constexpr const char *Parameters = "x,quantile,sample_size";
87
87
  static constexpr const char *Description = "Gives the approximate quantile using reservoir sampling, the sample size is optional and uses 8192 as a default size.";
88
- static constexpr const char *Example = "reservoir_quantile(A, 0.5, 1024)";
88
+ static constexpr const char *Example = "reservoir_quantile(A,0.5,1024)";
89
89
  static constexpr const char *Categories = "";
90
90
 
91
91
  static AggregateFunctionSet GetFunctions();
@@ -11,7 +11,6 @@
11
11
  #include "duckdb/common/types/column/column_data_collection.hpp"
12
12
  #include "core_functions/aggregate/quantile_helpers.hpp"
13
13
  #include "duckdb/common/operator/cast_operators.hpp"
14
- #include "duckdb/common/operator/interpolate.hpp"
15
14
  #include "duckdb/common/operator/multiply.hpp"
16
15
  #include "duckdb/planner/expression/bound_constant_expression.hpp"
17
16
  #include "duckdb/function/window/window_index_tree.hpp"
@@ -149,22 +148,37 @@ struct QuantileCompare {
149
148
  }
150
149
  };
151
150
 
152
- struct QuantileCast {
151
+ struct CastInterpolation {
153
152
  template <class INPUT_TYPE, class TARGET_TYPE>
154
- static inline TARGET_TYPE Operation(const INPUT_TYPE &src, Vector &result) {
153
+ static inline TARGET_TYPE Cast(const INPUT_TYPE &src, Vector &result) {
155
154
  return Cast::Operation<INPUT_TYPE, TARGET_TYPE>(src);
156
155
  }
156
+ template <typename TARGET_TYPE>
157
+ static inline TARGET_TYPE Interpolate(const TARGET_TYPE &lo, const double d, const TARGET_TYPE &hi) {
158
+ const auto delta = hi - lo;
159
+ return LossyNumericCast<TARGET_TYPE>(lo + delta * d);
160
+ }
157
161
  };
158
162
 
159
163
  template <>
160
- interval_t QuantileCast::Operation(const dtime_t &src, Vector &result);
164
+ interval_t CastInterpolation::Cast(const dtime_t &src, Vector &result);
165
+ template <>
166
+ double CastInterpolation::Interpolate(const double &lo, const double d, const double &hi);
167
+ template <>
168
+ dtime_t CastInterpolation::Interpolate(const dtime_t &lo, const double d, const dtime_t &hi);
169
+ template <>
170
+ timestamp_t CastInterpolation::Interpolate(const timestamp_t &lo, const double d, const timestamp_t &hi);
171
+ template <>
172
+ hugeint_t CastInterpolation::Interpolate(const hugeint_t &lo, const double d, const hugeint_t &hi);
173
+ template <>
174
+ interval_t CastInterpolation::Interpolate(const interval_t &lo, const double d, const interval_t &hi);
161
175
  template <>
162
- string_t QuantileCast::Operation(const string_t &src, Vector &result);
176
+ string_t CastInterpolation::Cast(const string_t &src, Vector &result);
163
177
 
164
178
  // Continuous interpolation
165
179
  template <bool DISCRETE>
166
- struct QuantileInterpolator {
167
- QuantileInterpolator(const QuantileValue &q, const idx_t n_p, const bool desc_p)
180
+ struct Interpolator {
181
+ Interpolator(const QuantileValue &q, const idx_t n_p, const bool desc_p)
168
182
  : desc(desc_p), RN((double)(n_p - 1) * q.dbl), FRN(ExactNumericCast<idx_t>(floor(RN))),
169
183
  CRN(ExactNumericCast<idx_t>(ceil(RN))), begin(0), end(n_p) {
170
184
  }
@@ -173,11 +187,11 @@ struct QuantileInterpolator {
173
187
  TARGET_TYPE Interpolate(INPUT_TYPE lidx, INPUT_TYPE hidx, Vector &result, const ACCESSOR &accessor) const {
174
188
  using ACCESS_TYPE = typename ACCESSOR::RESULT_TYPE;
175
189
  if (lidx == hidx) {
176
- return QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(lidx), result);
190
+ return CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(lidx), result);
177
191
  } else {
178
- auto lo = QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(lidx), result);
179
- auto hi = QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(hidx), result);
180
- return InterpolateOperator::Operation<TARGET_TYPE>(lo, RN - FRN, hi);
192
+ auto lo = CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(lidx), result);
193
+ auto hi = CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(hidx), result);
194
+ return CastInterpolation::Interpolate<TARGET_TYPE>(lo, RN - FRN, hi);
181
195
  }
182
196
  }
183
197
 
@@ -187,24 +201,24 @@ struct QuantileInterpolator {
187
201
  QuantileCompare<ACCESSOR> comp(accessor, desc);
188
202
  if (CRN == FRN) {
189
203
  std::nth_element(v_t + begin, v_t + FRN, v_t + end, comp);
190
- return QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(v_t[FRN]), result);
204
+ return CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(v_t[FRN]), result);
191
205
  } else {
192
206
  std::nth_element(v_t + begin, v_t + FRN, v_t + end, comp);
193
207
  std::nth_element(v_t + FRN, v_t + CRN, v_t + end, comp);
194
- auto lo = QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(v_t[FRN]), result);
195
- auto hi = QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(v_t[CRN]), result);
196
- return InterpolateOperator::Operation<TARGET_TYPE>(lo, RN - FRN, hi);
208
+ auto lo = CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(v_t[FRN]), result);
209
+ auto hi = CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(v_t[CRN]), result);
210
+ return CastInterpolation::Interpolate<TARGET_TYPE>(lo, RN - FRN, hi);
197
211
  }
198
212
  }
199
213
 
200
214
  template <class INPUT_TYPE, class TARGET_TYPE>
201
215
  inline TARGET_TYPE Extract(const INPUT_TYPE *dest, Vector &result) const {
202
216
  if (CRN == FRN) {
203
- return QuantileCast::Operation<INPUT_TYPE, TARGET_TYPE>(dest[0], result);
217
+ return CastInterpolation::Cast<INPUT_TYPE, TARGET_TYPE>(dest[0], result);
204
218
  } else {
205
- auto lo = QuantileCast::Operation<INPUT_TYPE, TARGET_TYPE>(dest[0], result);
206
- auto hi = QuantileCast::Operation<INPUT_TYPE, TARGET_TYPE>(dest[1], result);
207
- return InterpolateOperator::Operation<TARGET_TYPE>(lo, RN - FRN, hi);
219
+ auto lo = CastInterpolation::Cast<INPUT_TYPE, TARGET_TYPE>(dest[0], result);
220
+ auto hi = CastInterpolation::Cast<INPUT_TYPE, TARGET_TYPE>(dest[1], result);
221
+ return CastInterpolation::Interpolate<TARGET_TYPE>(lo, RN - FRN, hi);
208
222
  }
209
223
  }
210
224
 
@@ -219,7 +233,7 @@ struct QuantileInterpolator {
219
233
 
220
234
  // Discrete "interpolation"
221
235
  template <>
222
- struct QuantileInterpolator<true> {
236
+ struct Interpolator<true> {
223
237
  static inline idx_t Index(const QuantileValue &q, const idx_t n) {
224
238
  idx_t floored;
225
239
  switch (q.val.type().id()) {
@@ -243,14 +257,14 @@ struct QuantileInterpolator<true> {
243
257
  return MaxValue<idx_t>(1, n - floored) - 1;
244
258
  }
245
259
 
246
- QuantileInterpolator(const QuantileValue &q, const idx_t n_p, bool desc_p)
260
+ Interpolator(const QuantileValue &q, const idx_t n_p, bool desc_p)
247
261
  : desc(desc_p), FRN(Index(q, n_p)), CRN(FRN), begin(0), end(n_p) {
248
262
  }
249
263
 
250
264
  template <class INPUT_TYPE, class TARGET_TYPE, typename ACCESSOR = QuantileDirect<INPUT_TYPE>>
251
265
  TARGET_TYPE Interpolate(INPUT_TYPE lidx, INPUT_TYPE hidx, Vector &result, const ACCESSOR &accessor) const {
252
266
  using ACCESS_TYPE = typename ACCESSOR::RESULT_TYPE;
253
- return QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(accessor(lidx), result);
267
+ return CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(accessor(lidx), result);
254
268
  }
255
269
 
256
270
  template <class INPUT_TYPE, typename ACCESSOR = QuantileDirect<INPUT_TYPE>>
@@ -263,12 +277,12 @@ struct QuantileInterpolator<true> {
263
277
  template <class INPUT_TYPE, class TARGET_TYPE, typename ACCESSOR = QuantileDirect<INPUT_TYPE>>
264
278
  TARGET_TYPE Operation(INPUT_TYPE *v_t, Vector &result, const ACCESSOR &accessor = ACCESSOR()) const {
265
279
  using ACCESS_TYPE = typename ACCESSOR::RESULT_TYPE;
266
- return QuantileCast::Operation<ACCESS_TYPE, TARGET_TYPE>(InterpolateInternal(v_t, accessor), result);
280
+ return CastInterpolation::Cast<ACCESS_TYPE, TARGET_TYPE>(InterpolateInternal(v_t, accessor), result);
267
281
  }
268
282
 
269
283
  template <class INPUT_TYPE, class TARGET_TYPE>
270
284
  TARGET_TYPE Extract(const INPUT_TYPE *dest, Vector &result) const {
271
- return QuantileCast::Operation<INPUT_TYPE, TARGET_TYPE>(dest[0], result);
285
+ return CastInterpolation::Cast<INPUT_TYPE, TARGET_TYPE>(dest[0], result);
272
286
  }
273
287
 
274
288
  const bool desc;
@@ -306,7 +320,6 @@ struct QuantileSortTree {
306
320
  QuantileSortTree(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition) {
307
321
  // TODO: Two pass parallel sorting using Build
308
322
  auto &inputs = *partition.inputs;
309
- auto &interrupt = partition.interrupt_state;
310
323
  ColumnDataScanState scan;
311
324
  DataChunk sort;
312
325
  inputs.InitializeScan(scan, partition.column_ids);
@@ -321,8 +334,8 @@ struct QuantileSortTree {
321
334
  vector<column_t> sort_idx(1, 0);
322
335
  const auto count = partition.count;
323
336
 
324
- index_tree = make_uniq<WindowIndexTree>(partition.context.client, order_bys, sort_idx, count);
325
- auto index_state = index_tree->GetLocalState(partition.context);
337
+ index_tree = make_uniq<WindowIndexTree>(partition.context, order_bys, sort_idx, count);
338
+ auto index_state = index_tree->GetLocalState();
326
339
  auto &local_state = index_state->Cast<WindowIndexTreeLocalState>();
327
340
 
328
341
  // Build the indirection array by scanning the valid indices
@@ -339,12 +352,12 @@ struct QuantileSortTree {
339
352
  filter_sel[filtered++] = i;
340
353
  }
341
354
  }
342
- local_state.Sink(partition.context, sort, row_idx, filter_sel, filtered, interrupt);
355
+ local_state.SinkChunk(sort, row_idx, filter_sel, filtered);
343
356
  } else {
344
- local_state.Sink(partition.context, sort, row_idx, nullptr, 0, interrupt);
357
+ local_state.SinkChunk(sort, row_idx, nullptr, 0);
345
358
  }
346
359
  }
347
- local_state.Finalize(partition.context, interrupt);
360
+ local_state.Sort();
348
361
  }
349
362
 
350
363
  inline idx_t SelectNth(const SubFrames &frames, size_t n) const {
@@ -360,7 +373,7 @@ struct QuantileSortTree {
360
373
  index_tree->Build();
361
374
 
362
375
  // Find the interpolated indicies within the frame
363
- QuantileInterpolator<DISCRETE> interp(q, n, false);
376
+ Interpolator<DISCRETE> interp(q, n, false);
364
377
  const auto lo_data = SelectNth(frames, interp.FRN);
365
378
  auto hi_data = lo_data;
366
379
  if (interp.CRN != interp.FRN) {
@@ -396,7 +409,7 @@ struct QuantileSortTree {
396
409
  ID indirect(data);
397
410
  for (const auto &q : bind_data.order) {
398
411
  const auto &quantile = bind_data.quantiles[q];
399
- QuantileInterpolator<DISCRETE> interp(quantile, n, false);
412
+ Interpolator<DISCRETE> interp(quantile, n, false);
400
413
 
401
414
  const auto lo_data = SelectNth(frames, interp.FRN);
402
415
  auto hi_data = lo_data;
@@ -201,7 +201,7 @@ struct WindowQuantileState {
201
201
  } else if (s) {
202
202
  // Find the position(s) needed
203
203
  try {
204
- QuantileInterpolator<DISCRETE> interp(q, s->size(), false);
204
+ Interpolator<DISCRETE> interp(q, s->size(), false);
205
205
  s->at(interp.FRN, interp.CRN - interp.FRN + 1, skips);
206
206
  array<INPUT_TYPE, 2> dest;
207
207
  dest[0] = skips[0].second;
@@ -18,7 +18,7 @@ namespace duckdb {
18
18
  struct RegrAvgxFun {
19
19
  static constexpr const char *Name = "regr_avgx";
20
20
  static constexpr const char *Parameters = "y,x";
21
- static constexpr const char *Description = "Returns the average of the independent variable for non-NULL pairs in a group, where x is the independent variable and y is the dependent variable.";
21
+ static constexpr const char *Description = "Returns the average of the independent variable for non-null pairs in a group, where x is the independent variable and y is the dependent variable.";
22
22
  static constexpr const char *Example = "";
23
23
  static constexpr const char *Categories = "";
24
24
 
@@ -28,7 +28,7 @@ struct RegrAvgxFun {
28
28
  struct RegrAvgyFun {
29
29
  static constexpr const char *Name = "regr_avgy";
30
30
  static constexpr const char *Parameters = "y,x";
31
- static constexpr const char *Description = "Returns the average of the dependent variable for non-NULL pairs in a group, where x is the independent variable and y is the dependent variable.";
31
+ static constexpr const char *Description = "Returns the average of the dependent variable for non-null pairs in a group, where x is the independent variable and y is the dependent variable.";
32
32
  static constexpr const char *Example = "";
33
33
  static constexpr const char *Categories = "";
34
34
 
@@ -38,7 +38,7 @@ struct RegrAvgyFun {
38
38
  struct RegrCountFun {
39
39
  static constexpr const char *Name = "regr_count";
40
40
  static constexpr const char *Parameters = "y,x";
41
- static constexpr const char *Description = "Returns the number of non-NULL number pairs in a group.";
41
+ static constexpr const char *Description = "Returns the number of non-null number pairs in a group.";
42
42
  static constexpr const char *Example = "(SUM(x*y) - SUM(x) * SUM(y) / COUNT(*)) / COUNT(*)";
43
43
  static constexpr const char *Categories = "";
44
44
 
@@ -48,8 +48,8 @@ struct RegrCountFun {
48
48
  struct RegrInterceptFun {
49
49
  static constexpr const char *Name = "regr_intercept";
50
50
  static constexpr const char *Parameters = "y,x";
51
- static constexpr const char *Description = "Returns the intercept of the univariate linear regression line for non-NULL pairs in a group.";
52
- static constexpr const char *Example = "AVG(y)-REGR_SLOPE(y, x)*AVG(x)";
51
+ static constexpr const char *Description = "Returns the intercept of the univariate linear regression line for non-null pairs in a group.";
52
+ static constexpr const char *Example = "AVG(y)-REGR_SLOPE(y,x)*AVG(x)";
53
53
  static constexpr const char *Categories = "";
54
54
 
55
55
  static AggregateFunction GetFunction();
@@ -58,7 +58,7 @@ struct RegrInterceptFun {
58
58
  struct RegrR2Fun {
59
59
  static constexpr const char *Name = "regr_r2";
60
60
  static constexpr const char *Parameters = "y,x";
61
- static constexpr const char *Description = "Returns the coefficient of determination for non-NULL pairs in a group.";
61
+ static constexpr const char *Description = "Returns the coefficient of determination for non-null pairs in a group.";
62
62
  static constexpr const char *Example = "";
63
63
  static constexpr const char *Categories = "";
64
64
 
@@ -68,8 +68,8 @@ struct RegrR2Fun {
68
68
  struct RegrSlopeFun {
69
69
  static constexpr const char *Name = "regr_slope";
70
70
  static constexpr const char *Parameters = "y,x";
71
- static constexpr const char *Description = "Returns the slope of the linear regression line for non-NULL pairs in a group.";
72
- static constexpr const char *Example = "COVAR_POP(x, y) / VAR_POP(x)";
71
+ static constexpr const char *Description = "Returns the slope of the linear regression line for non-null pairs in a group.";
72
+ static constexpr const char *Example = "COVAR_POP(x,y) / VAR_POP(x)";
73
73
  static constexpr const char *Categories = "";
74
74
 
75
75
  static AggregateFunction GetFunction();
@@ -30,7 +30,6 @@ struct SumState {
30
30
 
31
31
  void Initialize() {
32
32
  this->isset = false;
33
- this->value = 0;
34
33
  }
35
34
 
36
35
  void Combine(const SumState<T> &other) {
@@ -183,6 +182,7 @@ struct BaseSumOperation {
183
182
  STATEOP::template AddValues<STATE>(state, count);
184
183
  ADDOP::template AddConstant<STATE, INPUT_TYPE>(state, input, count);
185
184
  }
185
+
186
186
  static bool IgnoreNull() {
187
187
  return true;
188
188
  }