duckdb 1.0.1-dev22.0 → 1.0.1-dev27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1389) hide show
  1. package/.github/workflows/NodeJS.yml +1 -1
  2. package/binding.gyp +41 -0
  3. package/package.json +1 -1
  4. package/src/duckdb/extension/icu/icu-dateadd.cpp +4 -2
  5. package/src/duckdb/extension/icu/icu-datefunc.cpp +6 -2
  6. package/src/duckdb/extension/icu/icu-datesub.cpp +13 -2
  7. package/src/duckdb/extension/icu/icu-strptime.cpp +6 -6
  8. package/src/duckdb/extension/icu/icu-table-range.cpp +92 -73
  9. package/src/duckdb/extension/icu/icu-timebucket.cpp +12 -2
  10. package/src/duckdb/extension/icu/icu-timezone.cpp +3 -3
  11. package/src/duckdb/extension/icu/icu_extension.cpp +61 -9
  12. package/src/duckdb/extension/json/include/json_executors.hpp +20 -23
  13. package/src/duckdb/extension/json/include/json_functions.hpp +4 -0
  14. package/src/duckdb/extension/json/include/json_scan.hpp +6 -2
  15. package/src/duckdb/extension/json/include/json_structure.hpp +12 -9
  16. package/src/duckdb/extension/json/json_common.cpp +66 -10
  17. package/src/duckdb/extension/json/json_extension.cpp +13 -5
  18. package/src/duckdb/extension/json/json_functions/json_array_length.cpp +1 -1
  19. package/src/duckdb/extension/json/json_functions/json_create.cpp +21 -4
  20. package/src/duckdb/extension/json/json_functions/json_exists.cpp +32 -0
  21. package/src/duckdb/extension/json/json_functions/json_extract.cpp +2 -2
  22. package/src/duckdb/extension/json/json_functions/json_keys.cpp +1 -1
  23. package/src/duckdb/extension/json/json_functions/json_pretty.cpp +32 -0
  24. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +5 -1
  25. package/src/duckdb/extension/json/json_functions/json_structure.cpp +305 -94
  26. package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
  27. package/src/duckdb/extension/json/json_functions/json_type.cpp +3 -3
  28. package/src/duckdb/extension/json/json_functions/json_value.cpp +42 -0
  29. package/src/duckdb/extension/json/json_functions/read_json.cpp +16 -2
  30. package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +3 -2
  31. package/src/duckdb/extension/json/json_functions.cpp +5 -1
  32. package/src/duckdb/extension/json/json_scan.cpp +13 -12
  33. package/src/duckdb/extension/json/serialize_json.cpp +5 -3
  34. package/src/duckdb/extension/parquet/column_reader.cpp +206 -43
  35. package/src/duckdb/extension/parquet/column_writer.cpp +133 -62
  36. package/src/duckdb/extension/parquet/geo_parquet.cpp +391 -0
  37. package/src/duckdb/extension/parquet/include/boolean_column_reader.hpp +16 -5
  38. package/src/duckdb/extension/parquet/include/column_reader.hpp +37 -12
  39. package/src/duckdb/extension/parquet/include/column_writer.hpp +10 -11
  40. package/src/duckdb/extension/parquet/include/expression_column_reader.hpp +52 -0
  41. package/src/duckdb/extension/parquet/include/geo_parquet.hpp +139 -0
  42. package/src/duckdb/extension/parquet/include/parquet_crypto.hpp +13 -8
  43. package/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp +3 -0
  44. package/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp +7 -3
  45. package/src/duckdb/extension/parquet/include/parquet_reader.hpp +55 -8
  46. package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +3 -3
  47. package/src/duckdb/extension/parquet/include/parquet_rle_bp_encoder.hpp +1 -1
  48. package/src/duckdb/extension/parquet/include/parquet_timestamp.hpp +8 -0
  49. package/src/duckdb/extension/parquet/include/parquet_writer.hpp +21 -7
  50. package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +33 -11
  51. package/src/duckdb/extension/parquet/include/string_column_reader.hpp +5 -2
  52. package/src/duckdb/extension/parquet/include/templated_column_reader.hpp +48 -14
  53. package/src/duckdb/extension/parquet/parquet_crypto.cpp +109 -61
  54. package/src/duckdb/extension/parquet/parquet_extension.cpp +305 -72
  55. package/src/duckdb/extension/parquet/parquet_metadata.cpp +4 -4
  56. package/src/duckdb/extension/parquet/parquet_reader.cpp +151 -40
  57. package/src/duckdb/extension/parquet/parquet_statistics.cpp +50 -16
  58. package/src/duckdb/extension/parquet/parquet_timestamp.cpp +42 -1
  59. package/src/duckdb/extension/parquet/parquet_writer.cpp +67 -75
  60. package/src/duckdb/extension/parquet/serialize_parquet.cpp +3 -1
  61. package/src/duckdb/extension/parquet/zstd_file_system.cpp +5 -1
  62. package/src/duckdb/src/catalog/catalog.cpp +14 -16
  63. package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +14 -11
  64. package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +39 -19
  65. package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +92 -78
  66. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +10 -2
  67. package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +10 -3
  68. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +3 -3
  69. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -7
  70. package/src/duckdb/src/catalog/catalog_entry.cpp +6 -3
  71. package/src/duckdb/src/catalog/catalog_set.cpp +14 -19
  72. package/src/duckdb/src/catalog/default/default_functions.cpp +179 -166
  73. package/src/duckdb/src/catalog/default/default_generator.cpp +24 -0
  74. package/src/duckdb/src/catalog/default/default_schemas.cpp +4 -3
  75. package/src/duckdb/src/catalog/default/default_table_functions.cpp +148 -0
  76. package/src/duckdb/src/catalog/default/default_views.cpp +7 -3
  77. package/src/duckdb/src/catalog/duck_catalog.cpp +7 -1
  78. package/src/duckdb/src/common/adbc/adbc.cpp +120 -58
  79. package/src/duckdb/src/common/allocator.cpp +71 -6
  80. package/src/duckdb/src/common/arrow/appender/bool_data.cpp +8 -7
  81. package/src/duckdb/src/common/arrow/appender/fixed_size_list_data.cpp +1 -1
  82. package/src/duckdb/src/common/arrow/appender/union_data.cpp +4 -5
  83. package/src/duckdb/src/common/arrow/arrow_appender.cpp +55 -21
  84. package/src/duckdb/src/common/arrow/arrow_converter.cpp +85 -10
  85. package/src/duckdb/src/common/arrow/arrow_merge_event.cpp +142 -0
  86. package/src/duckdb/src/common/arrow/arrow_query_result.cpp +56 -0
  87. package/src/duckdb/src/common/arrow/physical_arrow_batch_collector.cpp +37 -0
  88. package/src/duckdb/src/common/arrow/physical_arrow_collector.cpp +128 -0
  89. package/src/duckdb/src/common/arrow/schema_metadata.cpp +101 -0
  90. package/src/duckdb/src/common/cgroups.cpp +189 -0
  91. package/src/duckdb/src/common/compressed_file_system.cpp +6 -3
  92. package/src/duckdb/src/common/encryption_state.cpp +38 -0
  93. package/src/duckdb/src/common/enum_util.cpp +682 -14
  94. package/src/duckdb/src/common/enums/file_compression_type.cpp +24 -0
  95. package/src/duckdb/src/common/enums/metric_type.cpp +208 -0
  96. package/src/duckdb/src/common/enums/optimizer_type.cpp +8 -2
  97. package/src/duckdb/src/common/enums/physical_operator_type.cpp +2 -0
  98. package/src/duckdb/src/common/enums/relation_type.cpp +4 -0
  99. package/src/duckdb/src/common/enums/statement_type.cpp +15 -0
  100. package/src/duckdb/src/common/error_data.cpp +22 -20
  101. package/src/duckdb/src/common/exception/binder_exception.cpp +5 -0
  102. package/src/duckdb/src/common/exception.cpp +11 -1
  103. package/src/duckdb/src/common/extra_type_info.cpp +3 -0
  104. package/src/duckdb/src/common/file_buffer.cpp +1 -1
  105. package/src/duckdb/src/common/file_system.cpp +25 -3
  106. package/src/duckdb/src/common/filename_pattern.cpp +1 -0
  107. package/src/duckdb/src/common/fsst.cpp +15 -14
  108. package/src/duckdb/src/common/gzip_file_system.cpp +3 -1
  109. package/src/duckdb/src/common/hive_partitioning.cpp +103 -43
  110. package/src/duckdb/src/common/http_util.cpp +25 -0
  111. package/src/duckdb/src/common/local_file_system.cpp +48 -27
  112. package/src/duckdb/src/common/multi_file_list.cpp +113 -22
  113. package/src/duckdb/src/common/multi_file_reader.cpp +59 -58
  114. package/src/duckdb/src/common/operator/cast_operators.cpp +133 -34
  115. package/src/duckdb/src/common/operator/string_cast.cpp +42 -11
  116. package/src/duckdb/src/common/progress_bar/progress_bar.cpp +2 -2
  117. package/src/duckdb/src/common/progress_bar/terminal_progress_bar_display.cpp +1 -1
  118. package/src/duckdb/src/common/radix_partitioning.cpp +31 -21
  119. package/src/duckdb/src/common/random_engine.cpp +4 -0
  120. package/src/duckdb/src/common/re2_regex.cpp +47 -12
  121. package/src/duckdb/src/common/render_tree.cpp +243 -0
  122. package/src/duckdb/src/common/row_operations/row_aggregate.cpp +1 -1
  123. package/src/duckdb/src/common/row_operations/row_gather.cpp +2 -2
  124. package/src/duckdb/src/common/row_operations/row_matcher.cpp +58 -5
  125. package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +79 -43
  126. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
  127. package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +6 -4
  128. package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +18 -9
  129. package/src/duckdb/src/common/serializer/memory_stream.cpp +1 -0
  130. package/src/duckdb/src/common/sort/partition_state.cpp +33 -18
  131. package/src/duckdb/src/common/sort/radix_sort.cpp +22 -15
  132. package/src/duckdb/src/common/sort/sort_state.cpp +19 -16
  133. package/src/duckdb/src/common/sort/sorted_block.cpp +11 -10
  134. package/src/duckdb/src/common/string_util.cpp +167 -10
  135. package/src/duckdb/src/common/tree_renderer/graphviz_tree_renderer.cpp +108 -0
  136. package/src/duckdb/src/common/tree_renderer/html_tree_renderer.cpp +267 -0
  137. package/src/duckdb/src/common/tree_renderer/json_tree_renderer.cpp +116 -0
  138. package/src/duckdb/src/common/tree_renderer/text_tree_renderer.cpp +482 -0
  139. package/src/duckdb/src/common/tree_renderer/tree_renderer.cpp +12 -0
  140. package/src/duckdb/src/common/tree_renderer.cpp +16 -508
  141. package/src/duckdb/src/common/types/batched_data_collection.cpp +78 -9
  142. package/src/duckdb/src/common/types/bit.cpp +24 -22
  143. package/src/duckdb/src/common/types/blob.cpp +15 -11
  144. package/src/duckdb/src/common/types/column/column_data_allocator.cpp +18 -9
  145. package/src/duckdb/src/common/types/column/column_data_collection.cpp +4 -4
  146. package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +3 -4
  147. package/src/duckdb/src/common/types/column/column_data_consumer.cpp +2 -2
  148. package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +70 -21
  149. package/src/duckdb/src/common/types/data_chunk.cpp +10 -1
  150. package/src/duckdb/src/common/types/date.cpp +8 -19
  151. package/src/duckdb/src/common/types/decimal.cpp +3 -2
  152. package/src/duckdb/src/common/types/hugeint.cpp +11 -3
  153. package/src/duckdb/src/common/types/hyperloglog.cpp +212 -227
  154. package/src/duckdb/src/common/types/interval.cpp +1 -1
  155. package/src/duckdb/src/common/types/list_segment.cpp +83 -49
  156. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +22 -83
  157. package/src/duckdb/src/common/types/row/row_data_collection.cpp +2 -2
  158. package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +20 -4
  159. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +28 -7
  160. package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +29 -14
  161. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +152 -102
  162. package/src/duckdb/src/common/types/row/tuple_data_segment.cpp +4 -1
  163. package/src/duckdb/src/common/types/selection_vector.cpp +17 -1
  164. package/src/duckdb/src/common/types/time.cpp +62 -31
  165. package/src/duckdb/src/common/types/timestamp.cpp +70 -12
  166. package/src/duckdb/src/common/types/uuid.cpp +1 -1
  167. package/src/duckdb/src/common/types/validity_mask.cpp +40 -5
  168. package/src/duckdb/src/common/types/value.cpp +50 -8
  169. package/src/duckdb/src/common/types/varint.cpp +295 -0
  170. package/src/duckdb/src/common/types/vector.cpp +165 -54
  171. package/src/duckdb/src/common/types/vector_buffer.cpp +5 -4
  172. package/src/duckdb/src/common/types.cpp +106 -26
  173. package/src/duckdb/src/common/vector_operations/vector_copy.cpp +13 -25
  174. package/src/duckdb/src/common/vector_operations/vector_hash.cpp +6 -0
  175. package/src/duckdb/src/common/virtual_file_system.cpp +3 -3
  176. package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +35 -82
  177. package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +283 -46
  178. package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +4 -4
  179. package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +3 -2
  180. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +226 -338
  181. package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +2 -0
  182. package/src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp +388 -0
  183. package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +63 -21
  184. package/src/duckdb/src/core_functions/aggregate/holistic/mad.cpp +330 -0
  185. package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +136 -97
  186. package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +601 -1485
  187. package/src/duckdb/src/core_functions/aggregate/nested/binned_histogram.cpp +405 -0
  188. package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +136 -165
  189. package/src/duckdb/src/core_functions/function_list.cpp +35 -8
  190. package/src/duckdb/src/core_functions/lambda_functions.cpp +5 -7
  191. package/src/duckdb/src/core_functions/scalar/array/array_functions.cpp +172 -198
  192. package/src/duckdb/src/core_functions/scalar/blob/create_sort_key.cpp +341 -54
  193. package/src/duckdb/src/core_functions/scalar/date/date_diff.cpp +2 -2
  194. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +89 -29
  195. package/src/duckdb/src/core_functions/scalar/date/date_trunc.cpp +1 -1
  196. package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +2 -2
  197. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +133 -71
  198. package/src/duckdb/src/core_functions/scalar/date/to_interval.cpp +1 -1
  199. package/src/duckdb/src/core_functions/scalar/enum/enum_functions.cpp +1 -1
  200. package/src/duckdb/src/core_functions/scalar/generic/can_implicitly_cast.cpp +40 -0
  201. package/src/duckdb/src/core_functions/scalar/generic/error.cpp +1 -1
  202. package/src/duckdb/src/core_functions/scalar/generic/least.cpp +161 -58
  203. package/src/duckdb/src/core_functions/scalar/generic/typeof.cpp +13 -0
  204. package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +1 -1
  205. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +59 -75
  206. package/src/duckdb/src/core_functions/scalar/list/list_distance.cpp +93 -40
  207. package/src/duckdb/src/core_functions/scalar/list/list_has_any_or_all.cpp +227 -0
  208. package/src/duckdb/src/core_functions/scalar/list/list_reduce.cpp +20 -19
  209. package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +0 -2
  210. package/src/duckdb/src/core_functions/scalar/list/list_value.cpp +106 -8
  211. package/src/duckdb/src/core_functions/scalar/map/map_contains.cpp +56 -0
  212. package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +73 -118
  213. package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +98 -2
  214. package/src/duckdb/src/core_functions/scalar/operators/bitwise.cpp +1 -2
  215. package/src/duckdb/src/core_functions/scalar/random/setseed.cpp +1 -1
  216. package/src/duckdb/src/core_functions/scalar/string/bar.cpp +1 -1
  217. package/src/duckdb/src/core_functions/scalar/string/hex.cpp +5 -1
  218. package/src/duckdb/src/core_functions/scalar/string/md5.cpp +10 -37
  219. package/src/duckdb/src/core_functions/scalar/string/printf.cpp +18 -2
  220. package/src/duckdb/src/core_functions/scalar/string/repeat.cpp +45 -0
  221. package/src/duckdb/src/core_functions/scalar/string/reverse.cpp +4 -5
  222. package/src/duckdb/src/core_functions/scalar/string/sha1.cpp +35 -0
  223. package/src/duckdb/src/core_functions/scalar/string/sha256.cpp +5 -2
  224. package/src/duckdb/src/core_functions/scalar/string/url_encode.cpp +49 -0
  225. package/src/duckdb/src/core_functions/scalar/struct/struct_pack.cpp +1 -2
  226. package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +4 -2
  227. package/src/duckdb/src/execution/adaptive_filter.cpp +30 -11
  228. package/src/duckdb/src/execution/aggregate_hashtable.cpp +13 -18
  229. package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +4 -9
  230. package/src/duckdb/src/execution/expression_executor.cpp +1 -1
  231. package/src/duckdb/src/execution/index/art/art.cpp +683 -670
  232. package/src/duckdb/src/execution/index/art/art_key.cpp +121 -38
  233. package/src/duckdb/src/execution/index/art/base_leaf.cpp +168 -0
  234. package/src/duckdb/src/execution/index/art/base_node.cpp +163 -0
  235. package/src/duckdb/src/execution/index/art/iterator.cpp +148 -77
  236. package/src/duckdb/src/execution/index/art/leaf.cpp +159 -263
  237. package/src/duckdb/src/execution/index/art/node.cpp +493 -247
  238. package/src/duckdb/src/execution/index/art/node256.cpp +31 -91
  239. package/src/duckdb/src/execution/index/art/node256_leaf.cpp +71 -0
  240. package/src/duckdb/src/execution/index/art/node48.cpp +75 -143
  241. package/src/duckdb/src/execution/index/art/prefix.cpp +424 -244
  242. package/src/duckdb/src/execution/index/bound_index.cpp +7 -1
  243. package/src/duckdb/src/execution/index/fixed_size_allocator.cpp +22 -18
  244. package/src/duckdb/src/execution/index/fixed_size_buffer.cpp +22 -73
  245. package/src/duckdb/src/execution/join_hashtable.cpp +637 -179
  246. package/src/duckdb/src/execution/operator/aggregate/aggregate_object.cpp +4 -4
  247. package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +15 -10
  248. package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +13 -8
  249. package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +525 -132
  250. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +147 -138
  251. package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +531 -312
  252. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +1 -1
  253. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +4 -3
  254. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +9 -2
  255. package/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +13 -17
  256. package/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp +60 -16
  257. package/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp +105 -0
  258. package/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp +24 -24
  259. package/src/duckdb/src/execution/operator/csv_scanner/scanner/skip_scanner.cpp +25 -2
  260. package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +275 -112
  261. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +106 -11
  262. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +253 -115
  263. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +93 -52
  264. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +116 -76
  265. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +29 -14
  266. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +1 -1
  267. package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +70 -26
  268. package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +81 -60
  269. package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +88 -50
  270. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +161 -51
  271. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +59 -17
  272. package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +5 -5
  273. package/src/duckdb/src/execution/operator/helper/physical_batch_collector.cpp +0 -21
  274. package/src/duckdb/src/execution/operator/helper/physical_buffered_batch_collector.cpp +109 -0
  275. package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +5 -13
  276. package/src/duckdb/src/execution/operator/helper/physical_explain_analyze.cpp +1 -1
  277. package/src/duckdb/src/execution/operator/helper/physical_load.cpp +12 -4
  278. package/src/duckdb/src/execution/operator/helper/physical_materialized_collector.cpp +0 -16
  279. package/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp +4 -2
  280. package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -0
  281. package/src/duckdb/src/execution/operator/helper/physical_result_collector.cpp +3 -1
  282. package/src/duckdb/src/execution/operator/helper/physical_set_variable.cpp +39 -0
  283. package/src/duckdb/src/execution/operator/helper/physical_streaming_sample.cpp +4 -2
  284. package/src/duckdb/src/execution/operator/helper/physical_transaction.cpp +16 -5
  285. package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
  286. package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
  287. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +1 -1
  288. package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +5 -4
  289. package/src/duckdb/src/execution/operator/join/physical_comparison_join.cpp +59 -21
  290. package/src/duckdb/src/execution/operator/join/physical_delim_join.cpp +7 -4
  291. package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +333 -176
  292. package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +57 -34
  293. package/src/duckdb/src/execution/operator/join/physical_join.cpp +16 -8
  294. package/src/duckdb/src/execution/operator/join/physical_left_delim_join.cpp +10 -4
  295. package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +2 -5
  296. package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
  297. package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +5 -5
  298. package/src/duckdb/src/execution/operator/join/physical_right_delim_join.cpp +7 -2
  299. package/src/duckdb/src/execution/operator/order/physical_order.cpp +17 -12
  300. package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +12 -9
  301. package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +35 -17
  302. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +17 -11
  303. package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +5 -1
  304. package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +156 -47
  305. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +10 -2
  306. package/src/duckdb/src/execution/operator/persistent/physical_update.cpp +1 -3
  307. package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
  308. package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +13 -6
  309. package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +22 -3
  310. package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +19 -3
  311. package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +37 -22
  312. package/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +77 -21
  313. package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +27 -55
  314. package/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp +41 -44
  315. package/src/duckdb/src/execution/operator/set/physical_cte.cpp +4 -6
  316. package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +4 -6
  317. package/src/duckdb/src/execution/operator/set/physical_union.cpp +18 -4
  318. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +3 -2
  319. package/src/duckdb/src/execution/physical_operator.cpp +45 -4
  320. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +18 -7
  321. package/src/duckdb/src/execution/physical_plan/plan_copy_to_file.cpp +8 -3
  322. package/src/duckdb/src/execution/physical_plan/plan_delim_join.cpp +13 -6
  323. package/src/duckdb/src/execution/physical_plan/plan_explain.cpp +3 -3
  324. package/src/duckdb/src/execution/physical_plan/plan_get.cpp +111 -19
  325. package/src/duckdb/src/execution/physical_plan/plan_limit.cpp +19 -2
  326. package/src/duckdb/src/execution/physical_plan/plan_set.cpp +9 -0
  327. package/src/duckdb/src/execution/physical_plan/plan_window.cpp +3 -1
  328. package/src/duckdb/src/execution/physical_plan_generator.cpp +3 -3
  329. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +49 -49
  330. package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
  331. package/src/duckdb/src/execution/window_executor.cpp +556 -318
  332. package/src/duckdb/src/execution/window_segment_tree.cpp +1058 -485
  333. package/src/duckdb/src/function/aggregate/distributive/count.cpp +5 -5
  334. package/src/duckdb/src/function/aggregate/distributive/first.cpp +92 -95
  335. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +10 -9
  336. package/src/duckdb/src/function/aggregate_function.cpp +8 -0
  337. package/src/duckdb/src/function/cast/cast_function_set.cpp +10 -1
  338. package/src/duckdb/src/function/cast/decimal_cast.cpp +10 -1
  339. package/src/duckdb/src/function/cast/default_casts.cpp +2 -0
  340. package/src/duckdb/src/function/cast/numeric_casts.cpp +3 -0
  341. package/src/duckdb/src/function/cast/string_cast.cpp +8 -5
  342. package/src/duckdb/src/function/cast/time_casts.cpp +2 -2
  343. package/src/duckdb/src/function/cast/union_casts.cpp +1 -1
  344. package/src/duckdb/src/function/cast/varint_casts.cpp +283 -0
  345. package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -1
  346. package/src/duckdb/src/function/cast_rules.cpp +104 -15
  347. package/src/duckdb/src/function/compression_config.cpp +35 -33
  348. package/src/duckdb/src/function/copy_function.cpp +27 -0
  349. package/src/duckdb/src/function/function_binder.cpp +39 -11
  350. package/src/duckdb/src/function/macro_function.cpp +75 -32
  351. package/src/duckdb/src/function/pragma/pragma_queries.cpp +10 -0
  352. package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +1 -0
  353. package/src/duckdb/src/function/scalar/generic/binning.cpp +507 -0
  354. package/src/duckdb/src/function/scalar/generic/getvariable.cpp +58 -0
  355. package/src/duckdb/src/function/scalar/generic_functions.cpp +1 -0
  356. package/src/duckdb/src/function/scalar/list/contains_or_position.cpp +33 -47
  357. package/src/duckdb/src/function/scalar/list/list_extract.cpp +70 -143
  358. package/src/duckdb/src/function/scalar/list/list_resize.cpp +93 -84
  359. package/src/duckdb/src/function/scalar/list/list_zip.cpp +3 -0
  360. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +24 -11
  361. package/src/duckdb/src/function/scalar/sequence/nextval.cpp +4 -4
  362. package/src/duckdb/src/function/scalar/strftime_format.cpp +196 -57
  363. package/src/duckdb/src/function/scalar/string/caseconvert.cpp +9 -7
  364. package/src/duckdb/src/function/scalar/string/concat.cpp +239 -123
  365. package/src/duckdb/src/function/scalar/string/concat_ws.cpp +149 -0
  366. package/src/duckdb/src/function/scalar/string/contains.cpp +18 -7
  367. package/src/duckdb/src/function/scalar/string/like.cpp +2 -2
  368. package/src/duckdb/src/function/scalar/string/substring.cpp +6 -11
  369. package/src/duckdb/src/function/scalar/string_functions.cpp +1 -0
  370. package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +7 -3
  371. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -5
  372. package/src/duckdb/src/function/scalar_function.cpp +5 -2
  373. package/src/duckdb/src/function/scalar_macro_function.cpp +2 -2
  374. package/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp +20 -39
  375. package/src/duckdb/src/function/table/arrow/arrow_type_info.cpp +135 -0
  376. package/src/duckdb/src/function/table/arrow.cpp +194 -52
  377. package/src/duckdb/src/function/table/arrow_conversion.cpp +212 -69
  378. package/src/duckdb/src/function/table/copy_csv.cpp +43 -14
  379. package/src/duckdb/src/function/table/query_function.cpp +80 -0
  380. package/src/duckdb/src/function/table/range.cpp +222 -142
  381. package/src/duckdb/src/function/table/read_csv.cpp +25 -13
  382. package/src/duckdb/src/function/table/sniff_csv.cpp +55 -35
  383. package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +141 -129
  384. package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +25 -14
  385. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +20 -14
  386. package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +15 -1
  387. package/src/duckdb/src/function/table/system/duckdb_variables.cpp +84 -0
  388. package/src/duckdb/src/function/table/system/test_all_types.cpp +1 -0
  389. package/src/duckdb/src/function/table/system/test_vector_types.cpp +33 -3
  390. package/src/duckdb/src/function/table/system_functions.cpp +1 -0
  391. package/src/duckdb/src/function/table/table_scan.cpp +45 -22
  392. package/src/duckdb/src/function/table/unnest.cpp +2 -2
  393. package/src/duckdb/src/function/table/version/pragma_version.cpp +4 -4
  394. package/src/duckdb/src/function/table_function.cpp +5 -4
  395. package/src/duckdb/src/function/table_macro_function.cpp +2 -2
  396. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +8 -4
  397. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +5 -2
  398. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +3 -0
  399. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +2 -2
  400. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +3 -4
  401. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +5 -5
  402. package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +2 -1
  403. package/src/duckdb/src/include/duckdb/catalog/default/default_functions.hpp +4 -5
  404. package/src/duckdb/src/include/duckdb/catalog/default/default_generator.hpp +4 -5
  405. package/src/duckdb/src/include/duckdb/catalog/default/default_schemas.hpp +2 -1
  406. package/src/duckdb/src/include/duckdb/catalog/default/default_table_functions.hpp +47 -0
  407. package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +2 -0
  408. package/src/duckdb/src/include/duckdb/catalog/similar_catalog_entry.hpp +2 -2
  409. package/src/duckdb/src/include/duckdb/common/allocator.hpp +9 -1
  410. package/src/duckdb/src/include/duckdb/common/array_ptr.hpp +120 -0
  411. package/src/duckdb/src/include/duckdb/common/arrow/appender/append_data.hpp +37 -11
  412. package/src/duckdb/src/include/duckdb/common/arrow/appender/enum_data.hpp +9 -8
  413. package/src/duckdb/src/include/duckdb/common/arrow/appender/list.hpp +1 -0
  414. package/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp +6 -4
  415. package/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp +92 -0
  416. package/src/duckdb/src/include/duckdb/common/arrow/appender/map_data.hpp +2 -2
  417. package/src/duckdb/src/include/duckdb/common/arrow/appender/scalar_data.hpp +26 -4
  418. package/src/duckdb/src/include/duckdb/common/arrow/appender/varchar_data.hpp +90 -11
  419. package/src/duckdb/src/include/duckdb/common/arrow/arrow_appender.hpp +6 -6
  420. package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +8 -1
  421. package/src/duckdb/src/include/duckdb/common/arrow/arrow_merge_event.hpp +62 -0
  422. package/src/duckdb/src/include/duckdb/common/arrow/arrow_query_result.hpp +52 -0
  423. package/src/duckdb/src/include/duckdb/common/arrow/arrow_types_extension.hpp +42 -0
  424. package/src/duckdb/src/include/duckdb/common/arrow/physical_arrow_batch_collector.hpp +30 -0
  425. package/src/duckdb/src/include/duckdb/common/arrow/physical_arrow_collector.hpp +65 -0
  426. package/src/duckdb/src/include/duckdb/common/arrow/schema_metadata.hpp +43 -0
  427. package/src/duckdb/src/include/duckdb/common/bswap.hpp +18 -16
  428. package/src/duckdb/src/include/duckdb/common/cgroups.hpp +30 -0
  429. package/src/duckdb/src/include/duckdb/common/compressed_file_system.hpp +3 -0
  430. package/src/duckdb/src/include/duckdb/common/dl.hpp +8 -1
  431. package/src/duckdb/src/include/duckdb/common/encryption_state.hpp +48 -0
  432. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +88 -0
  433. package/src/duckdb/src/include/duckdb/common/enums/checkpoint_type.hpp +2 -2
  434. package/src/duckdb/src/include/duckdb/common/enums/copy_overwrite_mode.hpp +6 -1
  435. package/src/duckdb/src/include/duckdb/common/enums/destroy_buffer_upon.hpp +21 -0
  436. package/src/duckdb/src/include/duckdb/common/enums/explain_format.hpp +17 -0
  437. package/src/duckdb/src/include/duckdb/common/enums/file_compression_type.hpp +4 -0
  438. package/src/duckdb/src/include/duckdb/common/enums/join_type.hpp +2 -2
  439. package/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +88 -0
  440. package/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp +6 -1
  441. package/src/duckdb/src/include/duckdb/common/enums/pending_execution_result.hpp +2 -1
  442. package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +1 -0
  443. package/src/duckdb/src/include/duckdb/common/enums/profiler_format.hpp +1 -1
  444. package/src/duckdb/src/include/duckdb/common/enums/relation_type.hpp +3 -1
  445. package/src/duckdb/src/include/duckdb/common/enums/set_scope.hpp +2 -1
  446. package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +23 -2
  447. package/src/duckdb/src/include/duckdb/common/enums/stream_execution_result.hpp +25 -0
  448. package/src/duckdb/src/include/duckdb/common/enums/tableref_type.hpp +2 -1
  449. package/src/duckdb/src/include/duckdb/common/enums/wal_type.hpp +1 -0
  450. package/src/duckdb/src/include/duckdb/common/error_data.hpp +5 -2
  451. package/src/duckdb/src/include/duckdb/common/exception/binder_exception.hpp +1 -0
  452. package/src/duckdb/src/include/duckdb/common/exception.hpp +20 -2
  453. package/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp +12 -0
  454. package/src/duckdb/src/include/duckdb/common/file_buffer.hpp +2 -0
  455. package/src/duckdb/src/include/duckdb/common/file_open_flags.hpp +16 -0
  456. package/src/duckdb/src/include/duckdb/common/file_opener.hpp +18 -0
  457. package/src/duckdb/src/include/duckdb/common/file_system.hpp +3 -0
  458. package/src/duckdb/src/include/duckdb/common/filename_pattern.hpp +4 -0
  459. package/src/duckdb/src/include/duckdb/common/fixed_size_map.hpp +160 -96
  460. package/src/duckdb/src/include/duckdb/common/fsst.hpp +9 -2
  461. package/src/duckdb/src/include/duckdb/common/helper.hpp +22 -8
  462. package/src/duckdb/src/include/duckdb/common/hive_partitioning.hpp +16 -7
  463. package/src/duckdb/src/include/duckdb/common/http_util.hpp +19 -0
  464. package/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +19 -6
  465. package/src/duckdb/src/include/duckdb/common/limits.hpp +9 -2
  466. package/src/duckdb/src/include/duckdb/common/multi_file_list.hpp +38 -6
  467. package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +9 -2
  468. package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +5 -1
  469. package/src/duckdb/src/include/duckdb/common/numeric_utils.hpp +82 -50
  470. package/src/duckdb/src/include/duckdb/common/operator/abs.hpp +11 -0
  471. package/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp +7 -3
  472. package/src/duckdb/src/include/duckdb/common/operator/decimal_cast_operators.hpp +23 -1
  473. package/src/duckdb/src/include/duckdb/common/operator/double_cast_operator.hpp +2 -1
  474. package/src/duckdb/src/include/duckdb/common/operator/integer_cast_operator.hpp +1 -1
  475. package/src/duckdb/src/include/duckdb/common/operator/numeric_cast.hpp +4 -0
  476. package/src/duckdb/src/include/duckdb/common/operator/string_cast.hpp +2 -0
  477. package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +10 -5
  478. package/src/duckdb/src/include/duckdb/common/optionally_owned_ptr.hpp +1 -0
  479. package/src/duckdb/src/include/duckdb/common/owning_string_map.hpp +155 -0
  480. package/src/duckdb/src/include/duckdb/common/perfect_map_set.hpp +2 -3
  481. package/src/duckdb/src/include/duckdb/common/platform.hpp +58 -0
  482. package/src/duckdb/src/include/duckdb/common/radix.hpp +172 -27
  483. package/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp +5 -1
  484. package/src/duckdb/src/include/duckdb/common/random_engine.hpp +1 -0
  485. package/src/duckdb/src/include/duckdb/common/re2_regex.hpp +1 -1
  486. package/src/duckdb/src/include/duckdb/common/render_tree.hpp +77 -0
  487. package/src/duckdb/src/include/duckdb/common/row_operations/row_matcher.hpp +12 -0
  488. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +6 -2
  489. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +5 -3
  490. package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +15 -7
  491. package/src/duckdb/src/include/duckdb/common/serializer/memory_stream.hpp +3 -1
  492. package/src/duckdb/src/include/duckdb/common/serializer/serialization_data.hpp +245 -0
  493. package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +10 -0
  494. package/src/duckdb/src/include/duckdb/common/sort/duckdb_pdqsort.hpp +10 -11
  495. package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +12 -6
  496. package/src/duckdb/src/include/duckdb/common/string_util.hpp +37 -7
  497. package/src/duckdb/src/include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp +44 -0
  498. package/src/duckdb/src/include/duckdb/common/tree_renderer/html_tree_renderer.hpp +44 -0
  499. package/src/duckdb/src/include/duckdb/common/tree_renderer/json_tree_renderer.hpp +44 -0
  500. package/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp +119 -0
  501. package/src/duckdb/src/include/duckdb/common/tree_renderer.hpp +9 -123
  502. package/src/duckdb/src/include/duckdb/common/type_visitor.hpp +96 -0
  503. package/src/duckdb/src/include/duckdb/common/typedefs.hpp +11 -1
  504. package/src/duckdb/src/include/duckdb/common/types/arrow_string_view_type.hpp +84 -0
  505. package/src/duckdb/src/include/duckdb/common/types/batched_data_collection.hpp +36 -1
  506. package/src/duckdb/src/include/duckdb/common/types/bit.hpp +1 -1
  507. package/src/duckdb/src/include/duckdb/common/types/cast_helpers.hpp +2 -2
  508. package/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp +4 -2
  509. package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +52 -0
  510. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +2 -0
  511. package/src/duckdb/src/include/duckdb/common/types/date.hpp +0 -3
  512. package/src/duckdb/src/include/duckdb/common/types/date_lookup_cache.hpp +65 -0
  513. package/src/duckdb/src/include/duckdb/common/types/datetime.hpp +5 -2
  514. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +49 -40
  515. package/src/duckdb/src/include/duckdb/common/types/interval.hpp +5 -1
  516. package/src/duckdb/src/include/duckdb/common/types/list_segment.hpp +2 -1
  517. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +41 -9
  518. package/src/duckdb/src/include/duckdb/common/types/row/row_data_collection.hpp +4 -3
  519. package/src/duckdb/src/include/duckdb/common/types/row/row_data_collection_scanner.hpp +3 -1
  520. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +4 -0
  521. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +4 -0
  522. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +1 -1
  523. package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +4 -0
  524. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +4 -1
  525. package/src/duckdb/src/include/duckdb/common/types/time.hpp +11 -6
  526. package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +13 -3
  527. package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +103 -12
  528. package/src/duckdb/src/include/duckdb/common/types/value.hpp +12 -3
  529. package/src/duckdb/src/include/duckdb/common/types/varint.hpp +107 -0
  530. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +5 -1
  531. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +7 -2
  532. package/src/duckdb/src/include/duckdb/common/types.hpp +6 -39
  533. package/src/duckdb/src/include/duckdb/common/union_by_name.hpp +42 -10
  534. package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +29 -0
  535. package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +0 -7
  536. package/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp +2 -0
  537. package/src/duckdb/src/include/duckdb/common/winapi.hpp +8 -0
  538. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +8 -4
  539. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +8 -4
  540. package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +4 -2
  541. package/src/duckdb/src/include/duckdb/core_functions/aggregate/histogram_helpers.hpp +99 -0
  542. package/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +16 -7
  543. package/src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp +396 -0
  544. package/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +10 -0
  545. package/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_helpers.hpp +65 -0
  546. package/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_sort_tree.hpp +349 -0
  547. package/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_state.hpp +300 -0
  548. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +1 -1
  549. package/src/duckdb/src/include/duckdb/core_functions/aggregate/sort_key_helpers.hpp +55 -0
  550. package/src/duckdb/src/include/duckdb/core_functions/array_kernels.hpp +107 -0
  551. package/src/duckdb/src/include/duckdb/core_functions/create_sort_key.hpp +55 -0
  552. package/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp +1 -2
  553. package/src/duckdb/src/include/duckdb/core_functions/scalar/array_functions.hpp +24 -0
  554. package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +9 -0
  555. package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +27 -0
  556. package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +80 -8
  557. package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +9 -0
  558. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +54 -0
  559. package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +30 -21
  560. package/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp +25 -14
  561. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +2 -48
  562. package/src/duckdb/src/include/duckdb/execution/executor.hpp +25 -2
  563. package/src/duckdb/src/include/duckdb/execution/ht_entry.hpp +102 -0
  564. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +94 -101
  565. package/src/duckdb/src/include/duckdb/execution/index/art/art_key.hpp +43 -25
  566. package/src/duckdb/src/include/duckdb/execution/index/art/base_leaf.hpp +109 -0
  567. package/src/duckdb/src/include/duckdb/execution/index/art/base_node.hpp +140 -0
  568. package/src/duckdb/src/include/duckdb/execution/index/art/iterator.hpp +43 -24
  569. package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +41 -52
  570. package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +133 -74
  571. package/src/duckdb/src/include/duckdb/execution/index/art/node256.hpp +46 -29
  572. package/src/duckdb/src/include/duckdb/execution/index/art/node256_leaf.hpp +53 -0
  573. package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +52 -35
  574. package/src/duckdb/src/include/duckdb/execution/index/art/prefix.hpp +96 -57
  575. package/src/duckdb/src/include/duckdb/execution/index/bound_index.hpp +9 -4
  576. package/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +48 -10
  577. package/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +0 -2
  578. package/src/duckdb/src/include/duckdb/execution/index/index_pointer.hpp +4 -2
  579. package/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +114 -36
  580. package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +158 -67
  581. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/aggregate_object.hpp +1 -1
  582. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +1 -1
  583. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_perfecthash_aggregate.hpp +1 -1
  584. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_streaming_window.hpp +19 -2
  585. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp +1 -1
  586. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +1 -1
  587. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp +75 -0
  588. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +81 -23
  589. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp +27 -8
  590. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +2 -1
  591. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +31 -22
  592. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +4 -2
  593. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp +48 -5
  594. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp +7 -3
  595. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +22 -12
  596. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp +35 -0
  597. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_sniffer.hpp +81 -39
  598. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp +2 -1
  599. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +18 -1
  600. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp +9 -7
  601. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp +5 -4
  602. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/header_value.hpp +26 -0
  603. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner_boundary.hpp +6 -9
  604. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/skip_scanner.hpp +3 -0
  605. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine_options.hpp +5 -3
  606. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +36 -19
  607. package/src/duckdb/src/include/duckdb/execution/operator/filter/physical_filter.hpp +1 -1
  608. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +21 -0
  609. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp +53 -0
  610. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_collector.hpp +3 -0
  611. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp +6 -2
  612. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_materialized_collector.hpp +18 -0
  613. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp +1 -1
  614. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +6 -0
  615. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set.hpp +2 -2
  616. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set_variable.hpp +43 -0
  617. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_streaming_sample.hpp +1 -1
  618. package/src/duckdb/src/include/duckdb/execution/operator/join/join_filter_pushdown.hpp +59 -0
  619. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_blockwise_nl_join.hpp +1 -1
  620. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_comparison_join.hpp +8 -1
  621. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_delim_join.hpp +5 -2
  622. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +4 -2
  623. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +2 -0
  624. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_join.hpp +1 -1
  625. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_left_delim_join.hpp +3 -1
  626. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_range_join.hpp +4 -1
  627. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_right_delim_join.hpp +3 -1
  628. package/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp +1 -1
  629. package/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp +1 -1
  630. package/src/duckdb/src/include/duckdb/execution/operator/persistent/batch_memory_manager.hpp +5 -37
  631. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp +5 -4
  632. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp +8 -2
  633. package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_projection.hpp +1 -1
  634. package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp +2 -0
  635. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +9 -3
  636. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +8 -6
  637. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp +2 -2
  638. package/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +1 -1
  639. package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +1 -1
  640. package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +21 -6
  641. package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +3 -2
  642. package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +3 -0
  643. package/src/duckdb/src/include/duckdb/execution/window_executor.hpp +137 -110
  644. package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +57 -126
  645. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +21 -4
  646. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +1 -1
  647. package/src/duckdb/src/include/duckdb/function/compression/compression.hpp +10 -10
  648. package/src/duckdb/src/include/duckdb/function/compression_function.hpp +37 -7
  649. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +24 -11
  650. package/src/duckdb/src/include/duckdb/function/function_binder.hpp +4 -4
  651. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +41 -1
  652. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +15 -5
  653. package/src/duckdb/src/include/duckdb/function/pragma/pragma_functions.hpp +1 -0
  654. package/src/duckdb/src/include/duckdb/function/replacement_scan.hpp +20 -4
  655. package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +6 -0
  656. package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +77 -109
  657. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -1
  658. package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +6 -3
  659. package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +25 -12
  660. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +9 -8
  661. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +38 -4
  662. package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +1 -1
  663. package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +11 -57
  664. package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_type_info.hpp +142 -0
  665. package/src/duckdb/src/include/duckdb/function/table/arrow/enum/arrow_datetime_type.hpp +18 -0
  666. package/src/duckdb/src/include/duckdb/function/table/arrow/enum/arrow_type_info_type.hpp +7 -0
  667. package/src/duckdb/src/include/duckdb/function/table/arrow/enum/arrow_variable_size_type.hpp +10 -0
  668. package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +2 -0
  669. package/src/duckdb/src/include/duckdb/function/table/range.hpp +4 -0
  670. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +4 -1
  671. package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +4 -0
  672. package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +5 -5
  673. package/src/duckdb/src/include/duckdb/function/table_function.hpp +14 -2
  674. package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +1 -1
  675. package/src/duckdb/src/include/duckdb/main/appender.hpp +14 -4
  676. package/src/duckdb/src/include/duckdb/main/attached_database.hpp +25 -7
  677. package/src/duckdb/src/include/duckdb/main/buffered_data/batched_buffered_data.hpp +79 -0
  678. package/src/duckdb/src/include/duckdb/main/buffered_data/buffered_data.hpp +10 -20
  679. package/src/duckdb/src/include/duckdb/main/buffered_data/simple_buffered_data.hpp +11 -12
  680. package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +7 -2
  681. package/src/duckdb/src/include/duckdb/main/capi/cast/generic.hpp +1 -1
  682. package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +2 -2
  683. package/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp +809 -0
  684. package/src/duckdb/src/include/duckdb/main/chunk_scan_state/batched_data_collection.hpp +35 -0
  685. package/src/duckdb/src/include/duckdb/main/client_config.hpp +68 -2
  686. package/src/duckdb/src/include/duckdb/main/client_context.hpp +30 -22
  687. package/src/duckdb/src/include/duckdb/main/client_context_state.hpp +79 -1
  688. package/src/duckdb/src/include/duckdb/main/client_properties.hpp +9 -3
  689. package/src/duckdb/src/include/duckdb/main/config.hpp +55 -7
  690. package/src/duckdb/src/include/duckdb/main/connection.hpp +5 -1
  691. package/src/duckdb/src/include/duckdb/main/database.hpp +16 -5
  692. package/src/duckdb/src/include/duckdb/main/database_manager.hpp +9 -8
  693. package/src/duckdb/src/include/duckdb/main/db_instance_cache.hpp +21 -6
  694. package/src/duckdb/src/include/duckdb/main/extension.hpp +20 -0
  695. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +25 -0
  696. package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +29 -23
  697. package/src/duckdb/src/include/duckdb/main/extension_install_info.hpp +6 -0
  698. package/src/duckdb/src/include/duckdb/main/extension_util.hpp +3 -0
  699. package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +4 -2
  700. package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +5 -6
  701. package/src/duckdb/src/include/duckdb/main/prepared_statement_data.hpp +2 -5
  702. package/src/duckdb/src/include/duckdb/main/profiling_info.hpp +87 -0
  703. package/src/duckdb/src/include/duckdb/main/profiling_node.hpp +60 -0
  704. package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +72 -34
  705. package/src/duckdb/src/include/duckdb/main/query_result.hpp +1 -1
  706. package/src/duckdb/src/include/duckdb/main/relation/create_table_relation.hpp +2 -1
  707. package/src/duckdb/src/include/duckdb/main/relation/delim_get_relation.hpp +30 -0
  708. package/src/duckdb/src/include/duckdb/main/relation/explain_relation.hpp +3 -1
  709. package/src/duckdb/src/include/duckdb/main/relation/join_relation.hpp +3 -0
  710. package/src/duckdb/src/include/duckdb/main/relation/materialized_relation.hpp +1 -4
  711. package/src/duckdb/src/include/duckdb/main/relation/query_relation.hpp +4 -1
  712. package/src/duckdb/src/include/duckdb/main/relation/read_json_relation.hpp +6 -0
  713. package/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp +1 -0
  714. package/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp +2 -0
  715. package/src/duckdb/src/include/duckdb/main/relation.hpp +7 -4
  716. package/src/duckdb/src/include/duckdb/main/secret/default_secrets.hpp +36 -0
  717. package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +108 -0
  718. package/src/duckdb/src/include/duckdb/main/secret/secret_manager.hpp +14 -4
  719. package/src/duckdb/src/include/duckdb/main/settings.hpp +227 -3
  720. package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +8 -0
  721. package/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp +51 -0
  722. package/src/duckdb/src/include/duckdb/optimizer/compressed_materialization.hpp +7 -0
  723. package/src/duckdb/src/include/duckdb/optimizer/cte_filter_pusher.hpp +46 -0
  724. package/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp +1 -1
  725. package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +7 -0
  726. package/src/duckdb/src/include/duckdb/optimizer/join_filter_pushdown_optimizer.hpp +31 -0
  727. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +51 -10
  728. package/src/duckdb/src/include/duckdb/optimizer/join_order/cost_model.hpp +1 -0
  729. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_order_optimizer.hpp +17 -5
  730. package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph.hpp +1 -1
  731. package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph_manager.hpp +15 -13
  732. package/src/duckdb/src/include/duckdb/optimizer/join_order/relation_manager.hpp +9 -4
  733. package/src/duckdb/src/include/duckdb/optimizer/limit_pushdown.hpp +25 -0
  734. package/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +1 -0
  735. package/src/duckdb/src/include/duckdb/optimizer/rule/join_dependent_filter.hpp +37 -0
  736. package/src/duckdb/src/include/duckdb/parallel/executor_task.hpp +6 -1
  737. package/src/duckdb/src/include/duckdb/parallel/interrupt.hpp +54 -2
  738. package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +27 -8
  739. package/src/duckdb/src/include/duckdb/parallel/pipeline.hpp +1 -0
  740. package/src/duckdb/src/include/duckdb/parallel/pipeline_prepare_finish_event.hpp +25 -0
  741. package/src/duckdb/src/include/duckdb/parallel/task_executor.hpp +63 -0
  742. package/src/duckdb/src/include/duckdb/parallel/task_scheduler.hpp +10 -1
  743. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +4 -1
  744. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +5 -0
  745. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +5 -0
  746. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +5 -0
  747. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +2 -0
  748. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +11 -1
  749. package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +9 -0
  750. package/src/duckdb/src/include/duckdb/parser/parsed_expression_iterator.hpp +13 -6
  751. package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +1 -1
  752. package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +1 -3
  753. package/src/duckdb/src/include/duckdb/parser/statement/copy_statement.hpp +2 -0
  754. package/src/duckdb/src/include/duckdb/parser/statement/explain_statement.hpp +5 -1
  755. package/src/duckdb/src/include/duckdb/parser/statement/set_statement.hpp +2 -2
  756. package/src/duckdb/src/include/duckdb/parser/statement/transaction_statement.hpp +1 -1
  757. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +0 -2
  758. package/src/duckdb/src/include/duckdb/parser/tableref/column_data_ref.hpp +9 -7
  759. package/src/duckdb/src/include/duckdb/parser/tableref/delimgetref.hpp +37 -0
  760. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +4 -0
  761. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +0 -2
  762. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +0 -2
  763. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +0 -1
  764. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +3 -1
  765. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +17 -9
  766. package/src/duckdb/src/include/duckdb/planner/binder.hpp +24 -14
  767. package/src/duckdb/src/include/duckdb/planner/collation_binding.hpp +44 -0
  768. package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
  769. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
  770. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
  771. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
  772. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
  773. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
  774. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
  775. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
  776. package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +1 -1
  777. package/src/duckdb/src/include/duckdb/planner/expression/bound_expanded_expression.hpp +1 -1
  778. package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
  779. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
  780. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
  781. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
  782. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_data.hpp +2 -0
  783. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
  784. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
  785. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +2 -2
  786. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
  787. package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
  788. package/src/duckdb/src/include/duckdb/planner/expression.hpp +2 -2
  789. package/src/duckdb/src/include/duckdb/planner/expression_binder/column_alias_binder.hpp +2 -0
  790. package/src/duckdb/src/include/duckdb/planner/expression_binder/group_binder.hpp +1 -0
  791. package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +6 -5
  792. package/src/duckdb/src/include/duckdb/planner/expression_binder/where_binder.hpp +1 -0
  793. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +19 -11
  794. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +4 -0
  795. package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +2 -0
  796. package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +4 -0
  797. package/src/duckdb/src/include/duckdb/planner/filter/struct_filter.hpp +2 -0
  798. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +7 -2
  799. package/src/duckdb/src/include/duckdb/planner/logical_operator_visitor.hpp +2 -1
  800. package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +1 -1
  801. package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +1 -1
  802. package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +6 -1
  803. package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +10 -2
  804. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +1 -0
  805. package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +1 -1
  806. package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +1 -1
  807. package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +1 -1
  808. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +4 -2
  809. package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +15 -5
  810. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +1 -0
  811. package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +1 -1
  812. package/src/duckdb/src/include/duckdb/planner/subquery/flatten_dependent_join.hpp +2 -1
  813. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +24 -2
  814. package/src/duckdb/src/include/duckdb/planner/tableref/bound_delimgetref.hpp +26 -0
  815. package/src/duckdb/src/include/duckdb/planner/tableref/bound_joinref.hpp +6 -0
  816. package/src/duckdb/src/include/duckdb/planner/tableref/bound_subqueryref.hpp +1 -1
  817. package/src/duckdb/src/include/duckdb/planner/tableref/bound_table_function.hpp +2 -0
  818. package/src/duckdb/src/include/duckdb/planner/tableref/list.hpp +2 -0
  819. package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +2 -1
  820. package/src/duckdb/src/include/duckdb/storage/block.hpp +4 -2
  821. package/src/duckdb/src/include/duckdb/storage/block_manager.hpp +48 -3
  822. package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +21 -7
  823. package/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp +65 -51
  824. package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +14 -5
  825. package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +0 -4
  826. package/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp +3 -2
  827. package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +1 -0
  828. package/src/duckdb/src/include/duckdb/storage/checkpoint/write_overflow_strings_to_disk.hpp +3 -4
  829. package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +2 -0
  830. package/src/duckdb/src/include/duckdb/storage/compression/alp/algorithm/alp.hpp +4 -4
  831. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_analyze.hpp +6 -4
  832. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +19 -17
  833. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp +2 -2
  834. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_scan.hpp +3 -4
  835. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_utils.hpp +3 -2
  836. package/src/duckdb/src/include/duckdb/storage/compression/alprd/algorithm/alprd.hpp +3 -2
  837. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +13 -11
  838. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +19 -19
  839. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_scan.hpp +3 -4
  840. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_scan.hpp +1 -1
  841. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_scan.hpp +1 -1
  842. package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +10 -2
  843. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +3 -2
  844. package/src/duckdb/src/include/duckdb/storage/in_memory_block_manager.hpp +15 -0
  845. package/src/duckdb/src/include/duckdb/storage/index_storage_info.hpp +14 -10
  846. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +6 -8
  847. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +7 -4
  848. package/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp +4 -7
  849. package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +29 -4
  850. package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +22 -7
  851. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +15 -2
  852. package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +8 -2
  853. package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +5 -16
  854. package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats_union.hpp +51 -13
  855. package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +6 -3
  856. package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +29 -19
  857. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +23 -7
  858. package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +27 -18
  859. package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +6 -3
  860. package/src/duckdb/src/include/duckdb/storage/table/array_column_data.hpp +5 -2
  861. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +3 -0
  862. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +5 -1
  863. package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +77 -6
  864. package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +23 -11
  865. package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -0
  866. package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +5 -2
  867. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +18 -4
  868. package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +7 -1
  869. package/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp +2 -1
  870. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +89 -14
  871. package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +4 -2
  872. package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +4 -2
  873. package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +2 -2
  874. package/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp +1 -1
  875. package/src/duckdb/src/include/duckdb/storage/temporary_memory_manager.hpp +33 -15
  876. package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +9 -9
  877. package/src/duckdb/src/include/duckdb/transaction/cleanup_state.hpp +3 -1
  878. package/src/duckdb/src/include/duckdb/transaction/commit_state.hpp +4 -16
  879. package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +27 -4
  880. package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +11 -0
  881. package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +6 -2
  882. package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +5 -5
  883. package/src/duckdb/src/include/duckdb/transaction/transaction_context.hpp +6 -2
  884. package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +5 -3
  885. package/src/duckdb/src/include/duckdb/transaction/wal_write_state.hpp +48 -0
  886. package/src/duckdb/src/include/duckdb.h +1779 -739
  887. package/src/duckdb/src/include/duckdb_extension.h +921 -0
  888. package/src/duckdb/src/main/appender.cpp +53 -7
  889. package/src/duckdb/src/main/attached_database.cpp +87 -17
  890. package/src/duckdb/src/main/buffered_data/batched_buffered_data.cpp +226 -0
  891. package/src/duckdb/src/main/buffered_data/buffered_data.cpp +35 -0
  892. package/src/duckdb/src/main/buffered_data/simple_buffered_data.cpp +48 -23
  893. package/src/duckdb/src/main/capi/aggregate_function-c.cpp +327 -0
  894. package/src/duckdb/src/main/capi/appender-c.cpp +18 -0
  895. package/src/duckdb/src/main/capi/cast/utils-c.cpp +2 -2
  896. package/src/duckdb/src/main/capi/cast_function-c.cpp +210 -0
  897. package/src/duckdb/src/main/capi/config-c.cpp +3 -3
  898. package/src/duckdb/src/main/capi/data_chunk-c.cpp +18 -7
  899. package/src/duckdb/src/main/capi/duckdb_value-c.cpp +223 -24
  900. package/src/duckdb/src/main/capi/helper-c.cpp +51 -11
  901. package/src/duckdb/src/main/capi/logical_types-c.cpp +105 -46
  902. package/src/duckdb/src/main/capi/pending-c.cpp +7 -6
  903. package/src/duckdb/src/main/capi/prepared-c.cpp +18 -7
  904. package/src/duckdb/src/main/capi/profiling_info-c.cpp +84 -0
  905. package/src/duckdb/src/main/capi/result-c.cpp +139 -37
  906. package/src/duckdb/src/main/capi/scalar_function-c.cpp +269 -0
  907. package/src/duckdb/src/main/capi/table_description-c.cpp +82 -0
  908. package/src/duckdb/src/main/capi/table_function-c.cpp +161 -95
  909. package/src/duckdb/src/main/capi/value-c.cpp +2 -2
  910. package/src/duckdb/src/main/chunk_scan_state/batched_data_collection.cpp +57 -0
  911. package/src/duckdb/src/main/client_config.cpp +17 -0
  912. package/src/duckdb/src/main/client_context.cpp +67 -52
  913. package/src/duckdb/src/main/client_data.cpp +3 -3
  914. package/src/duckdb/src/main/config.cpp +120 -62
  915. package/src/duckdb/src/main/connection.cpp +14 -2
  916. package/src/duckdb/src/main/database.cpp +96 -35
  917. package/src/duckdb/src/main/database_manager.cpp +25 -23
  918. package/src/duckdb/src/main/database_path_and_type.cpp +2 -2
  919. package/src/duckdb/src/main/db_instance_cache.cpp +54 -19
  920. package/src/duckdb/src/main/extension/extension_helper.cpp +47 -42
  921. package/src/duckdb/src/main/extension/extension_install.cpp +155 -87
  922. package/src/duckdb/src/main/extension/extension_load.cpp +180 -26
  923. package/src/duckdb/src/main/extension/extension_util.cpp +8 -0
  924. package/src/duckdb/src/main/extension.cpp +72 -5
  925. package/src/duckdb/src/main/pending_query_result.cpp +20 -12
  926. package/src/duckdb/src/main/prepared_statement.cpp +6 -6
  927. package/src/duckdb/src/main/prepared_statement_data.cpp +28 -17
  928. package/src/duckdb/src/main/profiling_info.cpp +196 -0
  929. package/src/duckdb/src/main/query_profiler.cpp +413 -224
  930. package/src/duckdb/src/main/query_result.cpp +1 -1
  931. package/src/duckdb/src/main/relation/create_table_relation.cpp +4 -2
  932. package/src/duckdb/src/main/relation/create_view_relation.cpp +0 -6
  933. package/src/duckdb/src/main/relation/delim_get_relation.cpp +44 -0
  934. package/src/duckdb/src/main/relation/explain_relation.cpp +4 -3
  935. package/src/duckdb/src/main/relation/join_relation.cpp +5 -0
  936. package/src/duckdb/src/main/relation/limit_relation.cpp +1 -1
  937. package/src/duckdb/src/main/relation/materialized_relation.cpp +3 -3
  938. package/src/duckdb/src/main/relation/query_relation.cpp +42 -15
  939. package/src/duckdb/src/main/relation/read_csv_relation.cpp +7 -14
  940. package/src/duckdb/src/main/relation/read_json_relation.cpp +20 -0
  941. package/src/duckdb/src/main/relation/setop_relation.cpp +1 -1
  942. package/src/duckdb/src/main/relation/table_function_relation.cpp +6 -0
  943. package/src/duckdb/src/main/relation/view_relation.cpp +10 -0
  944. package/src/duckdb/src/main/relation.cpp +12 -8
  945. package/src/duckdb/src/main/secret/default_secrets.cpp +108 -0
  946. package/src/duckdb/src/main/secret/secret.cpp +145 -2
  947. package/src/duckdb/src/main/secret/secret_manager.cpp +85 -35
  948. package/src/duckdb/src/main/secret/secret_storage.cpp +29 -17
  949. package/src/duckdb/src/main/settings/settings.cpp +503 -11
  950. package/src/duckdb/src/main/stream_query_result.cpp +75 -2
  951. package/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp +248 -0
  952. package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +28 -6
  953. package/src/duckdb/src/optimizer/compressed_materialization/compress_comparison_join.cpp +152 -0
  954. package/src/duckdb/src/optimizer/compressed_materialization.cpp +11 -1
  955. package/src/duckdb/src/optimizer/cse_optimizer.cpp +3 -0
  956. package/src/duckdb/src/optimizer/cte_filter_pusher.cpp +117 -0
  957. package/src/duckdb/src/optimizer/filter_combiner.cpp +30 -9
  958. package/src/duckdb/src/optimizer/filter_pullup.cpp +54 -2
  959. package/src/duckdb/src/optimizer/filter_pushdown.cpp +71 -3
  960. package/src/duckdb/src/optimizer/join_filter_pushdown_optimizer.cpp +154 -0
  961. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +245 -114
  962. package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +42 -20
  963. package/src/duckdb/src/optimizer/join_order/join_relation_set.cpp +6 -2
  964. package/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp +32 -10
  965. package/src/duckdb/src/optimizer/join_order/query_graph_manager.cpp +97 -131
  966. package/src/duckdb/src/optimizer/join_order/relation_manager.cpp +265 -51
  967. package/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp +21 -17
  968. package/src/duckdb/src/optimizer/limit_pushdown.cpp +42 -0
  969. package/src/duckdb/src/optimizer/optimizer.cpp +51 -8
  970. package/src/duckdb/src/optimizer/pushdown/pushdown_aggregate.cpp +17 -17
  971. package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +22 -4
  972. package/src/duckdb/src/optimizer/pushdown/pushdown_get.cpp +1 -18
  973. package/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +6 -0
  974. package/src/duckdb/src/optimizer/pushdown/pushdown_mark_join.cpp +4 -2
  975. package/src/duckdb/src/optimizer/pushdown/pushdown_window.cpp +91 -0
  976. package/src/duckdb/src/optimizer/remove_unused_columns.cpp +21 -25
  977. package/src/duckdb/src/optimizer/rule/comparison_simplification.cpp +1 -0
  978. package/src/duckdb/src/optimizer/rule/empty_needle_removal.cpp +3 -0
  979. package/src/duckdb/src/optimizer/rule/equal_or_null_simplification.cpp +2 -2
  980. package/src/duckdb/src/optimizer/rule/in_clause_simplification_rule.cpp +8 -2
  981. package/src/duckdb/src/optimizer/rule/join_dependent_filter.cpp +135 -0
  982. package/src/duckdb/src/optimizer/rule/like_optimizations.cpp +1 -1
  983. package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +1 -1
  984. package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -1
  985. package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +7 -6
  986. package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +1 -1
  987. package/src/duckdb/src/optimizer/topn_optimizer.cpp +46 -7
  988. package/src/duckdb/src/parallel/executor.cpp +129 -51
  989. package/src/duckdb/src/parallel/executor_task.cpp +16 -3
  990. package/src/duckdb/src/parallel/meta_pipeline.cpp +98 -29
  991. package/src/duckdb/src/parallel/pipeline.cpp +17 -3
  992. package/src/duckdb/src/parallel/pipeline_executor.cpp +14 -2
  993. package/src/duckdb/src/parallel/pipeline_prepare_finish_event.cpp +34 -0
  994. package/src/duckdb/src/parallel/task_executor.cpp +84 -0
  995. package/src/duckdb/src/parallel/task_scheduler.cpp +94 -16
  996. package/src/duckdb/src/parallel/thread_context.cpp +1 -1
  997. package/src/duckdb/src/parser/expression/function_expression.cpp +14 -0
  998. package/src/duckdb/src/parser/expression/star_expression.cpp +35 -2
  999. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +5 -1
  1000. package/src/duckdb/src/parser/parsed_data/attach_info.cpp +17 -0
  1001. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +37 -28
  1002. package/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +44 -2
  1003. package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +21 -1
  1004. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +29 -25
  1005. package/src/duckdb/src/parser/parser.cpp +41 -1
  1006. package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +1 -0
  1007. package/src/duckdb/src/parser/statement/explain_statement.cpp +28 -13
  1008. package/src/duckdb/src/parser/statement/relation_statement.cpp +5 -0
  1009. package/src/duckdb/src/parser/statement/set_statement.cpp +4 -2
  1010. package/src/duckdb/src/parser/statement/transaction_statement.cpp +3 -3
  1011. package/src/duckdb/src/parser/tableref/column_data_ref.cpp +1 -27
  1012. package/src/duckdb/src/parser/tableref/delimgetref.cpp +30 -0
  1013. package/src/duckdb/src/parser/tableref/joinref.cpp +4 -0
  1014. package/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp +35 -29
  1015. package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +32 -32
  1016. package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +2 -1
  1017. package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +17 -0
  1018. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +5 -0
  1019. package/src/duckdb/src/parser/transform/expression/transform_multi_assign_reference.cpp +36 -34
  1020. package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +30 -14
  1021. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +1 -1
  1022. package/src/duckdb/src/parser/transform/helpers/transform_alias.cpp +2 -1
  1023. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +27 -19
  1024. package/src/duckdb/src/parser/transform/helpers/transform_orderby.cpp +31 -28
  1025. package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +25 -27
  1026. package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +1 -1
  1027. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +53 -42
  1028. package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +6 -6
  1029. package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +1 -1
  1030. package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +1 -1
  1031. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +1 -1
  1032. package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +38 -3
  1033. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +1 -2
  1034. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +1 -1
  1035. package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +1 -1
  1036. package/src/duckdb/src/parser/transform/statement/transform_select.cpp +26 -21
  1037. package/src/duckdb/src/parser/transform/statement/transform_set.cpp +8 -8
  1038. package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -2
  1039. package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +6 -4
  1040. package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +27 -6
  1041. package/src/duckdb/src/parser/transform/statement/transform_update.cpp +8 -9
  1042. package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +11 -12
  1043. package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +3 -3
  1044. package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +16 -10
  1045. package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +1 -1
  1046. package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +1 -1
  1047. package/src/duckdb/src/parser/transformer.cpp +11 -7
  1048. package/src/duckdb/src/planner/bind_context.cpp +3 -3
  1049. package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +22 -7
  1050. package/src/duckdb/src/planner/binder/expression/bind_between_expression.cpp +3 -3
  1051. package/src/duckdb/src/planner/binder/expression/bind_collate_expression.cpp +3 -2
  1052. package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +11 -4
  1053. package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +9 -54
  1054. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +3 -5
  1055. package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +24 -27
  1056. package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +7 -7
  1057. package/src/duckdb/src/planner/binder/expression/bind_parameter_expression.cpp +9 -2
  1058. package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +26 -7
  1059. package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +5 -0
  1060. package/src/duckdb/src/planner/binder/expression/bind_unpacked_star_expression.cpp +91 -0
  1061. package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +2 -2
  1062. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +11 -8
  1063. package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +1 -1
  1064. package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +6 -10
  1065. package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +14 -10
  1066. package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +3 -3
  1067. package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +46 -7
  1068. package/src/duckdb/src/planner/binder/statement/bind_call.cpp +13 -20
  1069. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +105 -13
  1070. package/src/duckdb/src/planner/binder/statement/bind_copy_database.cpp +7 -3
  1071. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +75 -55
  1072. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +1 -1
  1073. package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +5 -4
  1074. package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +2 -2
  1075. package/src/duckdb/src/planner/binder/statement/bind_execute.cpp +24 -8
  1076. package/src/duckdb/src/planner/binder/statement/bind_explain.cpp +2 -2
  1077. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +5 -105
  1078. package/src/duckdb/src/planner/binder/statement/bind_extension.cpp +2 -2
  1079. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +109 -41
  1080. package/src/duckdb/src/planner/binder/statement/bind_set.cpp +23 -7
  1081. package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +4 -1
  1082. package/src/duckdb/src/planner/binder/statement/bind_summarize.cpp +17 -3
  1083. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +5 -4
  1084. package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +8 -6
  1085. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +55 -42
  1086. package/src/duckdb/src/planner/binder/tableref/bind_column_data_ref.cpp +3 -2
  1087. package/src/duckdb/src/planner/binder/tableref/bind_delimgetref.cpp +16 -0
  1088. package/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp +31 -1
  1089. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +6 -0
  1090. package/src/duckdb/src/planner/binder/tableref/bind_showref.cpp +2 -0
  1091. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +106 -46
  1092. package/src/duckdb/src/planner/binder/tableref/plan_delimgetref.cpp +11 -0
  1093. package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +15 -2
  1094. package/src/duckdb/src/planner/binder/tableref/plan_table_function.cpp +4 -0
  1095. package/src/duckdb/src/planner/binder.cpp +172 -15
  1096. package/src/duckdb/src/planner/collation_binding.cpp +99 -0
  1097. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +10 -4
  1098. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +1 -1
  1099. package/src/duckdb/src/planner/expression/bound_case_expression.cpp +1 -1
  1100. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +14 -12
  1101. package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +1 -1
  1102. package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +1 -1
  1103. package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +1 -1
  1104. package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +1 -1
  1105. package/src/duckdb/src/planner/expression/bound_expanded_expression.cpp +1 -1
  1106. package/src/duckdb/src/planner/expression/bound_function_expression.cpp +8 -2
  1107. package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +1 -1
  1108. package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +1 -1
  1109. package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +1 -1
  1110. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +1 -1
  1111. package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +1 -1
  1112. package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
  1113. package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +1 -1
  1114. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +6 -6
  1115. package/src/duckdb/src/planner/expression_binder/aggregate_binder.cpp +1 -1
  1116. package/src/duckdb/src/planner/expression_binder/alter_binder.cpp +2 -2
  1117. package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +1 -1
  1118. package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +7 -0
  1119. package/src/duckdb/src/planner/expression_binder/constant_binder.cpp +3 -3
  1120. package/src/duckdb/src/planner/expression_binder/group_binder.cpp +26 -22
  1121. package/src/duckdb/src/planner/expression_binder/having_binder.cpp +7 -1
  1122. package/src/duckdb/src/planner/expression_binder/index_binder.cpp +2 -2
  1123. package/src/duckdb/src/planner/expression_binder/insert_binder.cpp +2 -2
  1124. package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +2 -2
  1125. package/src/duckdb/src/planner/expression_binder/order_binder.cpp +61 -43
  1126. package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +2 -2
  1127. package/src/duckdb/src/planner/expression_binder/relation_binder.cpp +4 -4
  1128. package/src/duckdb/src/planner/expression_binder/returning_binder.cpp +3 -2
  1129. package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +10 -3
  1130. package/src/duckdb/src/planner/expression_binder/update_binder.cpp +1 -1
  1131. package/src/duckdb/src/planner/expression_binder/where_binder.cpp +9 -2
  1132. package/src/duckdb/src/planner/expression_binder.cpp +121 -21
  1133. package/src/duckdb/src/planner/expression_iterator.cpp +26 -1
  1134. package/src/duckdb/src/planner/filter/conjunction_filter.cpp +33 -0
  1135. package/src/duckdb/src/planner/filter/constant_filter.cpp +15 -0
  1136. package/src/duckdb/src/planner/filter/null_filter.cpp +22 -0
  1137. package/src/duckdb/src/planner/filter/struct_filter.cpp +16 -0
  1138. package/src/duckdb/src/planner/logical_operator.cpp +24 -7
  1139. package/src/duckdb/src/planner/operator/logical_aggregate.cpp +13 -7
  1140. package/src/duckdb/src/planner/operator/logical_any_join.cpp +5 -2
  1141. package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +13 -5
  1142. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +64 -8
  1143. package/src/duckdb/src/planner/operator/logical_cteref.cpp +7 -0
  1144. package/src/duckdb/src/planner/operator/logical_distinct.cpp +6 -5
  1145. package/src/duckdb/src/planner/operator/logical_get.cpp +60 -18
  1146. package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +7 -0
  1147. package/src/duckdb/src/planner/operator/logical_order.cpp +7 -4
  1148. package/src/duckdb/src/planner/operator/logical_top_n.cpp +2 -2
  1149. package/src/duckdb/src/planner/operator/logical_vacuum.cpp +1 -1
  1150. package/src/duckdb/src/planner/planner.cpp +2 -3
  1151. package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +27 -10
  1152. package/src/duckdb/src/planner/table_filter.cpp +51 -0
  1153. package/src/duckdb/src/storage/arena_allocator.cpp +28 -10
  1154. package/src/duckdb/src/storage/block.cpp +3 -2
  1155. package/src/duckdb/src/storage/buffer/block_handle.cpp +29 -14
  1156. package/src/duckdb/src/storage/buffer/block_manager.cpp +6 -5
  1157. package/src/duckdb/src/storage/buffer/buffer_handle.cpp +1 -1
  1158. package/src/duckdb/src/storage/buffer/buffer_pool.cpp +264 -125
  1159. package/src/duckdb/src/storage/buffer_manager.cpp +5 -1
  1160. package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +0 -6
  1161. package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +26 -3
  1162. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +21 -9
  1163. package/src/duckdb/src/storage/checkpoint_manager.cpp +49 -24
  1164. package/src/duckdb/src/storage/compression/alp/alp.cpp +6 -11
  1165. package/src/duckdb/src/storage/compression/alprd.cpp +5 -9
  1166. package/src/duckdb/src/storage/compression/bitpacking.cpp +35 -31
  1167. package/src/duckdb/src/storage/compression/chimp/chimp.cpp +6 -8
  1168. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +71 -58
  1169. package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +15 -13
  1170. package/src/duckdb/src/storage/compression/fsst.cpp +66 -53
  1171. package/src/duckdb/src/storage/compression/numeric_constant.cpp +4 -5
  1172. package/src/duckdb/src/storage/compression/patas.cpp +6 -17
  1173. package/src/duckdb/src/storage/compression/rle.cpp +20 -18
  1174. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +71 -52
  1175. package/src/duckdb/src/storage/compression/uncompressed.cpp +2 -2
  1176. package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +8 -7
  1177. package/src/duckdb/src/storage/data_pointer.cpp +22 -0
  1178. package/src/duckdb/src/storage/data_table.cpp +41 -12
  1179. package/src/duckdb/src/storage/local_storage.cpp +22 -8
  1180. package/src/duckdb/src/storage/metadata/metadata_manager.cpp +33 -17
  1181. package/src/duckdb/src/storage/metadata/metadata_reader.cpp +4 -4
  1182. package/src/duckdb/src/storage/metadata/metadata_writer.cpp +3 -3
  1183. package/src/duckdb/src/storage/partial_block_manager.cpp +19 -8
  1184. package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +11 -8
  1185. package/src/duckdb/src/storage/serialization/serialize_expression.cpp +1 -1
  1186. package/src/duckdb/src/storage/serialization/serialize_extension_install_info.cpp +2 -0
  1187. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +3 -3
  1188. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +19 -5
  1189. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +21 -1
  1190. package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +4 -2
  1191. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +2 -2
  1192. package/src/duckdb/src/storage/serialization/serialize_storage.cpp +2 -0
  1193. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +8 -4
  1194. package/src/duckdb/src/storage/serialization/serialize_types.cpp +4 -4
  1195. package/src/duckdb/src/storage/single_file_block_manager.cpp +170 -34
  1196. package/src/duckdb/src/storage/standard_buffer_manager.cpp +221 -64
  1197. package/src/duckdb/src/storage/statistics/column_statistics.cpp +4 -3
  1198. package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +36 -26
  1199. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +4 -15
  1200. package/src/duckdb/src/storage/statistics/string_stats.cpp +14 -8
  1201. package/src/duckdb/src/storage/statistics/struct_stats.cpp +2 -1
  1202. package/src/duckdb/src/storage/storage_info.cpp +34 -9
  1203. package/src/duckdb/src/storage/storage_manager.cpp +147 -74
  1204. package/src/duckdb/src/storage/table/array_column_data.cpp +37 -17
  1205. package/src/duckdb/src/storage/table/chunk_info.cpp +38 -0
  1206. package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +10 -6
  1207. package/src/duckdb/src/storage/table/column_data.cpp +252 -31
  1208. package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +2 -12
  1209. package/src/duckdb/src/storage/table/column_segment.cpp +63 -34
  1210. package/src/duckdb/src/storage/table/list_column_data.cpp +34 -15
  1211. package/src/duckdb/src/storage/table/row_group.cpp +228 -120
  1212. package/src/duckdb/src/storage/table/row_group_collection.cpp +122 -120
  1213. package/src/duckdb/src/storage/table/row_version_manager.cpp +27 -1
  1214. package/src/duckdb/src/storage/table/scan_state.cpp +101 -18
  1215. package/src/duckdb/src/storage/table/standard_column_data.cpp +20 -34
  1216. package/src/duckdb/src/storage/table/struct_column_data.cpp +39 -42
  1217. package/src/duckdb/src/storage/table/table_statistics.cpp +2 -1
  1218. package/src/duckdb/src/storage/table/update_segment.cpp +9 -8
  1219. package/src/duckdb/src/storage/table/validity_column_data.cpp +2 -2
  1220. package/src/duckdb/src/storage/table_index_list.cpp +8 -7
  1221. package/src/duckdb/src/storage/temporary_file_manager.cpp +11 -9
  1222. package/src/duckdb/src/storage/temporary_memory_manager.cpp +227 -39
  1223. package/src/duckdb/src/storage/wal_replay.cpp +68 -28
  1224. package/src/duckdb/src/storage/write_ahead_log.cpp +56 -47
  1225. package/src/duckdb/src/transaction/cleanup_state.cpp +9 -1
  1226. package/src/duckdb/src/transaction/commit_state.cpp +7 -170
  1227. package/src/duckdb/src/transaction/duck_transaction.cpp +87 -19
  1228. package/src/duckdb/src/transaction/duck_transaction_manager.cpp +65 -10
  1229. package/src/duckdb/src/transaction/meta_transaction.cpp +18 -3
  1230. package/src/duckdb/src/transaction/transaction_context.cpp +21 -17
  1231. package/src/duckdb/src/transaction/undo_buffer.cpp +20 -14
  1232. package/src/duckdb/src/transaction/wal_write_state.cpp +292 -0
  1233. package/src/duckdb/src/verification/prepared_statement_verifier.cpp +0 -1
  1234. package/src/duckdb/third_party/brotli/common/brotli_constants.h +204 -0
  1235. package/src/duckdb/third_party/brotli/common/brotli_platform.h +543 -0
  1236. package/src/duckdb/third_party/brotli/common/constants.cpp +17 -0
  1237. package/src/duckdb/third_party/brotli/common/context.cpp +156 -0
  1238. package/src/duckdb/third_party/brotli/common/context.h +110 -0
  1239. package/src/duckdb/third_party/brotli/common/dictionary.cpp +5912 -0
  1240. package/src/duckdb/third_party/brotli/common/dictionary.h +60 -0
  1241. package/src/duckdb/third_party/brotli/common/platform.cpp +24 -0
  1242. package/src/duckdb/third_party/brotli/common/shared_dictionary.cpp +517 -0
  1243. package/src/duckdb/third_party/brotli/common/shared_dictionary_internal.h +71 -0
  1244. package/src/duckdb/third_party/brotli/common/transform.cpp +287 -0
  1245. package/src/duckdb/third_party/brotli/common/transform.h +77 -0
  1246. package/src/duckdb/third_party/brotli/common/version.h +51 -0
  1247. package/src/duckdb/third_party/brotli/dec/bit_reader.cpp +74 -0
  1248. package/src/duckdb/third_party/brotli/dec/bit_reader.h +419 -0
  1249. package/src/duckdb/third_party/brotli/dec/decode.cpp +2758 -0
  1250. package/src/duckdb/third_party/brotli/dec/huffman.cpp +338 -0
  1251. package/src/duckdb/third_party/brotli/dec/huffman.h +118 -0
  1252. package/src/duckdb/third_party/brotli/dec/prefix.h +733 -0
  1253. package/src/duckdb/third_party/brotli/dec/state.cpp +178 -0
  1254. package/src/duckdb/third_party/brotli/dec/state.h +386 -0
  1255. package/src/duckdb/third_party/brotli/enc/backward_references.cpp +3775 -0
  1256. package/src/duckdb/third_party/brotli/enc/backward_references.h +36 -0
  1257. package/src/duckdb/third_party/brotli/enc/backward_references_hq.cpp +935 -0
  1258. package/src/duckdb/third_party/brotli/enc/backward_references_hq.h +92 -0
  1259. package/src/duckdb/third_party/brotli/enc/bit_cost.cpp +410 -0
  1260. package/src/duckdb/third_party/brotli/enc/bit_cost.h +60 -0
  1261. package/src/duckdb/third_party/brotli/enc/block_splitter.cpp +1653 -0
  1262. package/src/duckdb/third_party/brotli/enc/block_splitter.h +48 -0
  1263. package/src/duckdb/third_party/brotli/enc/brotli_bit_stream.cpp +1431 -0
  1264. package/src/duckdb/third_party/brotli/enc/brotli_bit_stream.h +85 -0
  1265. package/src/duckdb/third_party/brotli/enc/brotli_hash.h +4352 -0
  1266. package/src/duckdb/third_party/brotli/enc/brotli_params.h +47 -0
  1267. package/src/duckdb/third_party/brotli/enc/cluster.cpp +1025 -0
  1268. package/src/duckdb/third_party/brotli/enc/cluster.h +1017 -0
  1269. package/src/duckdb/third_party/brotli/enc/command.cpp +24 -0
  1270. package/src/duckdb/third_party/brotli/enc/command.h +187 -0
  1271. package/src/duckdb/third_party/brotli/enc/compound_dictionary.cpp +209 -0
  1272. package/src/duckdb/third_party/brotli/enc/compound_dictionary.h +75 -0
  1273. package/src/duckdb/third_party/brotli/enc/compress_fragment.cpp +796 -0
  1274. package/src/duckdb/third_party/brotli/enc/compress_fragment.h +82 -0
  1275. package/src/duckdb/third_party/brotli/enc/compress_fragment_two_pass.cpp +653 -0
  1276. package/src/duckdb/third_party/brotli/enc/compress_fragment_two_pass.h +68 -0
  1277. package/src/duckdb/third_party/brotli/enc/dictionary_hash.cpp +1844 -0
  1278. package/src/duckdb/third_party/brotli/enc/dictionary_hash.h +21 -0
  1279. package/src/duckdb/third_party/brotli/enc/encode.cpp +1990 -0
  1280. package/src/duckdb/third_party/brotli/enc/encoder_dict.cpp +636 -0
  1281. package/src/duckdb/third_party/brotli/enc/encoder_dict.h +153 -0
  1282. package/src/duckdb/third_party/brotli/enc/entropy_encode.cpp +500 -0
  1283. package/src/duckdb/third_party/brotli/enc/entropy_encode.h +119 -0
  1284. package/src/duckdb/third_party/brotli/enc/entropy_encode_static.h +538 -0
  1285. package/src/duckdb/third_party/brotli/enc/fast_log.cpp +101 -0
  1286. package/src/duckdb/third_party/brotli/enc/fast_log.h +63 -0
  1287. package/src/duckdb/third_party/brotli/enc/find_match_length.h +68 -0
  1288. package/src/duckdb/third_party/brotli/enc/histogram.cpp +96 -0
  1289. package/src/duckdb/third_party/brotli/enc/histogram.h +210 -0
  1290. package/src/duckdb/third_party/brotli/enc/literal_cost.cpp +176 -0
  1291. package/src/duckdb/third_party/brotli/enc/literal_cost.h +28 -0
  1292. package/src/duckdb/third_party/brotli/enc/memory.cpp +190 -0
  1293. package/src/duckdb/third_party/brotli/enc/memory.h +127 -0
  1294. package/src/duckdb/third_party/brotli/enc/metablock.cpp +1225 -0
  1295. package/src/duckdb/third_party/brotli/enc/metablock.h +102 -0
  1296. package/src/duckdb/third_party/brotli/enc/prefix.h +50 -0
  1297. package/src/duckdb/third_party/brotli/enc/quality.h +202 -0
  1298. package/src/duckdb/third_party/brotli/enc/ringbuffer.h +164 -0
  1299. package/src/duckdb/third_party/brotli/enc/state.h +106 -0
  1300. package/src/duckdb/third_party/brotli/enc/static_dict.cpp +538 -0
  1301. package/src/duckdb/third_party/brotli/enc/static_dict.h +37 -0
  1302. package/src/duckdb/third_party/brotli/enc/static_dict_lut.h +5862 -0
  1303. package/src/duckdb/third_party/brotli/enc/utf8_util.cpp +81 -0
  1304. package/src/duckdb/third_party/brotli/enc/utf8_util.h +29 -0
  1305. package/src/duckdb/third_party/brotli/enc/write_bits.h +84 -0
  1306. package/src/duckdb/third_party/brotli/include/brotli/decode.h +405 -0
  1307. package/src/duckdb/third_party/brotli/include/brotli/encode.h +489 -0
  1308. package/src/duckdb/third_party/brotli/include/brotli/port.h +238 -0
  1309. package/src/duckdb/third_party/brotli/include/brotli/shared_dictionary.h +96 -0
  1310. package/src/duckdb/third_party/brotli/include/brotli/types.h +83 -0
  1311. package/src/duckdb/third_party/fast_float/fast_float/fast_float.h +20 -4
  1312. package/src/duckdb/third_party/fmt/include/fmt/format.h +54 -10
  1313. package/src/duckdb/third_party/fsst/fsst.h +2 -2
  1314. package/src/duckdb/third_party/fsst/libfsst.hpp +2 -2
  1315. package/src/duckdb/third_party/httplib/httplib.hpp +6763 -5580
  1316. package/src/duckdb/third_party/hyperloglog/hyperloglog.cpp +13 -30
  1317. package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +8 -2
  1318. package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +1 -0
  1319. package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +22 -9
  1320. package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +1041 -554
  1321. package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +1 -0
  1322. package/src/duckdb/third_party/libpg_query/postgres_parser.cpp +2 -1
  1323. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +21605 -21752
  1324. package/src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp +538 -299
  1325. package/src/duckdb/third_party/mbedtls/include/mbedtls/mbedtls_config.h +1 -0
  1326. package/src/duckdb/third_party/mbedtls/include/mbedtls_wrapper.hpp +36 -12
  1327. package/src/duckdb/third_party/mbedtls/library/md.cpp +6 -6
  1328. package/src/duckdb/third_party/mbedtls/library/sha1.cpp +2 -0
  1329. package/src/duckdb/third_party/mbedtls/library/sha256.cpp +3 -0
  1330. package/src/duckdb/third_party/mbedtls/mbedtls_wrapper.cpp +99 -47
  1331. package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
  1332. package/src/duckdb/third_party/re2/re2/prog.cc +2 -2
  1333. package/src/duckdb/third_party/snappy/snappy-internal.h +398 -0
  1334. package/src/duckdb/third_party/snappy/snappy-sinksource.cc +111 -9
  1335. package/src/duckdb/third_party/snappy/snappy-sinksource.h +158 -0
  1336. package/src/duckdb/third_party/snappy/snappy-stubs-internal.h +523 -3
  1337. package/src/duckdb/third_party/snappy/snappy-stubs-public.h +34 -1
  1338. package/src/duckdb/third_party/snappy/snappy.cc +2626 -0
  1339. package/src/duckdb/third_party/snappy/snappy.h +223 -0
  1340. package/src/duckdb/third_party/snappy/snappy_version.hpp +11 -0
  1341. package/src/duckdb/third_party/utf8proc/include/utf8proc.hpp +69 -101
  1342. package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +53 -0
  1343. package/src/duckdb/third_party/utf8proc/utf8proc.cpp +627 -678
  1344. package/src/duckdb/third_party/utf8proc/utf8proc_data.cpp +15008 -12868
  1345. package/src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp +185 -29
  1346. package/src/duckdb/ub_extension_json_json_functions.cpp +6 -0
  1347. package/src/duckdb/ub_src_catalog_default.cpp +4 -0
  1348. package/src/duckdb/ub_src_common.cpp +7 -1
  1349. package/src/duckdb/ub_src_common_arrow.cpp +10 -0
  1350. package/src/duckdb/ub_src_common_enums.cpp +2 -0
  1351. package/src/duckdb/ub_src_common_tree_renderer.cpp +10 -0
  1352. package/src/duckdb/ub_src_common_types.cpp +2 -0
  1353. package/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +4 -0
  1354. package/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +2 -0
  1355. package/src/duckdb/ub_src_core_functions_scalar_generic.cpp +2 -0
  1356. package/src/duckdb/ub_src_core_functions_scalar_list.cpp +2 -4
  1357. package/src/duckdb/ub_src_core_functions_scalar_map.cpp +2 -0
  1358. package/src/duckdb/ub_src_core_functions_scalar_string.cpp +4 -0
  1359. package/src/duckdb/ub_src_execution_index_art.cpp +5 -3
  1360. package/src/duckdb/ub_src_execution_operator_csv_scanner_scanner.cpp +2 -0
  1361. package/src/duckdb/ub_src_execution_operator_helper.cpp +4 -0
  1362. package/src/duckdb/ub_src_function.cpp +4 -0
  1363. package/src/duckdb/ub_src_function_cast.cpp +2 -0
  1364. package/src/duckdb/ub_src_function_scalar_generic.cpp +4 -0
  1365. package/src/duckdb/ub_src_function_scalar_list.cpp +0 -2
  1366. package/src/duckdb/ub_src_function_scalar_string.cpp +2 -0
  1367. package/src/duckdb/ub_src_function_table.cpp +2 -0
  1368. package/src/duckdb/ub_src_function_table_arrow.cpp +2 -0
  1369. package/src/duckdb/ub_src_function_table_system.cpp +2 -0
  1370. package/src/duckdb/ub_src_main.cpp +4 -0
  1371. package/src/duckdb/ub_src_main_buffered_data.cpp +4 -0
  1372. package/src/duckdb/ub_src_main_capi.cpp +10 -0
  1373. package/src/duckdb/ub_src_main_chunk_scan_state.cpp +2 -0
  1374. package/src/duckdb/ub_src_main_relation.cpp +2 -0
  1375. package/src/duckdb/ub_src_main_secret.cpp +2 -0
  1376. package/src/duckdb/ub_src_optimizer.cpp +8 -0
  1377. package/src/duckdb/ub_src_optimizer_compressed_materialization.cpp +2 -0
  1378. package/src/duckdb/ub_src_optimizer_pushdown.cpp +2 -0
  1379. package/src/duckdb/ub_src_optimizer_rule.cpp +2 -0
  1380. package/src/duckdb/ub_src_parallel.cpp +4 -0
  1381. package/src/duckdb/ub_src_parser_tableref.cpp +2 -0
  1382. package/src/duckdb/ub_src_planner.cpp +2 -0
  1383. package/src/duckdb/ub_src_planner_binder_expression.cpp +2 -0
  1384. package/src/duckdb/ub_src_planner_binder_tableref.cpp +4 -0
  1385. package/src/duckdb/ub_src_storage_statistics.cpp +0 -2
  1386. package/src/duckdb/ub_src_transaction.cpp +2 -0
  1387. package/test/columns.test.ts +1 -1
  1388. package/test/prepare.test.ts +1 -1
  1389. package/test/test_all_types.test.ts +1 -1
@@ -0,0 +1,921 @@
1
+ //===----------------------------------------------------------------------===//
2
+ //
3
+ // DuckDB
4
+ //
5
+ // duckdb_extension.h
6
+ //
7
+ //
8
+ //===----------------------------------------------------------------------===//
9
+ //
10
+ // !!!!!!!
11
+ // WARNING: this file is autogenerated by scripts/generate_c_api.py, manual changes will be overwritten
12
+ // !!!!!!!
13
+
14
+ // WARNING: this API is not yet stable, this means that this API is only guaranteed to work for this specific DuckDB
15
+ // version
16
+
17
+ #pragma once
18
+
19
+ #include "duckdb.h"
20
+
21
+ //===--------------------------------------------------------------------===//
22
+ // Util Macros
23
+ //===--------------------------------------------------------------------===//
24
+
25
+ #ifdef __cplusplus
26
+ #define DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN extern "C" {
27
+ #define DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE }
28
+ #else
29
+ #define DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN
30
+ #define DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE
31
+ #endif
32
+
33
+ #define DUCKDB_EXTENSION_GLUE_HELPER(x, y) x##y
34
+ #define DUCKDB_EXTENSION_GLUE(x, y) DUCKDB_EXTENSION_GLUE_HELPER(x, y)
35
+ #define DUCKDB_EXTENSION_STR_HELPER(x) #x
36
+ #define DUCKDB_EXTENSION_STR(x) DUCKDB_EXTENSION_STR_HELPER(x)
37
+ #define DUCKDB_EXTENSION_SEMVER_STRING(major, minor, patch) \
38
+ "v" DUCKDB_EXTENSION_STR_HELPER(major) "." DUCKDB_EXTENSION_STR_HELPER(minor) "." DUCKDB_EXTENSION_STR_HELPER(patch)
39
+
40
+ //===--------------------------------------------------------------------===//
41
+ // Versioning
42
+ //===--------------------------------------------------------------------===//
43
+ //! Set version to latest if no explicit version is defined
44
+ #if !defined(DUCKDB_EXTENSION_API_VERSION_MAJOR) && !defined(DUCKDB_EXTENSION_API_VERSION_MINOR) && \
45
+ !defined(DUCKDB_EXTENSION_API_VERSION_PATCH)
46
+ #define DUCKDB_EXTENSION_API_VERSION_MAJOR 0
47
+ #define DUCKDB_EXTENSION_API_VERSION_MINOR 0
48
+ #define DUCKDB_EXTENSION_API_VERSION_PATCH 1
49
+ #elif !(defined(DUCKDB_EXTENSION_API_VERSION_MAJOR) && defined(DUCKDB_EXTENSION_API_VERSION_MINOR) && \
50
+ defined(DUCKDB_EXTENSION_API_VERSION_PATCH))
51
+ #error "either all or none of the DUCKDB_EXTENSION_API_VERSION_ defines should be defined"
52
+ #endif
53
+
54
+ //! Set the DUCKDB_EXTENSION_API_VERSION_STRING which is passed to DuckDB on extension load
55
+ #if DUCKDB_EXTENSION_API_VERSION_DEV
56
+ #define DUCKDB_EXTENSION_API_VERSION_STRING "dev"
57
+ #else
58
+ #define DUCKDB_EXTENSION_API_VERSION_STRING \
59
+ DUCKDB_EXTENSION_SEMVER_STRING(DUCKDB_EXTENSION_API_VERSION_MAJOR, DUCKDB_EXTENSION_API_VERSION_MINOR, \
60
+ DUCKDB_EXTENSION_API_VERSION_PATCH)
61
+ #endif
62
+
63
+ #if DUCKDB_EXTENSION_API_VERSION_MAJOR != 0
64
+ #error "This version of the extension API header only supports API VERSION v0.x.x"
65
+ #endif
66
+
67
+ //===--------------------------------------------------------------------===//
68
+ // Function pointer struct
69
+ //===--------------------------------------------------------------------===//
70
+ typedef struct {
71
+ #if DUCKDB_EXTENSION_API_VERSION_MINOR >= 0 && DUCKDB_EXTENSION_API_VERSION_PATCH >= 1 // v0.0.1
72
+ duckdb_state (*duckdb_open)(const char *path, duckdb_database *out_database);
73
+ duckdb_state (*duckdb_open_ext)(const char *path, duckdb_database *out_database, duckdb_config config,
74
+ char **out_error);
75
+ void (*duckdb_close)(duckdb_database *database);
76
+ duckdb_state (*duckdb_connect)(duckdb_database database, duckdb_connection *out_connection);
77
+ void (*duckdb_interrupt)(duckdb_connection connection);
78
+ duckdb_query_progress_type (*duckdb_query_progress)(duckdb_connection connection);
79
+ void (*duckdb_disconnect)(duckdb_connection *connection);
80
+ const char *(*duckdb_library_version)();
81
+ duckdb_state (*duckdb_create_config)(duckdb_config *out_config);
82
+ size_t (*duckdb_config_count)();
83
+ duckdb_state (*duckdb_get_config_flag)(size_t index, const char **out_name, const char **out_description);
84
+ duckdb_state (*duckdb_set_config)(duckdb_config config, const char *name, const char *option);
85
+ void (*duckdb_destroy_config)(duckdb_config *config);
86
+ duckdb_state (*duckdb_query)(duckdb_connection connection, const char *query, duckdb_result *out_result);
87
+ void (*duckdb_destroy_result)(duckdb_result *result);
88
+ const char *(*duckdb_column_name)(duckdb_result *result, idx_t col);
89
+ duckdb_type (*duckdb_column_type)(duckdb_result *result, idx_t col);
90
+ duckdb_statement_type (*duckdb_result_statement_type)(duckdb_result result);
91
+ duckdb_logical_type (*duckdb_column_logical_type)(duckdb_result *result, idx_t col);
92
+ idx_t (*duckdb_column_count)(duckdb_result *result);
93
+ idx_t (*duckdb_rows_changed)(duckdb_result *result);
94
+ const char *(*duckdb_result_error)(duckdb_result *result);
95
+ void *(*duckdb_malloc)(size_t size);
96
+ void (*duckdb_free)(void *ptr);
97
+ idx_t (*duckdb_vector_size)();
98
+ bool (*duckdb_string_is_inlined)(duckdb_string_t string);
99
+ duckdb_date_struct (*duckdb_from_date)(duckdb_date date);
100
+ duckdb_date (*duckdb_to_date)(duckdb_date_struct date);
101
+ bool (*duckdb_is_finite_date)(duckdb_date date);
102
+ duckdb_time_struct (*duckdb_from_time)(duckdb_time time);
103
+ duckdb_time_tz (*duckdb_create_time_tz)(int64_t micros, int32_t offset);
104
+ duckdb_time_tz_struct (*duckdb_from_time_tz)(duckdb_time_tz micros);
105
+ duckdb_time (*duckdb_to_time)(duckdb_time_struct time);
106
+ duckdb_timestamp_struct (*duckdb_from_timestamp)(duckdb_timestamp ts);
107
+ duckdb_timestamp (*duckdb_to_timestamp)(duckdb_timestamp_struct ts);
108
+ bool (*duckdb_is_finite_timestamp)(duckdb_timestamp ts);
109
+ double (*duckdb_hugeint_to_double)(duckdb_hugeint val);
110
+ duckdb_hugeint (*duckdb_double_to_hugeint)(double val);
111
+ double (*duckdb_uhugeint_to_double)(duckdb_uhugeint val);
112
+ duckdb_uhugeint (*duckdb_double_to_uhugeint)(double val);
113
+ duckdb_decimal (*duckdb_double_to_decimal)(double val, uint8_t width, uint8_t scale);
114
+ double (*duckdb_decimal_to_double)(duckdb_decimal val);
115
+ duckdb_state (*duckdb_prepare)(duckdb_connection connection, const char *query,
116
+ duckdb_prepared_statement *out_prepared_statement);
117
+ void (*duckdb_destroy_prepare)(duckdb_prepared_statement *prepared_statement);
118
+ const char *(*duckdb_prepare_error)(duckdb_prepared_statement prepared_statement);
119
+ idx_t (*duckdb_nparams)(duckdb_prepared_statement prepared_statement);
120
+ const char *(*duckdb_parameter_name)(duckdb_prepared_statement prepared_statement, idx_t index);
121
+ duckdb_type (*duckdb_param_type)(duckdb_prepared_statement prepared_statement, idx_t param_idx);
122
+ duckdb_state (*duckdb_clear_bindings)(duckdb_prepared_statement prepared_statement);
123
+ duckdb_statement_type (*duckdb_prepared_statement_type)(duckdb_prepared_statement statement);
124
+ duckdb_state (*duckdb_bind_value)(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_value val);
125
+ duckdb_state (*duckdb_bind_parameter_index)(duckdb_prepared_statement prepared_statement, idx_t *param_idx_out,
126
+ const char *name);
127
+ duckdb_state (*duckdb_bind_boolean)(duckdb_prepared_statement prepared_statement, idx_t param_idx, bool val);
128
+ duckdb_state (*duckdb_bind_int8)(duckdb_prepared_statement prepared_statement, idx_t param_idx, int8_t val);
129
+ duckdb_state (*duckdb_bind_int16)(duckdb_prepared_statement prepared_statement, idx_t param_idx, int16_t val);
130
+ duckdb_state (*duckdb_bind_int32)(duckdb_prepared_statement prepared_statement, idx_t param_idx, int32_t val);
131
+ duckdb_state (*duckdb_bind_int64)(duckdb_prepared_statement prepared_statement, idx_t param_idx, int64_t val);
132
+ duckdb_state (*duckdb_bind_hugeint)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
133
+ duckdb_hugeint val);
134
+ duckdb_state (*duckdb_bind_uhugeint)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
135
+ duckdb_uhugeint val);
136
+ duckdb_state (*duckdb_bind_decimal)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
137
+ duckdb_decimal val);
138
+ duckdb_state (*duckdb_bind_uint8)(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint8_t val);
139
+ duckdb_state (*duckdb_bind_uint16)(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint16_t val);
140
+ duckdb_state (*duckdb_bind_uint32)(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint32_t val);
141
+ duckdb_state (*duckdb_bind_uint64)(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint64_t val);
142
+ duckdb_state (*duckdb_bind_float)(duckdb_prepared_statement prepared_statement, idx_t param_idx, float val);
143
+ duckdb_state (*duckdb_bind_double)(duckdb_prepared_statement prepared_statement, idx_t param_idx, double val);
144
+ duckdb_state (*duckdb_bind_date)(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_date val);
145
+ duckdb_state (*duckdb_bind_time)(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_time val);
146
+ duckdb_state (*duckdb_bind_timestamp)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
147
+ duckdb_timestamp val);
148
+ duckdb_state (*duckdb_bind_timestamp_tz)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
149
+ duckdb_timestamp val);
150
+ duckdb_state (*duckdb_bind_interval)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
151
+ duckdb_interval val);
152
+ duckdb_state (*duckdb_bind_varchar)(duckdb_prepared_statement prepared_statement, idx_t param_idx, const char *val);
153
+ duckdb_state (*duckdb_bind_varchar_length)(duckdb_prepared_statement prepared_statement, idx_t param_idx,
154
+ const char *val, idx_t length);
155
+ duckdb_state (*duckdb_bind_blob)(duckdb_prepared_statement prepared_statement, idx_t param_idx, const void *data,
156
+ idx_t length);
157
+ duckdb_state (*duckdb_bind_null)(duckdb_prepared_statement prepared_statement, idx_t param_idx);
158
+ duckdb_state (*duckdb_execute_prepared)(duckdb_prepared_statement prepared_statement, duckdb_result *out_result);
159
+ idx_t (*duckdb_extract_statements)(duckdb_connection connection, const char *query,
160
+ duckdb_extracted_statements *out_extracted_statements);
161
+ duckdb_state (*duckdb_prepare_extracted_statement)(duckdb_connection connection,
162
+ duckdb_extracted_statements extracted_statements, idx_t index,
163
+ duckdb_prepared_statement *out_prepared_statement);
164
+ const char *(*duckdb_extract_statements_error)(duckdb_extracted_statements extracted_statements);
165
+ void (*duckdb_destroy_extracted)(duckdb_extracted_statements *extracted_statements);
166
+ duckdb_state (*duckdb_pending_prepared)(duckdb_prepared_statement prepared_statement,
167
+ duckdb_pending_result *out_result);
168
+ void (*duckdb_destroy_pending)(duckdb_pending_result *pending_result);
169
+ const char *(*duckdb_pending_error)(duckdb_pending_result pending_result);
170
+ duckdb_pending_state (*duckdb_pending_execute_task)(duckdb_pending_result pending_result);
171
+ duckdb_pending_state (*duckdb_pending_execute_check_state)(duckdb_pending_result pending_result);
172
+ duckdb_state (*duckdb_execute_pending)(duckdb_pending_result pending_result, duckdb_result *out_result);
173
+ bool (*duckdb_pending_execution_is_finished)(duckdb_pending_state pending_state);
174
+ void (*duckdb_destroy_value)(duckdb_value *value);
175
+ duckdb_value (*duckdb_create_varchar)(const char *text);
176
+ duckdb_value (*duckdb_create_varchar_length)(const char *text, idx_t length);
177
+ duckdb_value (*duckdb_create_int64)(int64_t val);
178
+ duckdb_value (*duckdb_create_struct_value)(duckdb_logical_type type, duckdb_value *values);
179
+ duckdb_value (*duckdb_create_list_value)(duckdb_logical_type type, duckdb_value *values, idx_t value_count);
180
+ duckdb_value (*duckdb_create_array_value)(duckdb_logical_type type, duckdb_value *values, idx_t value_count);
181
+ char *(*duckdb_get_varchar)(duckdb_value value);
182
+ int64_t (*duckdb_get_int64)(duckdb_value val);
183
+ duckdb_logical_type (*duckdb_create_logical_type)(duckdb_type type);
184
+ char *(*duckdb_logical_type_get_alias)(duckdb_logical_type type);
185
+ duckdb_logical_type (*duckdb_create_list_type)(duckdb_logical_type type);
186
+ duckdb_logical_type (*duckdb_create_array_type)(duckdb_logical_type type, idx_t array_size);
187
+ duckdb_logical_type (*duckdb_create_map_type)(duckdb_logical_type key_type, duckdb_logical_type value_type);
188
+ duckdb_logical_type (*duckdb_create_union_type)(duckdb_logical_type *member_types, const char **member_names,
189
+ idx_t member_count);
190
+ duckdb_logical_type (*duckdb_create_struct_type)(duckdb_logical_type *member_types, const char **member_names,
191
+ idx_t member_count);
192
+ duckdb_logical_type (*duckdb_create_enum_type)(const char **member_names, idx_t member_count);
193
+ duckdb_logical_type (*duckdb_create_decimal_type)(uint8_t width, uint8_t scale);
194
+ duckdb_type (*duckdb_get_type_id)(duckdb_logical_type type);
195
+ uint8_t (*duckdb_decimal_width)(duckdb_logical_type type);
196
+ uint8_t (*duckdb_decimal_scale)(duckdb_logical_type type);
197
+ duckdb_type (*duckdb_decimal_internal_type)(duckdb_logical_type type);
198
+ duckdb_type (*duckdb_enum_internal_type)(duckdb_logical_type type);
199
+ uint32_t (*duckdb_enum_dictionary_size)(duckdb_logical_type type);
200
+ char *(*duckdb_enum_dictionary_value)(duckdb_logical_type type, idx_t index);
201
+ duckdb_logical_type (*duckdb_list_type_child_type)(duckdb_logical_type type);
202
+ duckdb_logical_type (*duckdb_array_type_child_type)(duckdb_logical_type type);
203
+ idx_t (*duckdb_array_type_array_size)(duckdb_logical_type type);
204
+ duckdb_logical_type (*duckdb_map_type_key_type)(duckdb_logical_type type);
205
+ duckdb_logical_type (*duckdb_map_type_value_type)(duckdb_logical_type type);
206
+ idx_t (*duckdb_struct_type_child_count)(duckdb_logical_type type);
207
+ char *(*duckdb_struct_type_child_name)(duckdb_logical_type type, idx_t index);
208
+ duckdb_logical_type (*duckdb_struct_type_child_type)(duckdb_logical_type type, idx_t index);
209
+ idx_t (*duckdb_union_type_member_count)(duckdb_logical_type type);
210
+ char *(*duckdb_union_type_member_name)(duckdb_logical_type type, idx_t index);
211
+ duckdb_logical_type (*duckdb_union_type_member_type)(duckdb_logical_type type, idx_t index);
212
+ void (*duckdb_destroy_logical_type)(duckdb_logical_type *type);
213
+ duckdb_data_chunk (*duckdb_fetch_chunk)(duckdb_result result);
214
+ duckdb_data_chunk (*duckdb_create_data_chunk)(duckdb_logical_type *types, idx_t column_count);
215
+ void (*duckdb_destroy_data_chunk)(duckdb_data_chunk *chunk);
216
+ void (*duckdb_data_chunk_reset)(duckdb_data_chunk chunk);
217
+ idx_t (*duckdb_data_chunk_get_column_count)(duckdb_data_chunk chunk);
218
+ duckdb_vector (*duckdb_data_chunk_get_vector)(duckdb_data_chunk chunk, idx_t col_idx);
219
+ idx_t (*duckdb_data_chunk_get_size)(duckdb_data_chunk chunk);
220
+ void (*duckdb_data_chunk_set_size)(duckdb_data_chunk chunk, idx_t size);
221
+ duckdb_logical_type (*duckdb_vector_get_column_type)(duckdb_vector vector);
222
+ void *(*duckdb_vector_get_data)(duckdb_vector vector);
223
+ uint64_t *(*duckdb_vector_get_validity)(duckdb_vector vector);
224
+ void (*duckdb_vector_ensure_validity_writable)(duckdb_vector vector);
225
+ void (*duckdb_vector_assign_string_element)(duckdb_vector vector, idx_t index, const char *str);
226
+ void (*duckdb_vector_assign_string_element_len)(duckdb_vector vector, idx_t index, const char *str, idx_t str_len);
227
+ duckdb_vector (*duckdb_list_vector_get_child)(duckdb_vector vector);
228
+ idx_t (*duckdb_list_vector_get_size)(duckdb_vector vector);
229
+ duckdb_state (*duckdb_list_vector_set_size)(duckdb_vector vector, idx_t size);
230
+ duckdb_state (*duckdb_list_vector_reserve)(duckdb_vector vector, idx_t required_capacity);
231
+ duckdb_vector (*duckdb_struct_vector_get_child)(duckdb_vector vector, idx_t index);
232
+ duckdb_vector (*duckdb_array_vector_get_child)(duckdb_vector vector);
233
+ bool (*duckdb_validity_row_is_valid)(uint64_t *validity, idx_t row);
234
+ void (*duckdb_validity_set_row_validity)(uint64_t *validity, idx_t row, bool valid);
235
+ void (*duckdb_validity_set_row_invalid)(uint64_t *validity, idx_t row);
236
+ void (*duckdb_validity_set_row_valid)(uint64_t *validity, idx_t row);
237
+ duckdb_scalar_function (*duckdb_create_scalar_function)();
238
+ void (*duckdb_destroy_scalar_function)(duckdb_scalar_function *scalar_function);
239
+ void (*duckdb_scalar_function_set_name)(duckdb_scalar_function scalar_function, const char *name);
240
+ void (*duckdb_scalar_function_add_parameter)(duckdb_scalar_function scalar_function, duckdb_logical_type type);
241
+ void (*duckdb_scalar_function_set_return_type)(duckdb_scalar_function scalar_function, duckdb_logical_type type);
242
+ void (*duckdb_scalar_function_set_extra_info)(duckdb_scalar_function scalar_function, void *extra_info,
243
+ duckdb_delete_callback_t destroy);
244
+ void (*duckdb_scalar_function_set_function)(duckdb_scalar_function scalar_function,
245
+ duckdb_scalar_function_t function);
246
+ duckdb_state (*duckdb_register_scalar_function)(duckdb_connection con, duckdb_scalar_function scalar_function);
247
+ duckdb_table_function (*duckdb_create_table_function)();
248
+ void (*duckdb_destroy_table_function)(duckdb_table_function *table_function);
249
+ void (*duckdb_table_function_set_name)(duckdb_table_function table_function, const char *name);
250
+ void (*duckdb_table_function_add_parameter)(duckdb_table_function table_function, duckdb_logical_type type);
251
+ void (*duckdb_table_function_add_named_parameter)(duckdb_table_function table_function, const char *name,
252
+ duckdb_logical_type type);
253
+ void (*duckdb_table_function_set_extra_info)(duckdb_table_function table_function, void *extra_info,
254
+ duckdb_delete_callback_t destroy);
255
+ void (*duckdb_table_function_set_bind)(duckdb_table_function table_function, duckdb_table_function_bind_t bind);
256
+ void (*duckdb_table_function_set_init)(duckdb_table_function table_function, duckdb_table_function_init_t init);
257
+ void (*duckdb_table_function_set_local_init)(duckdb_table_function table_function,
258
+ duckdb_table_function_init_t init);
259
+ void (*duckdb_table_function_set_function)(duckdb_table_function table_function, duckdb_table_function_t function);
260
+ void (*duckdb_table_function_supports_projection_pushdown)(duckdb_table_function table_function, bool pushdown);
261
+ duckdb_state (*duckdb_register_table_function)(duckdb_connection con, duckdb_table_function function);
262
+ void *(*duckdb_bind_get_extra_info)(duckdb_bind_info info);
263
+ void (*duckdb_bind_add_result_column)(duckdb_bind_info info, const char *name, duckdb_logical_type type);
264
+ idx_t (*duckdb_bind_get_parameter_count)(duckdb_bind_info info);
265
+ duckdb_value (*duckdb_bind_get_parameter)(duckdb_bind_info info, idx_t index);
266
+ duckdb_value (*duckdb_bind_get_named_parameter)(duckdb_bind_info info, const char *name);
267
+ void (*duckdb_bind_set_bind_data)(duckdb_bind_info info, void *bind_data, duckdb_delete_callback_t destroy);
268
+ void (*duckdb_bind_set_cardinality)(duckdb_bind_info info, idx_t cardinality, bool is_exact);
269
+ void (*duckdb_bind_set_error)(duckdb_bind_info info, const char *error);
270
+ void *(*duckdb_init_get_extra_info)(duckdb_init_info info);
271
+ void *(*duckdb_init_get_bind_data)(duckdb_init_info info);
272
+ void (*duckdb_init_set_init_data)(duckdb_init_info info, void *init_data, duckdb_delete_callback_t destroy);
273
+ idx_t (*duckdb_init_get_column_count)(duckdb_init_info info);
274
+ idx_t (*duckdb_init_get_column_index)(duckdb_init_info info, idx_t column_index);
275
+ void (*duckdb_init_set_max_threads)(duckdb_init_info info, idx_t max_threads);
276
+ void (*duckdb_init_set_error)(duckdb_init_info info, const char *error);
277
+ void *(*duckdb_function_get_extra_info)(duckdb_function_info info);
278
+ void *(*duckdb_function_get_bind_data)(duckdb_function_info info);
279
+ void *(*duckdb_function_get_init_data)(duckdb_function_info info);
280
+ void *(*duckdb_function_get_local_init_data)(duckdb_function_info info);
281
+ void (*duckdb_function_set_error)(duckdb_function_info info, const char *error);
282
+ void (*duckdb_add_replacement_scan)(duckdb_database db, duckdb_replacement_callback_t replacement, void *extra_data,
283
+ duckdb_delete_callback_t delete_callback);
284
+ void (*duckdb_replacement_scan_set_function_name)(duckdb_replacement_scan_info info, const char *function_name);
285
+ void (*duckdb_replacement_scan_add_parameter)(duckdb_replacement_scan_info info, duckdb_value parameter);
286
+ void (*duckdb_replacement_scan_set_error)(duckdb_replacement_scan_info info, const char *error);
287
+ duckdb_state (*duckdb_appender_create)(duckdb_connection connection, const char *schema, const char *table,
288
+ duckdb_appender *out_appender);
289
+ idx_t (*duckdb_appender_column_count)(duckdb_appender appender);
290
+ duckdb_logical_type (*duckdb_appender_column_type)(duckdb_appender appender, idx_t col_idx);
291
+ const char *(*duckdb_appender_error)(duckdb_appender appender);
292
+ duckdb_state (*duckdb_appender_flush)(duckdb_appender appender);
293
+ duckdb_state (*duckdb_appender_close)(duckdb_appender appender);
294
+ duckdb_state (*duckdb_appender_destroy)(duckdb_appender *appender);
295
+ duckdb_state (*duckdb_appender_begin_row)(duckdb_appender appender);
296
+ duckdb_state (*duckdb_appender_end_row)(duckdb_appender appender);
297
+ duckdb_state (*duckdb_append_default)(duckdb_appender appender);
298
+ duckdb_state (*duckdb_append_bool)(duckdb_appender appender, bool value);
299
+ duckdb_state (*duckdb_append_int8)(duckdb_appender appender, int8_t value);
300
+ duckdb_state (*duckdb_append_int16)(duckdb_appender appender, int16_t value);
301
+ duckdb_state (*duckdb_append_int32)(duckdb_appender appender, int32_t value);
302
+ duckdb_state (*duckdb_append_int64)(duckdb_appender appender, int64_t value);
303
+ duckdb_state (*duckdb_append_hugeint)(duckdb_appender appender, duckdb_hugeint value);
304
+ duckdb_state (*duckdb_append_uint8)(duckdb_appender appender, uint8_t value);
305
+ duckdb_state (*duckdb_append_uint16)(duckdb_appender appender, uint16_t value);
306
+ duckdb_state (*duckdb_append_uint32)(duckdb_appender appender, uint32_t value);
307
+ duckdb_state (*duckdb_append_uint64)(duckdb_appender appender, uint64_t value);
308
+ duckdb_state (*duckdb_append_uhugeint)(duckdb_appender appender, duckdb_uhugeint value);
309
+ duckdb_state (*duckdb_append_float)(duckdb_appender appender, float value);
310
+ duckdb_state (*duckdb_append_double)(duckdb_appender appender, double value);
311
+ duckdb_state (*duckdb_append_date)(duckdb_appender appender, duckdb_date value);
312
+ duckdb_state (*duckdb_append_time)(duckdb_appender appender, duckdb_time value);
313
+ duckdb_state (*duckdb_append_timestamp)(duckdb_appender appender, duckdb_timestamp value);
314
+ duckdb_state (*duckdb_append_interval)(duckdb_appender appender, duckdb_interval value);
315
+ duckdb_state (*duckdb_append_varchar)(duckdb_appender appender, const char *val);
316
+ duckdb_state (*duckdb_append_varchar_length)(duckdb_appender appender, const char *val, idx_t length);
317
+ duckdb_state (*duckdb_append_blob)(duckdb_appender appender, const void *data, idx_t length);
318
+ duckdb_state (*duckdb_append_null)(duckdb_appender appender);
319
+ duckdb_state (*duckdb_append_data_chunk)(duckdb_appender appender, duckdb_data_chunk chunk);
320
+ void (*duckdb_execute_tasks)(duckdb_database database, idx_t max_tasks);
321
+ duckdb_task_state (*duckdb_create_task_state)(duckdb_database database);
322
+ void (*duckdb_execute_tasks_state)(duckdb_task_state state);
323
+ idx_t (*duckdb_execute_n_tasks_state)(duckdb_task_state state, idx_t max_tasks);
324
+ void (*duckdb_finish_execution)(duckdb_task_state state);
325
+ bool (*duckdb_task_state_is_finished)(duckdb_task_state state);
326
+ void (*duckdb_destroy_task_state)(duckdb_task_state state);
327
+ bool (*duckdb_execution_is_finished)(duckdb_connection con);
328
+ duckdb_profiling_info (*duckdb_get_profiling_info)(duckdb_connection connection);
329
+ duckdb_value (*duckdb_profiling_info_get_value)(duckdb_profiling_info info, const char *key);
330
+ idx_t (*duckdb_profiling_info_get_child_count)(duckdb_profiling_info info);
331
+ duckdb_profiling_info (*duckdb_profiling_info_get_child)(duckdb_profiling_info info, idx_t index);
332
+ duckdb_value (*duckdb_profiling_info_get_metrics)(duckdb_profiling_info info);
333
+ void (*duckdb_scalar_function_set_varargs)(duckdb_scalar_function scalar_function, duckdb_logical_type type);
334
+ void (*duckdb_scalar_function_set_special_handling)(duckdb_scalar_function scalar_function);
335
+ void (*duckdb_scalar_function_set_volatile)(duckdb_scalar_function scalar_function);
336
+ void *(*duckdb_scalar_function_get_extra_info)(duckdb_function_info info);
337
+ void (*duckdb_scalar_function_set_error)(duckdb_function_info info, const char *error);
338
+ duckdb_state (*duckdb_table_description_create)(duckdb_connection connection, const char *schema, const char *table,
339
+ duckdb_table_description *out);
340
+ void (*duckdb_table_description_destroy)(duckdb_table_description *table_description);
341
+ const char *(*duckdb_table_description_error)(duckdb_table_description table_description);
342
+ duckdb_error_type (*duckdb_result_error_type)(duckdb_result *result);
343
+ uint32_t (*duckdb_string_t_length)(duckdb_string_t string);
344
+ const char *(*duckdb_string_t_data)(duckdb_string_t *string);
345
+ duckdb_value (*duckdb_create_bool)(bool input);
346
+ duckdb_value (*duckdb_create_int8)(int8_t input);
347
+ duckdb_value (*duckdb_create_uint8)(uint8_t input);
348
+ duckdb_value (*duckdb_create_int16)(int16_t input);
349
+ duckdb_value (*duckdb_create_uint16)(uint16_t input);
350
+ duckdb_value (*duckdb_create_int32)(int32_t input);
351
+ duckdb_value (*duckdb_create_uint32)(uint32_t input);
352
+ duckdb_value (*duckdb_create_uint64)(uint64_t input);
353
+ duckdb_value (*duckdb_create_hugeint)(duckdb_hugeint input);
354
+ duckdb_value (*duckdb_create_uhugeint)(duckdb_uhugeint input);
355
+ duckdb_value (*duckdb_create_float)(float input);
356
+ duckdb_value (*duckdb_create_double)(double input);
357
+ duckdb_value (*duckdb_create_date)(duckdb_date input);
358
+ duckdb_value (*duckdb_create_time)(duckdb_time input);
359
+ duckdb_value (*duckdb_create_time_tz_value)(duckdb_time_tz value);
360
+ duckdb_value (*duckdb_create_timestamp)(duckdb_timestamp input);
361
+ duckdb_value (*duckdb_create_interval)(duckdb_interval input);
362
+ duckdb_value (*duckdb_create_blob)(const uint8_t *data, idx_t length);
363
+ bool (*duckdb_get_bool)(duckdb_value val);
364
+ int8_t (*duckdb_get_int8)(duckdb_value val);
365
+ uint8_t (*duckdb_get_uint8)(duckdb_value val);
366
+ int16_t (*duckdb_get_int16)(duckdb_value val);
367
+ uint16_t (*duckdb_get_uint16)(duckdb_value val);
368
+ int32_t (*duckdb_get_int32)(duckdb_value val);
369
+ uint32_t (*duckdb_get_uint32)(duckdb_value val);
370
+ uint64_t (*duckdb_get_uint64)(duckdb_value val);
371
+ duckdb_hugeint (*duckdb_get_hugeint)(duckdb_value val);
372
+ duckdb_uhugeint (*duckdb_get_uhugeint)(duckdb_value val);
373
+ float (*duckdb_get_float)(duckdb_value val);
374
+ double (*duckdb_get_double)(duckdb_value val);
375
+ duckdb_date (*duckdb_get_date)(duckdb_value val);
376
+ duckdb_time (*duckdb_get_time)(duckdb_value val);
377
+ duckdb_time_tz (*duckdb_get_time_tz)(duckdb_value val);
378
+ duckdb_timestamp (*duckdb_get_timestamp)(duckdb_value val);
379
+ duckdb_interval (*duckdb_get_interval)(duckdb_value val);
380
+ duckdb_logical_type (*duckdb_get_value_type)(duckdb_value val);
381
+ duckdb_blob (*duckdb_get_blob)(duckdb_value val);
382
+ duckdb_scalar_function_set (*duckdb_create_scalar_function_set)(const char *name);
383
+ void (*duckdb_destroy_scalar_function_set)(duckdb_scalar_function_set *scalar_function_set);
384
+ duckdb_state (*duckdb_add_scalar_function_to_set)(duckdb_scalar_function_set set, duckdb_scalar_function function);
385
+ duckdb_state (*duckdb_register_scalar_function_set)(duckdb_connection con, duckdb_scalar_function_set set);
386
+ duckdb_aggregate_function_set (*duckdb_create_aggregate_function_set)(const char *name);
387
+ void (*duckdb_destroy_aggregate_function_set)(duckdb_aggregate_function_set *aggregate_function_set);
388
+ duckdb_state (*duckdb_add_aggregate_function_to_set)(duckdb_aggregate_function_set set,
389
+ duckdb_aggregate_function function);
390
+ duckdb_state (*duckdb_register_aggregate_function_set)(duckdb_connection con, duckdb_aggregate_function_set set);
391
+ idx_t (*duckdb_get_map_size)(duckdb_value value);
392
+ duckdb_value (*duckdb_get_map_key)(duckdb_value value, idx_t index);
393
+ duckdb_value (*duckdb_get_map_value)(duckdb_value value, idx_t index);
394
+ duckdb_aggregate_function (*duckdb_create_aggregate_function)();
395
+ void (*duckdb_destroy_aggregate_function)(duckdb_aggregate_function *aggregate_function);
396
+ void (*duckdb_aggregate_function_set_name)(duckdb_aggregate_function aggregate_function, const char *name);
397
+ void (*duckdb_aggregate_function_add_parameter)(duckdb_aggregate_function aggregate_function,
398
+ duckdb_logical_type type);
399
+ void (*duckdb_aggregate_function_set_return_type)(duckdb_aggregate_function aggregate_function,
400
+ duckdb_logical_type type);
401
+ void (*duckdb_aggregate_function_set_functions)(duckdb_aggregate_function aggregate_function,
402
+ duckdb_aggregate_state_size state_size,
403
+ duckdb_aggregate_init_t state_init,
404
+ duckdb_aggregate_update_t update,
405
+ duckdb_aggregate_combine_t combine,
406
+ duckdb_aggregate_finalize_t finalize);
407
+ void (*duckdb_aggregate_function_set_destructor)(duckdb_aggregate_function aggregate_function,
408
+ duckdb_aggregate_destroy_t destroy);
409
+ duckdb_state (*duckdb_register_aggregate_function)(duckdb_connection con,
410
+ duckdb_aggregate_function aggregate_function);
411
+ void (*duckdb_aggregate_function_set_special_handling)(duckdb_aggregate_function aggregate_function);
412
+ void (*duckdb_aggregate_function_set_extra_info)(duckdb_aggregate_function aggregate_function, void *extra_info,
413
+ duckdb_delete_callback_t destroy);
414
+ void *(*duckdb_aggregate_function_get_extra_info)(duckdb_function_info info);
415
+ void (*duckdb_aggregate_function_set_error)(duckdb_function_info info, const char *error);
416
+ void (*duckdb_logical_type_set_alias)(duckdb_logical_type type, const char *alias);
417
+ duckdb_state (*duckdb_register_logical_type)(duckdb_connection con, duckdb_logical_type type,
418
+ duckdb_create_type_info info);
419
+ duckdb_cast_function (*duckdb_create_cast_function)();
420
+ void (*duckdb_cast_function_set_source_type)(duckdb_cast_function cast_function, duckdb_logical_type source_type);
421
+ void (*duckdb_cast_function_set_target_type)(duckdb_cast_function cast_function, duckdb_logical_type target_type);
422
+ void (*duckdb_cast_function_set_implicit_cast_cost)(duckdb_cast_function cast_function, int64_t cost);
423
+ void (*duckdb_cast_function_set_function)(duckdb_cast_function cast_function, duckdb_cast_function_t function);
424
+ void (*duckdb_cast_function_set_extra_info)(duckdb_cast_function cast_function, void *extra_info,
425
+ duckdb_delete_callback_t destroy);
426
+ void *(*duckdb_cast_function_get_extra_info)(duckdb_function_info info);
427
+ duckdb_cast_mode (*duckdb_cast_function_get_cast_mode)(duckdb_function_info info);
428
+ void (*duckdb_cast_function_set_error)(duckdb_function_info info, const char *error);
429
+ void (*duckdb_cast_function_set_row_error)(duckdb_function_info info, const char *error, idx_t row,
430
+ duckdb_vector output);
431
+ duckdb_state (*duckdb_register_cast_function)(duckdb_connection con, duckdb_cast_function cast_function);
432
+ void (*duckdb_destroy_cast_function)(duckdb_cast_function *cast_function);
433
+ idx_t (*duckdb_row_count)(duckdb_result *result);
434
+ void *(*duckdb_column_data)(duckdb_result *result, idx_t col);
435
+ bool *(*duckdb_nullmask_data)(duckdb_result *result, idx_t col);
436
+ duckdb_data_chunk (*duckdb_result_get_chunk)(duckdb_result result, idx_t chunk_index);
437
+ bool (*duckdb_result_is_streaming)(duckdb_result result);
438
+ idx_t (*duckdb_result_chunk_count)(duckdb_result result);
439
+ duckdb_result_type (*duckdb_result_return_type)(duckdb_result result);
440
+ bool (*duckdb_value_boolean)(duckdb_result *result, idx_t col, idx_t row);
441
+ int8_t (*duckdb_value_int8)(duckdb_result *result, idx_t col, idx_t row);
442
+ int16_t (*duckdb_value_int16)(duckdb_result *result, idx_t col, idx_t row);
443
+ int32_t (*duckdb_value_int32)(duckdb_result *result, idx_t col, idx_t row);
444
+ int64_t (*duckdb_value_int64)(duckdb_result *result, idx_t col, idx_t row);
445
+ duckdb_hugeint (*duckdb_value_hugeint)(duckdb_result *result, idx_t col, idx_t row);
446
+ duckdb_uhugeint (*duckdb_value_uhugeint)(duckdb_result *result, idx_t col, idx_t row);
447
+ duckdb_decimal (*duckdb_value_decimal)(duckdb_result *result, idx_t col, idx_t row);
448
+ uint8_t (*duckdb_value_uint8)(duckdb_result *result, idx_t col, idx_t row);
449
+ uint16_t (*duckdb_value_uint16)(duckdb_result *result, idx_t col, idx_t row);
450
+ uint32_t (*duckdb_value_uint32)(duckdb_result *result, idx_t col, idx_t row);
451
+ uint64_t (*duckdb_value_uint64)(duckdb_result *result, idx_t col, idx_t row);
452
+ float (*duckdb_value_float)(duckdb_result *result, idx_t col, idx_t row);
453
+ double (*duckdb_value_double)(duckdb_result *result, idx_t col, idx_t row);
454
+ duckdb_date (*duckdb_value_date)(duckdb_result *result, idx_t col, idx_t row);
455
+ duckdb_time (*duckdb_value_time)(duckdb_result *result, idx_t col, idx_t row);
456
+ duckdb_timestamp (*duckdb_value_timestamp)(duckdb_result *result, idx_t col, idx_t row);
457
+ duckdb_interval (*duckdb_value_interval)(duckdb_result *result, idx_t col, idx_t row);
458
+ char *(*duckdb_value_varchar)(duckdb_result *result, idx_t col, idx_t row);
459
+ duckdb_string (*duckdb_value_string)(duckdb_result *result, idx_t col, idx_t row);
460
+ char *(*duckdb_value_varchar_internal)(duckdb_result *result, idx_t col, idx_t row);
461
+ duckdb_string (*duckdb_value_string_internal)(duckdb_result *result, idx_t col, idx_t row);
462
+ duckdb_blob (*duckdb_value_blob)(duckdb_result *result, idx_t col, idx_t row);
463
+ bool (*duckdb_value_is_null)(duckdb_result *result, idx_t col, idx_t row);
464
+ duckdb_state (*duckdb_execute_prepared_streaming)(duckdb_prepared_statement prepared_statement,
465
+ duckdb_result *out_result);
466
+ duckdb_state (*duckdb_pending_prepared_streaming)(duckdb_prepared_statement prepared_statement,
467
+ duckdb_pending_result *out_result);
468
+ duckdb_state (*duckdb_column_has_default)(duckdb_table_description table_description, idx_t index, bool *out);
469
+ duckdb_state (*duckdb_query_arrow)(duckdb_connection connection, const char *query, duckdb_arrow *out_result);
470
+ duckdb_state (*duckdb_query_arrow_schema)(duckdb_arrow result, duckdb_arrow_schema *out_schema);
471
+ duckdb_state (*duckdb_prepared_arrow_schema)(duckdb_prepared_statement prepared, duckdb_arrow_schema *out_schema);
472
+ void (*duckdb_result_arrow_array)(duckdb_result result, duckdb_data_chunk chunk, duckdb_arrow_array *out_array);
473
+ duckdb_state (*duckdb_query_arrow_array)(duckdb_arrow result, duckdb_arrow_array *out_array);
474
+ idx_t (*duckdb_arrow_column_count)(duckdb_arrow result);
475
+ idx_t (*duckdb_arrow_row_count)(duckdb_arrow result);
476
+ idx_t (*duckdb_arrow_rows_changed)(duckdb_arrow result);
477
+ const char *(*duckdb_query_arrow_error)(duckdb_arrow result);
478
+ void (*duckdb_destroy_arrow)(duckdb_arrow *result);
479
+ void (*duckdb_destroy_arrow_stream)(duckdb_arrow_stream *stream_p);
480
+ duckdb_state (*duckdb_execute_prepared_arrow)(duckdb_prepared_statement prepared_statement,
481
+ duckdb_arrow *out_result);
482
+ duckdb_state (*duckdb_arrow_scan)(duckdb_connection connection, const char *table_name, duckdb_arrow_stream arrow);
483
+ duckdb_state (*duckdb_arrow_array_scan)(duckdb_connection connection, const char *table_name,
484
+ duckdb_arrow_schema arrow_schema, duckdb_arrow_array arrow_array,
485
+ duckdb_arrow_stream *out_stream);
486
+ duckdb_data_chunk (*duckdb_stream_fetch_chunk)(duckdb_result result);
487
+ #endif
488
+
489
+ } duckdb_ext_api_v0;
490
+
491
+ //===--------------------------------------------------------------------===//
492
+ // Typedefs mapping functions to struct entries
493
+ //===--------------------------------------------------------------------===//
494
+ // Version v0.0.1
495
+ #define duckdb_open duckdb_ext_api.duckdb_open
496
+ #define duckdb_open_ext duckdb_ext_api.duckdb_open_ext
497
+ #define duckdb_close duckdb_ext_api.duckdb_close
498
+ #define duckdb_connect duckdb_ext_api.duckdb_connect
499
+ #define duckdb_interrupt duckdb_ext_api.duckdb_interrupt
500
+ #define duckdb_query_progress duckdb_ext_api.duckdb_query_progress
501
+ #define duckdb_disconnect duckdb_ext_api.duckdb_disconnect
502
+ #define duckdb_library_version duckdb_ext_api.duckdb_library_version
503
+ #define duckdb_create_config duckdb_ext_api.duckdb_create_config
504
+ #define duckdb_config_count duckdb_ext_api.duckdb_config_count
505
+ #define duckdb_get_config_flag duckdb_ext_api.duckdb_get_config_flag
506
+ #define duckdb_set_config duckdb_ext_api.duckdb_set_config
507
+ #define duckdb_destroy_config duckdb_ext_api.duckdb_destroy_config
508
+ #define duckdb_query duckdb_ext_api.duckdb_query
509
+ #define duckdb_destroy_result duckdb_ext_api.duckdb_destroy_result
510
+ #define duckdb_column_name duckdb_ext_api.duckdb_column_name
511
+ #define duckdb_column_type duckdb_ext_api.duckdb_column_type
512
+ #define duckdb_result_statement_type duckdb_ext_api.duckdb_result_statement_type
513
+ #define duckdb_column_logical_type duckdb_ext_api.duckdb_column_logical_type
514
+ #define duckdb_column_count duckdb_ext_api.duckdb_column_count
515
+ #define duckdb_row_count duckdb_ext_api.duckdb_row_count
516
+ #define duckdb_rows_changed duckdb_ext_api.duckdb_rows_changed
517
+ #define duckdb_column_data duckdb_ext_api.duckdb_column_data
518
+ #define duckdb_nullmask_data duckdb_ext_api.duckdb_nullmask_data
519
+ #define duckdb_result_error duckdb_ext_api.duckdb_result_error
520
+ #define duckdb_result_error_type duckdb_ext_api.duckdb_result_error_type
521
+ #define duckdb_result_get_chunk duckdb_ext_api.duckdb_result_get_chunk
522
+ #define duckdb_result_is_streaming duckdb_ext_api.duckdb_result_is_streaming
523
+ #define duckdb_result_chunk_count duckdb_ext_api.duckdb_result_chunk_count
524
+ #define duckdb_result_return_type duckdb_ext_api.duckdb_result_return_type
525
+ #define duckdb_value_boolean duckdb_ext_api.duckdb_value_boolean
526
+ #define duckdb_value_int8 duckdb_ext_api.duckdb_value_int8
527
+ #define duckdb_value_int16 duckdb_ext_api.duckdb_value_int16
528
+ #define duckdb_value_int32 duckdb_ext_api.duckdb_value_int32
529
+ #define duckdb_value_int64 duckdb_ext_api.duckdb_value_int64
530
+ #define duckdb_value_hugeint duckdb_ext_api.duckdb_value_hugeint
531
+ #define duckdb_value_uhugeint duckdb_ext_api.duckdb_value_uhugeint
532
+ #define duckdb_value_decimal duckdb_ext_api.duckdb_value_decimal
533
+ #define duckdb_value_uint8 duckdb_ext_api.duckdb_value_uint8
534
+ #define duckdb_value_uint16 duckdb_ext_api.duckdb_value_uint16
535
+ #define duckdb_value_uint32 duckdb_ext_api.duckdb_value_uint32
536
+ #define duckdb_value_uint64 duckdb_ext_api.duckdb_value_uint64
537
+ #define duckdb_value_float duckdb_ext_api.duckdb_value_float
538
+ #define duckdb_value_double duckdb_ext_api.duckdb_value_double
539
+ #define duckdb_value_date duckdb_ext_api.duckdb_value_date
540
+ #define duckdb_value_time duckdb_ext_api.duckdb_value_time
541
+ #define duckdb_value_timestamp duckdb_ext_api.duckdb_value_timestamp
542
+ #define duckdb_value_interval duckdb_ext_api.duckdb_value_interval
543
+ #define duckdb_value_varchar duckdb_ext_api.duckdb_value_varchar
544
+ #define duckdb_value_string duckdb_ext_api.duckdb_value_string
545
+ #define duckdb_value_varchar_internal duckdb_ext_api.duckdb_value_varchar_internal
546
+ #define duckdb_value_string_internal duckdb_ext_api.duckdb_value_string_internal
547
+ #define duckdb_value_blob duckdb_ext_api.duckdb_value_blob
548
+ #define duckdb_value_is_null duckdb_ext_api.duckdb_value_is_null
549
+ #define duckdb_malloc duckdb_ext_api.duckdb_malloc
550
+ #define duckdb_free duckdb_ext_api.duckdb_free
551
+ #define duckdb_vector_size duckdb_ext_api.duckdb_vector_size
552
+ #define duckdb_string_is_inlined duckdb_ext_api.duckdb_string_is_inlined
553
+ #define duckdb_string_t_length duckdb_ext_api.duckdb_string_t_length
554
+ #define duckdb_string_t_data duckdb_ext_api.duckdb_string_t_data
555
+ #define duckdb_from_date duckdb_ext_api.duckdb_from_date
556
+ #define duckdb_to_date duckdb_ext_api.duckdb_to_date
557
+ #define duckdb_is_finite_date duckdb_ext_api.duckdb_is_finite_date
558
+ #define duckdb_from_time duckdb_ext_api.duckdb_from_time
559
+ #define duckdb_create_time_tz duckdb_ext_api.duckdb_create_time_tz
560
+ #define duckdb_from_time_tz duckdb_ext_api.duckdb_from_time_tz
561
+ #define duckdb_to_time duckdb_ext_api.duckdb_to_time
562
+ #define duckdb_from_timestamp duckdb_ext_api.duckdb_from_timestamp
563
+ #define duckdb_to_timestamp duckdb_ext_api.duckdb_to_timestamp
564
+ #define duckdb_is_finite_timestamp duckdb_ext_api.duckdb_is_finite_timestamp
565
+ #define duckdb_hugeint_to_double duckdb_ext_api.duckdb_hugeint_to_double
566
+ #define duckdb_double_to_hugeint duckdb_ext_api.duckdb_double_to_hugeint
567
+ #define duckdb_uhugeint_to_double duckdb_ext_api.duckdb_uhugeint_to_double
568
+ #define duckdb_double_to_uhugeint duckdb_ext_api.duckdb_double_to_uhugeint
569
+ #define duckdb_double_to_decimal duckdb_ext_api.duckdb_double_to_decimal
570
+ #define duckdb_decimal_to_double duckdb_ext_api.duckdb_decimal_to_double
571
+ #define duckdb_prepare duckdb_ext_api.duckdb_prepare
572
+ #define duckdb_destroy_prepare duckdb_ext_api.duckdb_destroy_prepare
573
+ #define duckdb_prepare_error duckdb_ext_api.duckdb_prepare_error
574
+ #define duckdb_nparams duckdb_ext_api.duckdb_nparams
575
+ #define duckdb_parameter_name duckdb_ext_api.duckdb_parameter_name
576
+ #define duckdb_param_type duckdb_ext_api.duckdb_param_type
577
+ #define duckdb_clear_bindings duckdb_ext_api.duckdb_clear_bindings
578
+ #define duckdb_prepared_statement_type duckdb_ext_api.duckdb_prepared_statement_type
579
+ #define duckdb_bind_value duckdb_ext_api.duckdb_bind_value
580
+ #define duckdb_bind_parameter_index duckdb_ext_api.duckdb_bind_parameter_index
581
+ #define duckdb_bind_boolean duckdb_ext_api.duckdb_bind_boolean
582
+ #define duckdb_bind_int8 duckdb_ext_api.duckdb_bind_int8
583
+ #define duckdb_bind_int16 duckdb_ext_api.duckdb_bind_int16
584
+ #define duckdb_bind_int32 duckdb_ext_api.duckdb_bind_int32
585
+ #define duckdb_bind_int64 duckdb_ext_api.duckdb_bind_int64
586
+ #define duckdb_bind_hugeint duckdb_ext_api.duckdb_bind_hugeint
587
+ #define duckdb_bind_uhugeint duckdb_ext_api.duckdb_bind_uhugeint
588
+ #define duckdb_bind_decimal duckdb_ext_api.duckdb_bind_decimal
589
+ #define duckdb_bind_uint8 duckdb_ext_api.duckdb_bind_uint8
590
+ #define duckdb_bind_uint16 duckdb_ext_api.duckdb_bind_uint16
591
+ #define duckdb_bind_uint32 duckdb_ext_api.duckdb_bind_uint32
592
+ #define duckdb_bind_uint64 duckdb_ext_api.duckdb_bind_uint64
593
+ #define duckdb_bind_float duckdb_ext_api.duckdb_bind_float
594
+ #define duckdb_bind_double duckdb_ext_api.duckdb_bind_double
595
+ #define duckdb_bind_date duckdb_ext_api.duckdb_bind_date
596
+ #define duckdb_bind_time duckdb_ext_api.duckdb_bind_time
597
+ #define duckdb_bind_timestamp duckdb_ext_api.duckdb_bind_timestamp
598
+ #define duckdb_bind_timestamp_tz duckdb_ext_api.duckdb_bind_timestamp_tz
599
+ #define duckdb_bind_interval duckdb_ext_api.duckdb_bind_interval
600
+ #define duckdb_bind_varchar duckdb_ext_api.duckdb_bind_varchar
601
+ #define duckdb_bind_varchar_length duckdb_ext_api.duckdb_bind_varchar_length
602
+ #define duckdb_bind_blob duckdb_ext_api.duckdb_bind_blob
603
+ #define duckdb_bind_null duckdb_ext_api.duckdb_bind_null
604
+ #define duckdb_execute_prepared duckdb_ext_api.duckdb_execute_prepared
605
+ #define duckdb_execute_prepared_streaming duckdb_ext_api.duckdb_execute_prepared_streaming
606
+ #define duckdb_extract_statements duckdb_ext_api.duckdb_extract_statements
607
+ #define duckdb_prepare_extracted_statement duckdb_ext_api.duckdb_prepare_extracted_statement
608
+ #define duckdb_extract_statements_error duckdb_ext_api.duckdb_extract_statements_error
609
+ #define duckdb_destroy_extracted duckdb_ext_api.duckdb_destroy_extracted
610
+ #define duckdb_pending_prepared duckdb_ext_api.duckdb_pending_prepared
611
+ #define duckdb_pending_prepared_streaming duckdb_ext_api.duckdb_pending_prepared_streaming
612
+ #define duckdb_destroy_pending duckdb_ext_api.duckdb_destroy_pending
613
+ #define duckdb_pending_error duckdb_ext_api.duckdb_pending_error
614
+ #define duckdb_pending_execute_task duckdb_ext_api.duckdb_pending_execute_task
615
+ #define duckdb_pending_execute_check_state duckdb_ext_api.duckdb_pending_execute_check_state
616
+ #define duckdb_execute_pending duckdb_ext_api.duckdb_execute_pending
617
+ #define duckdb_pending_execution_is_finished duckdb_ext_api.duckdb_pending_execution_is_finished
618
+ #define duckdb_destroy_value duckdb_ext_api.duckdb_destroy_value
619
+ #define duckdb_create_varchar duckdb_ext_api.duckdb_create_varchar
620
+ #define duckdb_create_varchar_length duckdb_ext_api.duckdb_create_varchar_length
621
+ #define duckdb_create_bool duckdb_ext_api.duckdb_create_bool
622
+ #define duckdb_create_int8 duckdb_ext_api.duckdb_create_int8
623
+ #define duckdb_create_uint8 duckdb_ext_api.duckdb_create_uint8
624
+ #define duckdb_create_int16 duckdb_ext_api.duckdb_create_int16
625
+ #define duckdb_create_uint16 duckdb_ext_api.duckdb_create_uint16
626
+ #define duckdb_create_int32 duckdb_ext_api.duckdb_create_int32
627
+ #define duckdb_create_uint32 duckdb_ext_api.duckdb_create_uint32
628
+ #define duckdb_create_uint64 duckdb_ext_api.duckdb_create_uint64
629
+ #define duckdb_create_int64 duckdb_ext_api.duckdb_create_int64
630
+ #define duckdb_create_hugeint duckdb_ext_api.duckdb_create_hugeint
631
+ #define duckdb_create_uhugeint duckdb_ext_api.duckdb_create_uhugeint
632
+ #define duckdb_create_float duckdb_ext_api.duckdb_create_float
633
+ #define duckdb_create_double duckdb_ext_api.duckdb_create_double
634
+ #define duckdb_create_date duckdb_ext_api.duckdb_create_date
635
+ #define duckdb_create_time duckdb_ext_api.duckdb_create_time
636
+ #define duckdb_create_time_tz_value duckdb_ext_api.duckdb_create_time_tz_value
637
+ #define duckdb_create_timestamp duckdb_ext_api.duckdb_create_timestamp
638
+ #define duckdb_create_interval duckdb_ext_api.duckdb_create_interval
639
+ #define duckdb_create_blob duckdb_ext_api.duckdb_create_blob
640
+ #define duckdb_get_bool duckdb_ext_api.duckdb_get_bool
641
+ #define duckdb_get_int8 duckdb_ext_api.duckdb_get_int8
642
+ #define duckdb_get_uint8 duckdb_ext_api.duckdb_get_uint8
643
+ #define duckdb_get_int16 duckdb_ext_api.duckdb_get_int16
644
+ #define duckdb_get_uint16 duckdb_ext_api.duckdb_get_uint16
645
+ #define duckdb_get_int32 duckdb_ext_api.duckdb_get_int32
646
+ #define duckdb_get_uint32 duckdb_ext_api.duckdb_get_uint32
647
+ #define duckdb_get_int64 duckdb_ext_api.duckdb_get_int64
648
+ #define duckdb_get_uint64 duckdb_ext_api.duckdb_get_uint64
649
+ #define duckdb_get_hugeint duckdb_ext_api.duckdb_get_hugeint
650
+ #define duckdb_get_uhugeint duckdb_ext_api.duckdb_get_uhugeint
651
+ #define duckdb_get_float duckdb_ext_api.duckdb_get_float
652
+ #define duckdb_get_double duckdb_ext_api.duckdb_get_double
653
+ #define duckdb_get_date duckdb_ext_api.duckdb_get_date
654
+ #define duckdb_get_time duckdb_ext_api.duckdb_get_time
655
+ #define duckdb_get_time_tz duckdb_ext_api.duckdb_get_time_tz
656
+ #define duckdb_get_timestamp duckdb_ext_api.duckdb_get_timestamp
657
+ #define duckdb_get_interval duckdb_ext_api.duckdb_get_interval
658
+ #define duckdb_get_value_type duckdb_ext_api.duckdb_get_value_type
659
+ #define duckdb_get_blob duckdb_ext_api.duckdb_get_blob
660
+ #define duckdb_get_varchar duckdb_ext_api.duckdb_get_varchar
661
+ #define duckdb_create_struct_value duckdb_ext_api.duckdb_create_struct_value
662
+ #define duckdb_create_list_value duckdb_ext_api.duckdb_create_list_value
663
+ #define duckdb_create_array_value duckdb_ext_api.duckdb_create_array_value
664
+ #define duckdb_get_map_size duckdb_ext_api.duckdb_get_map_size
665
+ #define duckdb_get_map_key duckdb_ext_api.duckdb_get_map_key
666
+ #define duckdb_get_map_value duckdb_ext_api.duckdb_get_map_value
667
+ #define duckdb_create_logical_type duckdb_ext_api.duckdb_create_logical_type
668
+ #define duckdb_logical_type_get_alias duckdb_ext_api.duckdb_logical_type_get_alias
669
+ #define duckdb_logical_type_set_alias duckdb_ext_api.duckdb_logical_type_set_alias
670
+ #define duckdb_create_list_type duckdb_ext_api.duckdb_create_list_type
671
+ #define duckdb_create_array_type duckdb_ext_api.duckdb_create_array_type
672
+ #define duckdb_create_map_type duckdb_ext_api.duckdb_create_map_type
673
+ #define duckdb_create_union_type duckdb_ext_api.duckdb_create_union_type
674
+ #define duckdb_create_struct_type duckdb_ext_api.duckdb_create_struct_type
675
+ #define duckdb_create_enum_type duckdb_ext_api.duckdb_create_enum_type
676
+ #define duckdb_create_decimal_type duckdb_ext_api.duckdb_create_decimal_type
677
+ #define duckdb_get_type_id duckdb_ext_api.duckdb_get_type_id
678
+ #define duckdb_decimal_width duckdb_ext_api.duckdb_decimal_width
679
+ #define duckdb_decimal_scale duckdb_ext_api.duckdb_decimal_scale
680
+ #define duckdb_decimal_internal_type duckdb_ext_api.duckdb_decimal_internal_type
681
+ #define duckdb_enum_internal_type duckdb_ext_api.duckdb_enum_internal_type
682
+ #define duckdb_enum_dictionary_size duckdb_ext_api.duckdb_enum_dictionary_size
683
+ #define duckdb_enum_dictionary_value duckdb_ext_api.duckdb_enum_dictionary_value
684
+ #define duckdb_list_type_child_type duckdb_ext_api.duckdb_list_type_child_type
685
+ #define duckdb_array_type_child_type duckdb_ext_api.duckdb_array_type_child_type
686
+ #define duckdb_array_type_array_size duckdb_ext_api.duckdb_array_type_array_size
687
+ #define duckdb_map_type_key_type duckdb_ext_api.duckdb_map_type_key_type
688
+ #define duckdb_map_type_value_type duckdb_ext_api.duckdb_map_type_value_type
689
+ #define duckdb_struct_type_child_count duckdb_ext_api.duckdb_struct_type_child_count
690
+ #define duckdb_struct_type_child_name duckdb_ext_api.duckdb_struct_type_child_name
691
+ #define duckdb_struct_type_child_type duckdb_ext_api.duckdb_struct_type_child_type
692
+ #define duckdb_union_type_member_count duckdb_ext_api.duckdb_union_type_member_count
693
+ #define duckdb_union_type_member_name duckdb_ext_api.duckdb_union_type_member_name
694
+ #define duckdb_union_type_member_type duckdb_ext_api.duckdb_union_type_member_type
695
+ #define duckdb_destroy_logical_type duckdb_ext_api.duckdb_destroy_logical_type
696
+ #define duckdb_register_logical_type duckdb_ext_api.duckdb_register_logical_type
697
+ #define duckdb_create_data_chunk duckdb_ext_api.duckdb_create_data_chunk
698
+ #define duckdb_destroy_data_chunk duckdb_ext_api.duckdb_destroy_data_chunk
699
+ #define duckdb_data_chunk_reset duckdb_ext_api.duckdb_data_chunk_reset
700
+ #define duckdb_data_chunk_get_column_count duckdb_ext_api.duckdb_data_chunk_get_column_count
701
+ #define duckdb_data_chunk_get_vector duckdb_ext_api.duckdb_data_chunk_get_vector
702
+ #define duckdb_data_chunk_get_size duckdb_ext_api.duckdb_data_chunk_get_size
703
+ #define duckdb_data_chunk_set_size duckdb_ext_api.duckdb_data_chunk_set_size
704
+ #define duckdb_vector_get_column_type duckdb_ext_api.duckdb_vector_get_column_type
705
+ #define duckdb_vector_get_data duckdb_ext_api.duckdb_vector_get_data
706
+ #define duckdb_vector_get_validity duckdb_ext_api.duckdb_vector_get_validity
707
+ #define duckdb_vector_ensure_validity_writable duckdb_ext_api.duckdb_vector_ensure_validity_writable
708
+ #define duckdb_vector_assign_string_element duckdb_ext_api.duckdb_vector_assign_string_element
709
+ #define duckdb_vector_assign_string_element_len duckdb_ext_api.duckdb_vector_assign_string_element_len
710
+ #define duckdb_list_vector_get_child duckdb_ext_api.duckdb_list_vector_get_child
711
+ #define duckdb_list_vector_get_size duckdb_ext_api.duckdb_list_vector_get_size
712
+ #define duckdb_list_vector_set_size duckdb_ext_api.duckdb_list_vector_set_size
713
+ #define duckdb_list_vector_reserve duckdb_ext_api.duckdb_list_vector_reserve
714
+ #define duckdb_struct_vector_get_child duckdb_ext_api.duckdb_struct_vector_get_child
715
+ #define duckdb_array_vector_get_child duckdb_ext_api.duckdb_array_vector_get_child
716
+ #define duckdb_validity_row_is_valid duckdb_ext_api.duckdb_validity_row_is_valid
717
+ #define duckdb_validity_set_row_validity duckdb_ext_api.duckdb_validity_set_row_validity
718
+ #define duckdb_validity_set_row_invalid duckdb_ext_api.duckdb_validity_set_row_invalid
719
+ #define duckdb_validity_set_row_valid duckdb_ext_api.duckdb_validity_set_row_valid
720
+ #define duckdb_create_scalar_function duckdb_ext_api.duckdb_create_scalar_function
721
+ #define duckdb_destroy_scalar_function duckdb_ext_api.duckdb_destroy_scalar_function
722
+ #define duckdb_scalar_function_set_name duckdb_ext_api.duckdb_scalar_function_set_name
723
+ #define duckdb_scalar_function_set_varargs duckdb_ext_api.duckdb_scalar_function_set_varargs
724
+ #define duckdb_scalar_function_set_special_handling duckdb_ext_api.duckdb_scalar_function_set_special_handling
725
+ #define duckdb_scalar_function_set_volatile duckdb_ext_api.duckdb_scalar_function_set_volatile
726
+ #define duckdb_scalar_function_add_parameter duckdb_ext_api.duckdb_scalar_function_add_parameter
727
+ #define duckdb_scalar_function_set_return_type duckdb_ext_api.duckdb_scalar_function_set_return_type
728
+ #define duckdb_scalar_function_set_extra_info duckdb_ext_api.duckdb_scalar_function_set_extra_info
729
+ #define duckdb_scalar_function_set_function duckdb_ext_api.duckdb_scalar_function_set_function
730
+ #define duckdb_register_scalar_function duckdb_ext_api.duckdb_register_scalar_function
731
+ #define duckdb_scalar_function_get_extra_info duckdb_ext_api.duckdb_scalar_function_get_extra_info
732
+ #define duckdb_scalar_function_set_error duckdb_ext_api.duckdb_scalar_function_set_error
733
+ #define duckdb_create_scalar_function_set duckdb_ext_api.duckdb_create_scalar_function_set
734
+ #define duckdb_destroy_scalar_function_set duckdb_ext_api.duckdb_destroy_scalar_function_set
735
+ #define duckdb_add_scalar_function_to_set duckdb_ext_api.duckdb_add_scalar_function_to_set
736
+ #define duckdb_register_scalar_function_set duckdb_ext_api.duckdb_register_scalar_function_set
737
+ #define duckdb_create_aggregate_function duckdb_ext_api.duckdb_create_aggregate_function
738
+ #define duckdb_destroy_aggregate_function duckdb_ext_api.duckdb_destroy_aggregate_function
739
+ #define duckdb_aggregate_function_set_name duckdb_ext_api.duckdb_aggregate_function_set_name
740
+ #define duckdb_aggregate_function_add_parameter duckdb_ext_api.duckdb_aggregate_function_add_parameter
741
+ #define duckdb_aggregate_function_set_return_type duckdb_ext_api.duckdb_aggregate_function_set_return_type
742
+ #define duckdb_aggregate_function_set_functions duckdb_ext_api.duckdb_aggregate_function_set_functions
743
+ #define duckdb_aggregate_function_set_destructor duckdb_ext_api.duckdb_aggregate_function_set_destructor
744
+ #define duckdb_register_aggregate_function duckdb_ext_api.duckdb_register_aggregate_function
745
+ #define duckdb_aggregate_function_set_special_handling duckdb_ext_api.duckdb_aggregate_function_set_special_handling
746
+ #define duckdb_aggregate_function_set_extra_info duckdb_ext_api.duckdb_aggregate_function_set_extra_info
747
+ #define duckdb_aggregate_function_get_extra_info duckdb_ext_api.duckdb_aggregate_function_get_extra_info
748
+ #define duckdb_aggregate_function_set_error duckdb_ext_api.duckdb_aggregate_function_set_error
749
+ #define duckdb_create_aggregate_function_set duckdb_ext_api.duckdb_create_aggregate_function_set
750
+ #define duckdb_destroy_aggregate_function_set duckdb_ext_api.duckdb_destroy_aggregate_function_set
751
+ #define duckdb_add_aggregate_function_to_set duckdb_ext_api.duckdb_add_aggregate_function_to_set
752
+ #define duckdb_register_aggregate_function_set duckdb_ext_api.duckdb_register_aggregate_function_set
753
+ #define duckdb_create_table_function duckdb_ext_api.duckdb_create_table_function
754
+ #define duckdb_destroy_table_function duckdb_ext_api.duckdb_destroy_table_function
755
+ #define duckdb_table_function_set_name duckdb_ext_api.duckdb_table_function_set_name
756
+ #define duckdb_table_function_add_parameter duckdb_ext_api.duckdb_table_function_add_parameter
757
+ #define duckdb_table_function_add_named_parameter duckdb_ext_api.duckdb_table_function_add_named_parameter
758
+ #define duckdb_table_function_set_extra_info duckdb_ext_api.duckdb_table_function_set_extra_info
759
+ #define duckdb_table_function_set_bind duckdb_ext_api.duckdb_table_function_set_bind
760
+ #define duckdb_table_function_set_init duckdb_ext_api.duckdb_table_function_set_init
761
+ #define duckdb_table_function_set_local_init duckdb_ext_api.duckdb_table_function_set_local_init
762
+ #define duckdb_table_function_set_function duckdb_ext_api.duckdb_table_function_set_function
763
+ #define duckdb_table_function_supports_projection_pushdown \
764
+ duckdb_ext_api.duckdb_table_function_supports_projection_pushdown
765
+ #define duckdb_register_table_function duckdb_ext_api.duckdb_register_table_function
766
+ #define duckdb_bind_get_extra_info duckdb_ext_api.duckdb_bind_get_extra_info
767
+ #define duckdb_bind_add_result_column duckdb_ext_api.duckdb_bind_add_result_column
768
+ #define duckdb_bind_get_parameter_count duckdb_ext_api.duckdb_bind_get_parameter_count
769
+ #define duckdb_bind_get_parameter duckdb_ext_api.duckdb_bind_get_parameter
770
+ #define duckdb_bind_get_named_parameter duckdb_ext_api.duckdb_bind_get_named_parameter
771
+ #define duckdb_bind_set_bind_data duckdb_ext_api.duckdb_bind_set_bind_data
772
+ #define duckdb_bind_set_cardinality duckdb_ext_api.duckdb_bind_set_cardinality
773
+ #define duckdb_bind_set_error duckdb_ext_api.duckdb_bind_set_error
774
+ #define duckdb_init_get_extra_info duckdb_ext_api.duckdb_init_get_extra_info
775
+ #define duckdb_init_get_bind_data duckdb_ext_api.duckdb_init_get_bind_data
776
+ #define duckdb_init_set_init_data duckdb_ext_api.duckdb_init_set_init_data
777
+ #define duckdb_init_get_column_count duckdb_ext_api.duckdb_init_get_column_count
778
+ #define duckdb_init_get_column_index duckdb_ext_api.duckdb_init_get_column_index
779
+ #define duckdb_init_set_max_threads duckdb_ext_api.duckdb_init_set_max_threads
780
+ #define duckdb_init_set_error duckdb_ext_api.duckdb_init_set_error
781
+ #define duckdb_function_get_extra_info duckdb_ext_api.duckdb_function_get_extra_info
782
+ #define duckdb_function_get_bind_data duckdb_ext_api.duckdb_function_get_bind_data
783
+ #define duckdb_function_get_init_data duckdb_ext_api.duckdb_function_get_init_data
784
+ #define duckdb_function_get_local_init_data duckdb_ext_api.duckdb_function_get_local_init_data
785
+ #define duckdb_function_set_error duckdb_ext_api.duckdb_function_set_error
786
+ #define duckdb_add_replacement_scan duckdb_ext_api.duckdb_add_replacement_scan
787
+ #define duckdb_replacement_scan_set_function_name duckdb_ext_api.duckdb_replacement_scan_set_function_name
788
+ #define duckdb_replacement_scan_add_parameter duckdb_ext_api.duckdb_replacement_scan_add_parameter
789
+ #define duckdb_replacement_scan_set_error duckdb_ext_api.duckdb_replacement_scan_set_error
790
+ #define duckdb_get_profiling_info duckdb_ext_api.duckdb_get_profiling_info
791
+ #define duckdb_profiling_info_get_value duckdb_ext_api.duckdb_profiling_info_get_value
792
+ #define duckdb_profiling_info_get_metrics duckdb_ext_api.duckdb_profiling_info_get_metrics
793
+ #define duckdb_profiling_info_get_child_count duckdb_ext_api.duckdb_profiling_info_get_child_count
794
+ #define duckdb_profiling_info_get_child duckdb_ext_api.duckdb_profiling_info_get_child
795
+ #define duckdb_appender_create duckdb_ext_api.duckdb_appender_create
796
+ #define duckdb_appender_column_count duckdb_ext_api.duckdb_appender_column_count
797
+ #define duckdb_appender_column_type duckdb_ext_api.duckdb_appender_column_type
798
+ #define duckdb_appender_error duckdb_ext_api.duckdb_appender_error
799
+ #define duckdb_appender_flush duckdb_ext_api.duckdb_appender_flush
800
+ #define duckdb_appender_close duckdb_ext_api.duckdb_appender_close
801
+ #define duckdb_appender_destroy duckdb_ext_api.duckdb_appender_destroy
802
+ #define duckdb_appender_begin_row duckdb_ext_api.duckdb_appender_begin_row
803
+ #define duckdb_appender_end_row duckdb_ext_api.duckdb_appender_end_row
804
+ #define duckdb_append_default duckdb_ext_api.duckdb_append_default
805
+ #define duckdb_append_bool duckdb_ext_api.duckdb_append_bool
806
+ #define duckdb_append_int8 duckdb_ext_api.duckdb_append_int8
807
+ #define duckdb_append_int16 duckdb_ext_api.duckdb_append_int16
808
+ #define duckdb_append_int32 duckdb_ext_api.duckdb_append_int32
809
+ #define duckdb_append_int64 duckdb_ext_api.duckdb_append_int64
810
+ #define duckdb_append_hugeint duckdb_ext_api.duckdb_append_hugeint
811
+ #define duckdb_append_uint8 duckdb_ext_api.duckdb_append_uint8
812
+ #define duckdb_append_uint16 duckdb_ext_api.duckdb_append_uint16
813
+ #define duckdb_append_uint32 duckdb_ext_api.duckdb_append_uint32
814
+ #define duckdb_append_uint64 duckdb_ext_api.duckdb_append_uint64
815
+ #define duckdb_append_uhugeint duckdb_ext_api.duckdb_append_uhugeint
816
+ #define duckdb_append_float duckdb_ext_api.duckdb_append_float
817
+ #define duckdb_append_double duckdb_ext_api.duckdb_append_double
818
+ #define duckdb_append_date duckdb_ext_api.duckdb_append_date
819
+ #define duckdb_append_time duckdb_ext_api.duckdb_append_time
820
+ #define duckdb_append_timestamp duckdb_ext_api.duckdb_append_timestamp
821
+ #define duckdb_append_interval duckdb_ext_api.duckdb_append_interval
822
+ #define duckdb_append_varchar duckdb_ext_api.duckdb_append_varchar
823
+ #define duckdb_append_varchar_length duckdb_ext_api.duckdb_append_varchar_length
824
+ #define duckdb_append_blob duckdb_ext_api.duckdb_append_blob
825
+ #define duckdb_append_null duckdb_ext_api.duckdb_append_null
826
+ #define duckdb_append_data_chunk duckdb_ext_api.duckdb_append_data_chunk
827
+ #define duckdb_table_description_create duckdb_ext_api.duckdb_table_description_create
828
+ #define duckdb_table_description_destroy duckdb_ext_api.duckdb_table_description_destroy
829
+ #define duckdb_table_description_error duckdb_ext_api.duckdb_table_description_error
830
+ #define duckdb_column_has_default duckdb_ext_api.duckdb_column_has_default
831
+ #define duckdb_query_arrow duckdb_ext_api.duckdb_query_arrow
832
+ #define duckdb_query_arrow_schema duckdb_ext_api.duckdb_query_arrow_schema
833
+ #define duckdb_prepared_arrow_schema duckdb_ext_api.duckdb_prepared_arrow_schema
834
+ #define duckdb_result_arrow_array duckdb_ext_api.duckdb_result_arrow_array
835
+ #define duckdb_query_arrow_array duckdb_ext_api.duckdb_query_arrow_array
836
+ #define duckdb_arrow_column_count duckdb_ext_api.duckdb_arrow_column_count
837
+ #define duckdb_arrow_row_count duckdb_ext_api.duckdb_arrow_row_count
838
+ #define duckdb_arrow_rows_changed duckdb_ext_api.duckdb_arrow_rows_changed
839
+ #define duckdb_query_arrow_error duckdb_ext_api.duckdb_query_arrow_error
840
+ #define duckdb_destroy_arrow duckdb_ext_api.duckdb_destroy_arrow
841
+ #define duckdb_destroy_arrow_stream duckdb_ext_api.duckdb_destroy_arrow_stream
842
+ #define duckdb_execute_prepared_arrow duckdb_ext_api.duckdb_execute_prepared_arrow
843
+ #define duckdb_arrow_scan duckdb_ext_api.duckdb_arrow_scan
844
+ #define duckdb_arrow_array_scan duckdb_ext_api.duckdb_arrow_array_scan
845
+ #define duckdb_execute_tasks duckdb_ext_api.duckdb_execute_tasks
846
+ #define duckdb_create_task_state duckdb_ext_api.duckdb_create_task_state
847
+ #define duckdb_execute_tasks_state duckdb_ext_api.duckdb_execute_tasks_state
848
+ #define duckdb_execute_n_tasks_state duckdb_ext_api.duckdb_execute_n_tasks_state
849
+ #define duckdb_finish_execution duckdb_ext_api.duckdb_finish_execution
850
+ #define duckdb_task_state_is_finished duckdb_ext_api.duckdb_task_state_is_finished
851
+ #define duckdb_destroy_task_state duckdb_ext_api.duckdb_destroy_task_state
852
+ #define duckdb_execution_is_finished duckdb_ext_api.duckdb_execution_is_finished
853
+ #define duckdb_stream_fetch_chunk duckdb_ext_api.duckdb_stream_fetch_chunk
854
+ #define duckdb_fetch_chunk duckdb_ext_api.duckdb_fetch_chunk
855
+ #define duckdb_create_cast_function duckdb_ext_api.duckdb_create_cast_function
856
+ #define duckdb_cast_function_set_source_type duckdb_ext_api.duckdb_cast_function_set_source_type
857
+ #define duckdb_cast_function_set_target_type duckdb_ext_api.duckdb_cast_function_set_target_type
858
+ #define duckdb_cast_function_set_implicit_cast_cost duckdb_ext_api.duckdb_cast_function_set_implicit_cast_cost
859
+ #define duckdb_cast_function_set_function duckdb_ext_api.duckdb_cast_function_set_function
860
+ #define duckdb_cast_function_set_extra_info duckdb_ext_api.duckdb_cast_function_set_extra_info
861
+ #define duckdb_cast_function_get_extra_info duckdb_ext_api.duckdb_cast_function_get_extra_info
862
+ #define duckdb_cast_function_get_cast_mode duckdb_ext_api.duckdb_cast_function_get_cast_mode
863
+ #define duckdb_cast_function_set_error duckdb_ext_api.duckdb_cast_function_set_error
864
+ #define duckdb_cast_function_set_row_error duckdb_ext_api.duckdb_cast_function_set_row_error
865
+ #define duckdb_register_cast_function duckdb_ext_api.duckdb_register_cast_function
866
+ #define duckdb_destroy_cast_function duckdb_ext_api.duckdb_destroy_cast_function
867
+
868
+ //===--------------------------------------------------------------------===//
869
+ // Struct Global Macros
870
+ //===--------------------------------------------------------------------===//
871
+ // This goes in the c/c++ file containing the entrypoint (handle
872
+ #define DUCKDB_EXTENSION_GLOBAL duckdb_ext_api_v0 duckdb_ext_api = {0};
873
+ // Initializes the C Extension API: First thing to call in the extension entrypoint
874
+ #define DUCKDB_EXTENSION_API_INIT(info, access, minimum_api_version) \
875
+ duckdb_ext_api_v0 *res = (duckdb_ext_api_v0 *)access->get_api(info, minimum_api_version); \
876
+ if (!res) { \
877
+ return; \
878
+ }; \
879
+ duckdb_ext_api = *res;
880
+
881
+ // Place in global scope of any C/C++ file that needs to access the extension API
882
+ #define DUCKDB_EXTENSION_EXTERN extern duckdb_ext_api_v0 duckdb_ext_api;
883
+
884
+ //===--------------------------------------------------------------------===//
885
+ // Entrypoint Macros
886
+ //===--------------------------------------------------------------------===//
887
+
888
+ // Note: the DUCKDB_EXTENSION_ENTRYPOINT macro requires DUCKDB_EXTENSION_NAME to be set.
889
+
890
+ #ifdef DUCKDB_EXTENSION_NAME
891
+
892
+ // Main entrypoint: opens (and closes) a connection automatically for the extension to register its functionality
893
+ // through
894
+ #define DUCKDB_EXTENSION_ENTRYPOINT \
895
+ DUCKDB_EXTENSION_GLOBAL static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)( \
896
+ duckdb_connection connection, duckdb_extension_info info, duckdb_extension_access * access); \
897
+ DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN DUCKDB_EXTENSION_API void DUCKDB_EXTENSION_GLUE( \
898
+ DUCKDB_EXTENSION_NAME, _init_c_api)(duckdb_extension_info info, duckdb_extension_access * access) { \
899
+ DUCKDB_EXTENSION_API_INIT(info, access, DUCKDB_EXTENSION_API_VERSION_STRING); \
900
+ duckdb_database *db = access->get_database(info); \
901
+ duckdb_connection conn; \
902
+ if (duckdb_connect(*db, &conn) == DuckDBError) { \
903
+ access->set_error(info, "Failed to open connection to database"); \
904
+ return; \
905
+ } \
906
+ DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)(conn, info, access); \
907
+ duckdb_disconnect(&conn); \
908
+ } \
909
+ DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)
910
+
911
+ // Custom entrypoint: just forwards the info and access
912
+ #define DUCKDB_EXTENSION_ENTRYPOINT_CUSTOM \
913
+ DUCKDB_EXTENSION_GLOBAL static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)( \
914
+ duckdb_extension_info info, duckdb_extension_access * access); \
915
+ DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN DUCKDB_EXTENSION_API void DUCKDB_EXTENSION_GLUE( \
916
+ DUCKDB_EXTENSION_NAME, _init_c_api)(duckdb_extension_info info, duckdb_extension_access * access) { \
917
+ DUCKDB_EXTENSION_API_INIT(info, access, DUCKDB_EXTENSION_API_VERSION_STRING); \
918
+ DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)(info, access); \
919
+ } \
920
+ DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)
921
+ #endif