duckdb 0.8.1-dev26.0 → 0.8.1-dev287.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 (604) hide show
  1. package/binding.gyp +8 -8
  2. package/package.json +1 -1
  3. package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
  4. package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
  5. package/src/duckdb/extension/json/buffered_json_reader.cpp +23 -14
  6. package/src/duckdb/extension/json/include/buffered_json_reader.hpp +6 -6
  7. package/src/duckdb/extension/json/include/json_common.hpp +13 -3
  8. package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
  9. package/src/duckdb/extension/json/include/json_scan.hpp +3 -1
  10. package/src/duckdb/extension/json/json_functions/json_create.cpp +16 -16
  11. package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +3 -3
  12. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +2 -2
  13. package/src/duckdb/extension/json/json_functions/json_structure.cpp +5 -3
  14. package/src/duckdb/extension/json/json_functions/json_transform.cpp +12 -12
  15. package/src/duckdb/extension/json/json_functions/read_json.cpp +2 -1
  16. package/src/duckdb/extension/json/json_functions.cpp +6 -3
  17. package/src/duckdb/extension/json/json_scan.cpp +40 -25
  18. package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
  19. package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
  20. package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
  21. package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
  22. package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
  23. package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
  24. package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
  25. package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
  26. package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
  27. package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
  28. package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
  29. package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
  30. package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
  31. package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
  32. package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
  33. package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
  34. package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
  35. package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
  36. package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
  37. package/src/duckdb/src/catalog/catalog.cpp +5 -17
  38. package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +113 -0
  39. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
  40. package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
  41. package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
  42. package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
  43. package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
  44. package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
  45. package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
  46. package/src/duckdb/src/common/adbc/adbc.cpp +301 -106
  47. package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -22
  48. package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
  49. package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
  50. package/src/duckdb/src/common/checksum.cpp +1 -1
  51. package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
  52. package/src/duckdb/src/common/crypto/md5.cpp +9 -9
  53. package/src/duckdb/src/common/exception.cpp +4 -1
  54. package/src/duckdb/src/common/exception_format_value.cpp +19 -14
  55. package/src/duckdb/src/common/field_writer.cpp +1 -1
  56. package/src/duckdb/src/common/file_system.cpp +15 -2
  57. package/src/duckdb/src/common/fsst.cpp +11 -6
  58. package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
  59. package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
  60. package/src/duckdb/src/common/local_file_system.cpp +11 -11
  61. package/src/duckdb/src/common/multi_file_reader.cpp +3 -0
  62. package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
  63. package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
  64. package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
  65. package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
  66. package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
  67. package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
  68. package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
  69. package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
  70. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
  71. package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
  72. package/src/duckdb/src/common/serializer.cpp +1 -1
  73. package/src/duckdb/src/common/sort/comparators.cpp +1 -1
  74. package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
  75. package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
  76. package/src/duckdb/src/common/types/bit.cpp +5 -5
  77. package/src/duckdb/src/common/types/blob.cpp +8 -8
  78. package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
  79. package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
  80. package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
  81. package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
  82. package/src/duckdb/src/common/types/hash.cpp +2 -2
  83. package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
  84. package/src/duckdb/src/common/types/list_segment.cpp +77 -49
  85. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
  86. package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +5 -4
  87. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
  88. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +61 -24
  89. package/src/duckdb/src/common/types/string_heap.cpp +1 -1
  90. package/src/duckdb/src/common/types/value.cpp +3 -2
  91. package/src/duckdb/src/common/types/vector.cpp +98 -101
  92. package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
  93. package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
  94. package/src/duckdb/src/common/types.cpp +44 -33
  95. package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
  96. package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
  97. package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
  98. package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
  99. package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
  100. package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
  101. package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
  102. package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
  103. package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
  104. package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +44 -44
  105. package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
  106. package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
  107. package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
  108. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
  109. package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
  110. package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
  111. package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
  112. package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
  113. package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
  114. package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
  115. package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +97 -121
  116. package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
  117. package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
  118. package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
  119. package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
  120. package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
  121. package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
  122. package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
  123. package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
  124. package/src/duckdb/src/core_functions/function_list.cpp +1 -0
  125. package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
  126. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +45 -45
  127. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
  128. package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
  129. package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
  130. package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
  131. package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +14 -0
  132. package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +3 -3
  133. package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
  134. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
  135. package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
  136. package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
  137. package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
  138. package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
  139. package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +4 -1
  140. package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
  141. package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
  142. package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
  143. package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
  144. package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
  145. package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
  146. package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
  147. package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
  148. package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
  149. package/src/duckdb/src/execution/expression_executor.cpp +28 -28
  150. package/src/duckdb/src/execution/index/art/art.cpp +30 -32
  151. package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
  152. package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
  153. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
  154. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
  155. package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
  156. package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
  157. package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
  158. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
  159. package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +25 -9
  160. package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
  161. package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -2
  162. package/src/duckdb/src/execution/operator/helper/physical_set.cpp +5 -1
  163. package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
  164. package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
  165. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
  166. package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
  167. package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
  168. package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
  169. package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
  170. package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
  171. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
  172. package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
  173. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
  174. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
  175. package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
  176. package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
  177. package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -3
  178. package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
  179. package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
  180. package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
  181. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
  182. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
  183. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
  184. package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
  185. package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
  186. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
  187. package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
  188. package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
  189. package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
  190. package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
  191. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
  192. package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
  193. package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
  194. package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
  195. package/src/duckdb/src/function/cast/list_casts.cpp +2 -4
  196. package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
  197. package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
  198. package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
  199. package/src/duckdb/src/function/pragma/pragma_queries.cpp +33 -23
  200. package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
  201. package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
  202. package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -3
  203. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
  204. package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
  205. package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
  206. package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
  207. package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
  208. package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +6 -2
  209. package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
  210. package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
  211. package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
  212. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +25 -23
  213. package/src/duckdb/src/function/scalar_function.cpp +3 -3
  214. package/src/duckdb/src/function/table/arrow.cpp +6 -6
  215. package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
  216. package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
  217. package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
  218. package/src/duckdb/src/function/table/glob.cpp +1 -1
  219. package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
  220. package/src/duckdb/src/function/table/range.cpp +4 -4
  221. package/src/duckdb/src/function/table/read_csv.cpp +15 -20
  222. package/src/duckdb/src/function/table/repeat.cpp +2 -2
  223. package/src/duckdb/src/function/table/repeat_row.cpp +10 -3
  224. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
  225. package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
  226. package/src/duckdb/src/function/table/table_scan.cpp +2 -2
  227. package/src/duckdb/src/function/table/unnest.cpp +1 -1
  228. package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
  229. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -5
  230. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
  231. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +6 -0
  232. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
  233. package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +8 -2
  234. package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +97 -0
  235. package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
  236. package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
  237. package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
  238. package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
  239. package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
  240. package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
  241. package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
  242. package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
  243. package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
  244. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
  245. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
  246. package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
  247. package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
  248. package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
  249. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
  250. package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
  251. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
  252. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
  253. package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
  254. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
  255. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
  256. package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
  257. package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
  258. package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
  259. package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
  260. package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
  261. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
  262. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
  263. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
  264. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
  265. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
  266. package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
  267. package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +9 -0
  268. package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +2 -6
  269. package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +16 -36
  270. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
  271. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -3
  272. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
  273. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
  274. package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
  275. package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
  276. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +8 -29
  277. package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
  278. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
  279. package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
  280. package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
  281. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
  282. package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
  283. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +3 -1
  284. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
  285. package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
  286. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
  287. package/src/duckdb/src/include/duckdb/function/table_function.hpp +8 -7
  288. package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
  289. package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
  290. package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
  291. package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
  292. package/src/duckdb/src/include/duckdb/main/query_result.hpp +17 -0
  293. package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
  294. package/src/duckdb/src/include/duckdb/main/settings.hpp +9 -0
  295. package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
  296. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
  297. package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
  298. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
  299. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
  300. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
  301. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
  302. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
  303. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
  304. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
  305. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
  306. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
  307. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
  308. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
  309. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
  310. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
  311. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
  312. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
  313. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
  314. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
  315. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
  316. package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
  317. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
  318. package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
  319. package/src/duckdb/src/include/duckdb/parser/parser.hpp +2 -0
  320. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
  321. package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
  322. package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
  323. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
  324. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
  325. package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -2
  326. package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
  327. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
  328. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +1 -1
  329. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
  330. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
  331. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
  332. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +107 -91
  333. package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
  334. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
  335. package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
  336. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +34 -1
  337. package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
  338. package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
  339. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
  340. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
  341. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
  342. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
  343. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
  344. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
  345. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
  346. package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
  347. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
  348. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
  349. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
  350. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
  351. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
  352. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
  353. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
  354. package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
  355. package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
  356. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -1
  357. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
  358. package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
  359. package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
  360. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +7 -2
  361. package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +6 -2
  362. package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +4 -0
  363. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +5 -1
  364. package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +5 -1
  365. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
  366. package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +6 -2
  367. package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -0
  368. package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
  369. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
  370. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
  371. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
  372. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
  373. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
  374. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
  375. package/src/duckdb/src/include/duckdb/storage/index.hpp +2 -2
  376. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
  377. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
  378. package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
  379. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
  380. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
  381. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
  382. package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
  383. package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
  384. package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
  385. package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
  386. package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
  387. package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
  388. package/src/duckdb/src/main/capi/config-c.cpp +3 -6
  389. package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
  390. package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
  391. package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
  392. package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
  393. package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
  394. package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
  395. package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
  396. package/src/duckdb/src/main/capi/result-c.cpp +23 -23
  397. package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
  398. package/src/duckdb/src/main/client_context.cpp +3 -3
  399. package/src/duckdb/src/main/config.cpp +1 -0
  400. package/src/duckdb/src/main/database_manager.cpp +1 -1
  401. package/src/duckdb/src/main/error_manager.cpp +1 -1
  402. package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
  403. package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
  404. package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
  405. package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
  406. package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
  407. package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
  408. package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
  409. package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
  410. package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
  411. package/src/duckdb/src/main/relation.cpp +1 -1
  412. package/src/duckdb/src/main/settings/settings.cpp +22 -6
  413. package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
  414. package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
  415. package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
  416. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
  417. package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
  418. package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
  419. package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
  420. package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
  421. package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
  422. package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
  423. package/src/duckdb/src/parallel/executor.cpp +1 -1
  424. package/src/duckdb/src/parser/base_expression.cpp +2 -5
  425. package/src/duckdb/src/parser/column_definition.cpp +5 -8
  426. package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
  427. package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
  428. package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
  429. package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
  430. package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
  431. package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
  432. package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
  433. package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
  434. package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
  435. package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
  436. package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
  437. package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
  438. package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
  439. package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
  440. package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
  441. package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
  442. package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
  443. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
  444. package/src/duckdb/src/parser/parser.cpp +4 -4
  445. package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
  446. package/src/duckdb/src/parser/query_node.cpp +7 -6
  447. package/src/duckdb/src/parser/result_modifier.cpp +25 -18
  448. package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
  449. package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
  450. package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
  451. package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
  452. package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
  453. package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
  454. package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
  455. package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
  456. package/src/duckdb/src/parser/tableref.cpp +12 -3
  457. package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
  458. package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
  459. package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
  460. package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
  461. package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
  462. package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
  463. package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
  464. package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
  465. package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
  466. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
  467. package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
  468. package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
  469. package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
  470. package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
  471. package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
  472. package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
  473. package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
  474. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
  475. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
  476. package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
  477. package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
  478. package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
  479. package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
  480. package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
  481. package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
  482. package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
  483. package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
  484. package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
  485. package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +3 -4
  486. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
  487. package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
  488. package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
  489. package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
  490. package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
  491. package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
  492. package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
  493. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
  494. package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
  495. package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
  496. package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -22
  497. package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
  498. package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
  499. package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
  500. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
  501. package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
  502. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
  503. package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
  504. package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
  505. package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
  506. package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
  507. package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
  508. package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
  509. package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
  510. package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
  511. package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
  512. package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
  513. package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
  514. package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
  515. package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
  516. package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
  517. package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
  518. package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
  519. package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +30 -27
  520. package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
  521. package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
  522. package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
  523. package/src/duckdb/src/parser/transformer.cpp +46 -46
  524. package/src/duckdb/src/planner/bind_context.cpp +9 -10
  525. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
  526. package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
  527. package/src/duckdb/src/planner/binder/expression/bind_positional_reference_expression.cpp +8 -3
  528. package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
  529. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
  530. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +8 -8
  531. package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
  532. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +1 -1
  533. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
  534. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
  535. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
  536. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +4 -2
  537. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +17 -7
  538. package/src/duckdb/src/planner/binder.cpp +1 -1
  539. package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
  540. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
  541. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
  542. package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
  543. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
  544. package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
  545. package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
  546. package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
  547. package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
  548. package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
  549. package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
  550. package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
  551. package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
  552. package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
  553. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
  554. package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
  555. package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
  556. package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
  557. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
  558. package/src/duckdb/src/planner/expression.cpp +15 -0
  559. package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
  560. package/src/duckdb/src/planner/expression_binder.cpp +3 -2
  561. package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
  562. package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
  563. package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
  564. package/src/duckdb/src/planner/logical_operator.cpp +3 -4
  565. package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
  566. package/src/duckdb/src/planner/planner.cpp +5 -15
  567. package/src/duckdb/src/planner/table_filter.cpp +1 -1
  568. package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
  569. package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
  570. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
  571. package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
  572. package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
  573. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
  574. package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
  575. package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
  576. package/src/duckdb/src/storage/compression/rle.cpp +8 -8
  577. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
  578. package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
  579. package/src/duckdb/src/storage/data_table.cpp +8 -7
  580. package/src/duckdb/src/storage/index.cpp +1 -3
  581. package/src/duckdb/src/storage/local_storage.cpp +2 -1
  582. package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
  583. package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
  584. package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
  585. package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
  586. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
  587. package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
  588. package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
  589. package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
  590. package/src/duckdb/src/storage/table/list_column_data.cpp +3 -3
  591. package/src/duckdb/src/storage/table/row_group.cpp +4 -4
  592. package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
  593. package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
  594. package/src/duckdb/src/storage/wal_replay.cpp +5 -6
  595. package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
  596. package/src/duckdb/src/transaction/commit_state.cpp +8 -8
  597. package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
  598. package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
  599. package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
  600. package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
  601. package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
  602. package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
  603. package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
  604. package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
@@ -4,7 +4,7 @@ static bool AssertLogicalTypeId(duckdb_logical_type type, duckdb::LogicalTypeId
4
4
  if (!type) {
5
5
  return false;
6
6
  }
7
- auto &ltype = *((duckdb::LogicalType *)type);
7
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
8
8
  if (ltype.id() != type_id) {
9
9
  return false;
10
10
  }
@@ -15,7 +15,7 @@ static bool AssertInternalType(duckdb_logical_type type, duckdb::PhysicalType ph
15
15
  if (!type) {
16
16
  return false;
17
17
  }
18
- auto &ltype = *((duckdb::LogicalType *)type);
18
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
19
19
  if (ltype.InternalType() != physical_type) {
20
20
  return false;
21
21
  }
@@ -31,7 +31,7 @@ duckdb_logical_type duckdb_create_list_type(duckdb_logical_type type) {
31
31
  return nullptr;
32
32
  }
33
33
  duckdb::LogicalType *ltype = new duckdb::LogicalType;
34
- *ltype = duckdb::LogicalType::LIST(*(duckdb::LogicalType *)type);
34
+ *ltype = duckdb::LogicalType::LIST(*reinterpret_cast<duckdb::LogicalType *>(type));
35
35
  return reinterpret_cast<duckdb_logical_type>(ltype);
36
36
  }
37
37
 
@@ -40,7 +40,7 @@ duckdb_logical_type duckdb_create_union_type(duckdb_logical_type member_types_p,
40
40
  if (!member_types_p || !member_names) {
41
41
  return nullptr;
42
42
  }
43
- duckdb::LogicalType *member_types = (duckdb::LogicalType *)member_types_p;
43
+ duckdb::LogicalType *member_types = reinterpret_cast<duckdb::LogicalType *>(member_types_p);
44
44
  duckdb::LogicalType *mtype = new duckdb::LogicalType;
45
45
  duckdb::child_list_t<duckdb::LogicalType> members;
46
46
 
@@ -56,7 +56,8 @@ duckdb_logical_type duckdb_create_map_type(duckdb_logical_type key_type, duckdb_
56
56
  return nullptr;
57
57
  }
58
58
  duckdb::LogicalType *mtype = new duckdb::LogicalType;
59
- *mtype = duckdb::LogicalType::MAP(*(duckdb::LogicalType *)key_type, *(duckdb::LogicalType *)value_type);
59
+ *mtype = duckdb::LogicalType::MAP(*reinterpret_cast<duckdb::LogicalType *>(key_type),
60
+ *reinterpret_cast<duckdb::LogicalType *>(value_type));
60
61
  return reinterpret_cast<duckdb_logical_type>(mtype);
61
62
  }
62
63
 
@@ -68,13 +69,13 @@ duckdb_type duckdb_get_type_id(duckdb_logical_type type) {
68
69
  if (!type) {
69
70
  return DUCKDB_TYPE_INVALID;
70
71
  }
71
- auto ltype = (duckdb::LogicalType *)type;
72
+ auto ltype = reinterpret_cast<duckdb::LogicalType *>(type);
72
73
  return duckdb::ConvertCPPTypeToC(*ltype);
73
74
  }
74
75
 
75
76
  void duckdb_destroy_logical_type(duckdb_logical_type *type) {
76
77
  if (type && *type) {
77
- auto ltype = (duckdb::LogicalType *)*type;
78
+ auto ltype = reinterpret_cast<duckdb::LogicalType *>(*type);
78
79
  delete ltype;
79
80
  *type = nullptr;
80
81
  }
@@ -84,7 +85,7 @@ uint8_t duckdb_decimal_width(duckdb_logical_type type) {
84
85
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::DECIMAL)) {
85
86
  return 0;
86
87
  }
87
- auto &ltype = *((duckdb::LogicalType *)type);
88
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
88
89
  return duckdb::DecimalType::GetWidth(ltype);
89
90
  }
90
91
 
@@ -92,7 +93,7 @@ uint8_t duckdb_decimal_scale(duckdb_logical_type type) {
92
93
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::DECIMAL)) {
93
94
  return 0;
94
95
  }
95
- auto &ltype = *((duckdb::LogicalType *)type);
96
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
96
97
  return duckdb::DecimalType::GetScale(ltype);
97
98
  }
98
99
 
@@ -100,7 +101,7 @@ duckdb_type duckdb_decimal_internal_type(duckdb_logical_type type) {
100
101
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::DECIMAL)) {
101
102
  return DUCKDB_TYPE_INVALID;
102
103
  }
103
- auto &ltype = *((duckdb::LogicalType *)type);
104
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
104
105
  switch (ltype.InternalType()) {
105
106
  case duckdb::PhysicalType::INT16:
106
107
  return DUCKDB_TYPE_SMALLINT;
@@ -119,7 +120,7 @@ duckdb_type duckdb_enum_internal_type(duckdb_logical_type type) {
119
120
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::ENUM)) {
120
121
  return DUCKDB_TYPE_INVALID;
121
122
  }
122
- auto &ltype = *((duckdb::LogicalType *)type);
123
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
123
124
  switch (ltype.InternalType()) {
124
125
  case duckdb::PhysicalType::UINT8:
125
126
  return DUCKDB_TYPE_UTINYINT;
@@ -136,7 +137,7 @@ uint32_t duckdb_enum_dictionary_size(duckdb_logical_type type) {
136
137
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::ENUM)) {
137
138
  return 0;
138
139
  }
139
- auto &ltype = *((duckdb::LogicalType *)type);
140
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
140
141
  return duckdb::EnumType::GetSize(ltype);
141
142
  }
142
143
 
@@ -144,7 +145,7 @@ char *duckdb_enum_dictionary_value(duckdb_logical_type type, idx_t index) {
144
145
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::ENUM)) {
145
146
  return nullptr;
146
147
  }
147
- auto &ltype = *((duckdb::LogicalType *)type);
148
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
148
149
  auto &vector = duckdb::EnumType::GetValuesInsertOrder(ltype);
149
150
  auto value = vector.GetValue(index);
150
151
  return strdup(duckdb::StringValue::Get(value).c_str());
@@ -155,7 +156,7 @@ duckdb_logical_type duckdb_list_type_child_type(duckdb_logical_type type) {
155
156
  !AssertLogicalTypeId(type, duckdb::LogicalTypeId::MAP)) {
156
157
  return nullptr;
157
158
  }
158
- auto &ltype = *((duckdb::LogicalType *)type);
159
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
159
160
  if (ltype.id() != duckdb::LogicalTypeId::LIST && ltype.id() != duckdb::LogicalTypeId::MAP) {
160
161
  return nullptr;
161
162
  }
@@ -166,7 +167,7 @@ duckdb_logical_type duckdb_map_type_key_type(duckdb_logical_type type) {
166
167
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::MAP)) {
167
168
  return nullptr;
168
169
  }
169
- auto &mtype = *((duckdb::LogicalType *)type);
170
+ auto &mtype = *(reinterpret_cast<duckdb::LogicalType *>(type));
170
171
  if (mtype.id() != duckdb::LogicalTypeId::MAP) {
171
172
  return nullptr;
172
173
  }
@@ -177,7 +178,7 @@ duckdb_logical_type duckdb_map_type_value_type(duckdb_logical_type type) {
177
178
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::MAP)) {
178
179
  return nullptr;
179
180
  }
180
- auto &mtype = *((duckdb::LogicalType *)type);
181
+ auto &mtype = *(reinterpret_cast<duckdb::LogicalType *>(type));
181
182
  if (mtype.id() != duckdb::LogicalTypeId::MAP) {
182
183
  return nullptr;
183
184
  }
@@ -188,7 +189,7 @@ idx_t duckdb_struct_type_child_count(duckdb_logical_type type) {
188
189
  if (!AssertInternalType(type, duckdb::PhysicalType::STRUCT)) {
189
190
  return 0;
190
191
  }
191
- auto &ltype = *((duckdb::LogicalType *)type);
192
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
192
193
  return duckdb::StructType::GetChildCount(ltype);
193
194
  }
194
195
 
@@ -210,7 +211,7 @@ char *duckdb_union_type_member_name(duckdb_logical_type type, idx_t index) {
210
211
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::UNION)) {
211
212
  return nullptr;
212
213
  }
213
- auto &ltype = *((duckdb::LogicalType *)type);
214
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
214
215
  return strdup(duckdb::UnionType::GetMemberName(ltype, index).c_str());
215
216
  }
216
217
 
@@ -221,7 +222,7 @@ duckdb_logical_type duckdb_union_type_member_type(duckdb_logical_type type, idx_
221
222
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::UNION)) {
222
223
  return nullptr;
223
224
  }
224
- auto &ltype = *((duckdb::LogicalType *)type);
225
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
225
226
  return reinterpret_cast<duckdb_logical_type>(
226
227
  new duckdb::LogicalType(duckdb::UnionType::GetMemberType(ltype, index)));
227
228
  }
@@ -230,7 +231,7 @@ char *duckdb_struct_type_child_name(duckdb_logical_type type, idx_t index) {
230
231
  if (!AssertInternalType(type, duckdb::PhysicalType::STRUCT)) {
231
232
  return nullptr;
232
233
  }
233
- auto &ltype = *((duckdb::LogicalType *)type);
234
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
234
235
  return strdup(duckdb::StructType::GetChildName(ltype, index).c_str());
235
236
  }
236
237
 
@@ -238,7 +239,7 @@ duckdb_logical_type duckdb_struct_type_child_type(duckdb_logical_type type, idx_
238
239
  if (!AssertInternalType(type, duckdb::PhysicalType::STRUCT)) {
239
240
  return nullptr;
240
241
  }
241
- auto &ltype = *((duckdb::LogicalType *)type);
242
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
242
243
  if (ltype.InternalType() != duckdb::PhysicalType::STRUCT) {
243
244
  return nullptr;
244
245
  }
@@ -14,7 +14,7 @@ duckdb_state duckdb_pending_prepared_internal(duckdb_prepared_statement prepared
14
14
  if (!prepared_statement || !out_result) {
15
15
  return DuckDBError;
16
16
  }
17
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
17
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
18
18
  auto result = new PendingStatementWrapper();
19
19
  result->allow_streaming = allow_streaming;
20
20
  try {
@@ -25,7 +25,7 @@ duckdb_state duckdb_pending_prepared_internal(duckdb_prepared_statement prepared
25
25
  result->statement = make_uniq<PendingQueryResult>(duckdb::PreservedError(ex));
26
26
  }
27
27
  duckdb_state return_value = !result->statement->HasError() ? DuckDBSuccess : DuckDBError;
28
- *out_result = (duckdb_pending_result)result;
28
+ *out_result = reinterpret_cast<duckdb_pending_result>(result);
29
29
 
30
30
  return return_value;
31
31
  }
@@ -43,7 +43,7 @@ void duckdb_destroy_pending(duckdb_pending_result *pending_result) {
43
43
  if (!pending_result || !*pending_result) {
44
44
  return;
45
45
  }
46
- auto wrapper = (PendingStatementWrapper *)*pending_result;
46
+ auto wrapper = reinterpret_cast<PendingStatementWrapper *>(*pending_result);
47
47
  if (wrapper->statement) {
48
48
  wrapper->statement->Close();
49
49
  }
@@ -55,7 +55,7 @@ const char *duckdb_pending_error(duckdb_pending_result pending_result) {
55
55
  if (!pending_result) {
56
56
  return nullptr;
57
57
  }
58
- auto wrapper = (PendingStatementWrapper *)pending_result;
58
+ auto wrapper = reinterpret_cast<PendingStatementWrapper *>(pending_result);
59
59
  if (!wrapper->statement) {
60
60
  return nullptr;
61
61
  }
@@ -66,7 +66,7 @@ duckdb_pending_state duckdb_pending_execute_task(duckdb_pending_result pending_r
66
66
  if (!pending_result) {
67
67
  return DUCKDB_PENDING_ERROR;
68
68
  }
69
- auto wrapper = (PendingStatementWrapper *)pending_result;
69
+ auto wrapper = reinterpret_cast<PendingStatementWrapper *>(pending_result);
70
70
  if (!wrapper->statement) {
71
71
  return DUCKDB_PENDING_ERROR;
72
72
  }
@@ -97,7 +97,7 @@ duckdb_state duckdb_execute_pending(duckdb_pending_result pending_result, duckdb
97
97
  if (!pending_result || !out_result) {
98
98
  return DuckDBError;
99
99
  }
100
- auto wrapper = (PendingStatementWrapper *)pending_result;
100
+ auto wrapper = reinterpret_cast<PendingStatementWrapper *>(pending_result);
101
101
  if (!wrapper->statement) {
102
102
  return DuckDBError;
103
103
  }
@@ -21,7 +21,7 @@ idx_t duckdb_extract_statements(duckdb_connection connection, const char *query,
21
21
  return 0;
22
22
  }
23
23
  auto wrapper = new ExtractStatementsWrapper();
24
- Connection *conn = (Connection *)connection;
24
+ Connection *conn = reinterpret_cast<Connection *>(connection);
25
25
  try {
26
26
  wrapper->statements = conn->ExtractStatements(query);
27
27
  } catch (const duckdb::ParserException &e) {
@@ -35,7 +35,7 @@ idx_t duckdb_extract_statements(duckdb_connection connection, const char *query,
35
35
  duckdb_state duckdb_prepare_extracted_statement(duckdb_connection connection,
36
36
  duckdb_extracted_statements extracted_statements, idx_t index,
37
37
  duckdb_prepared_statement *out_prepared_statement) {
38
- Connection *conn = (Connection *)connection;
38
+ Connection *conn = reinterpret_cast<Connection *>(connection);
39
39
  auto source_wrapper = (ExtractStatementsWrapper *)extracted_statements;
40
40
 
41
41
  if (!connection || !out_prepared_statement || index >= source_wrapper->statements.size()) {
@@ -62,14 +62,14 @@ duckdb_state duckdb_prepare(duckdb_connection connection, const char *query,
62
62
  return DuckDBError;
63
63
  }
64
64
  auto wrapper = new PreparedStatementWrapper();
65
- Connection *conn = (Connection *)connection;
65
+ Connection *conn = reinterpret_cast<Connection *>(connection);
66
66
  wrapper->statement = conn->Prepare(query);
67
67
  *out_prepared_statement = (duckdb_prepared_statement)wrapper;
68
68
  return !wrapper->statement->HasError() ? DuckDBSuccess : DuckDBError;
69
69
  }
70
70
 
71
71
  const char *duckdb_prepare_error(duckdb_prepared_statement prepared_statement) {
72
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
72
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
73
73
  if (!wrapper || !wrapper->statement || !wrapper->statement->HasError()) {
74
74
  return nullptr;
75
75
  }
@@ -77,7 +77,7 @@ const char *duckdb_prepare_error(duckdb_prepared_statement prepared_statement) {
77
77
  }
78
78
 
79
79
  idx_t duckdb_nparams(duckdb_prepared_statement prepared_statement) {
80
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
80
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
81
81
  if (!wrapper || !wrapper->statement || wrapper->statement->HasError()) {
82
82
  return 0;
83
83
  }
@@ -85,7 +85,7 @@ idx_t duckdb_nparams(duckdb_prepared_statement prepared_statement) {
85
85
  }
86
86
 
87
87
  duckdb_type duckdb_param_type(duckdb_prepared_statement prepared_statement, idx_t param_idx) {
88
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
88
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
89
89
  if (!wrapper || !wrapper->statement || wrapper->statement->HasError()) {
90
90
  return DUCKDB_TYPE_INVALID;
91
91
  }
@@ -97,7 +97,7 @@ duckdb_type duckdb_param_type(duckdb_prepared_statement prepared_statement, idx_
97
97
  }
98
98
 
99
99
  duckdb_state duckdb_clear_bindings(duckdb_prepared_statement prepared_statement) {
100
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
100
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
101
101
  if (!wrapper || !wrapper->statement || wrapper->statement->HasError()) {
102
102
  return DuckDBError;
103
103
  }
@@ -106,7 +106,7 @@ duckdb_state duckdb_clear_bindings(duckdb_prepared_statement prepared_statement)
106
106
  }
107
107
 
108
108
  static duckdb_state duckdb_bind_value(duckdb_prepared_statement prepared_statement, idx_t param_idx, Value val) {
109
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
109
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
110
110
  if (!wrapper || !wrapper->statement || wrapper->statement->HasError()) {
111
111
  return DuckDBError;
112
112
  }
@@ -220,7 +220,7 @@ duckdb_state duckdb_bind_decimal(duckdb_prepared_statement prepared_statement, i
220
220
 
221
221
  duckdb_state duckdb_bind_blob(duckdb_prepared_statement prepared_statement, idx_t param_idx, const void *data,
222
222
  idx_t length) {
223
- return duckdb_bind_value(prepared_statement, param_idx, Value::BLOB((duckdb::const_data_ptr_t)data, length));
223
+ return duckdb_bind_value(prepared_statement, param_idx, Value::BLOB(duckdb::const_data_ptr_cast(data), length));
224
224
  }
225
225
 
226
226
  duckdb_state duckdb_bind_null(duckdb_prepared_statement prepared_statement, idx_t param_idx) {
@@ -228,7 +228,7 @@ duckdb_state duckdb_bind_null(duckdb_prepared_statement prepared_statement, idx_
228
228
  }
229
229
 
230
230
  duckdb_state duckdb_execute_prepared(duckdb_prepared_statement prepared_statement, duckdb_result *out_result) {
231
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
231
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
232
232
  if (!wrapper || !wrapper->statement || wrapper->statement->HasError()) {
233
233
  return DuckDBError;
234
234
  }
@@ -30,7 +30,7 @@ struct CAPIReplacementScanInfo {
30
30
 
31
31
  unique_ptr<TableRef> duckdb_capi_replacement_callback(ClientContext &context, const string &table_name,
32
32
  ReplacementScanData *data) {
33
- auto &scan_data = (CAPIReplacementScanData &)*data;
33
+ auto &scan_data = reinterpret_cast<CAPIReplacementScanData &>(*data);
34
34
 
35
35
  CAPIReplacementScanInfo info(&scan_data);
36
36
  scan_data.callback((duckdb_replacement_scan_info)&info, table_name.c_str(), scan_data.extra_data);
@@ -57,7 +57,7 @@ void duckdb_add_replacement_scan(duckdb_database db, duckdb_replacement_callback
57
57
  if (!db || !replacement) {
58
58
  return;
59
59
  }
60
- auto wrapper = (duckdb::DatabaseData *)db;
60
+ auto wrapper = reinterpret_cast<duckdb::DatabaseData *>(db);
61
61
  auto scan_info = duckdb::make_uniq<duckdb::CAPIReplacementScanData>();
62
62
  scan_info->callback = replacement;
63
63
  scan_info->extra_data = extra_data;
@@ -72,7 +72,7 @@ void duckdb_replacement_scan_set_function_name(duckdb_replacement_scan_info info
72
72
  if (!info_p || !function_name) {
73
73
  return;
74
74
  }
75
- auto info = (duckdb::CAPIReplacementScanInfo *)info_p;
75
+ auto info = reinterpret_cast<duckdb::CAPIReplacementScanInfo *>(info_p);
76
76
  info->function_name = function_name;
77
77
  }
78
78
 
@@ -80,8 +80,8 @@ void duckdb_replacement_scan_add_parameter(duckdb_replacement_scan_info info_p,
80
80
  if (!info_p || !parameter) {
81
81
  return;
82
82
  }
83
- auto info = (duckdb::CAPIReplacementScanInfo *)info_p;
84
- auto val = (duckdb::Value *)parameter;
83
+ auto info = reinterpret_cast<duckdb::CAPIReplacementScanInfo *>(info_p);
84
+ auto val = reinterpret_cast<duckdb::Value *>(parameter);
85
85
  info->parameters.push_back(*val);
86
86
  }
87
87
 
@@ -89,6 +89,6 @@ void duckdb_replacement_scan_set_error(duckdb_replacement_scan_info info_p, cons
89
89
  if (!info_p || !error) {
90
90
  return;
91
91
  }
92
- auto info = (duckdb::CAPIReplacementScanInfo *)info_p;
92
+ auto info = reinterpret_cast<duckdb::CAPIReplacementScanInfo *>(info_p);
93
93
  info->error = error;
94
94
  }
@@ -19,10 +19,10 @@ struct CStandardConverter : public CBaseConverter {
19
19
  struct CStringConverter {
20
20
  template <class SRC, class DST>
21
21
  static DST Convert(SRC input) {
22
- auto result = (char *)duckdb_malloc(input.GetSize() + 1);
22
+ auto result = char_ptr_cast(duckdb_malloc(input.GetSize() + 1));
23
23
  assert(result);
24
24
  memcpy((void *)result, input.GetData(), input.GetSize());
25
- auto write_arr = (char *)result;
25
+ auto write_arr = char_ptr_cast(result);
26
26
  write_arr[input.GetSize()] = '\0';
27
27
  return result;
28
28
  }
@@ -37,10 +37,10 @@ struct CBlobConverter {
37
37
  template <class SRC, class DST>
38
38
  static DST Convert(SRC input) {
39
39
  duckdb_blob result;
40
- result.data = (char *)duckdb_malloc(input.GetSize());
40
+ result.data = char_ptr_cast(duckdb_malloc(input.GetSize()));
41
41
  result.size = input.GetSize();
42
42
  assert(result.data);
43
- memcpy((void *)result.data, input.GetData(), input.GetSize());
43
+ memcpy(result.data, input.GetData(), input.GetSize());
44
44
  return result;
45
45
  }
46
46
 
@@ -266,7 +266,7 @@ duckdb_state duckdb_translate_result(unique_ptr<QueryResult> result_p, duckdb_re
266
266
 
267
267
  if (result.HasError()) {
268
268
  // write the error message
269
- out->__deprecated_error_message = (char *)result.GetError().c_str();
269
+ out->__deprecated_error_message = (char *)result.GetError().c_str(); // NOLINT
270
270
  return DuckDBError;
271
271
  }
272
272
  // copy the data
@@ -280,7 +280,7 @@ bool deprecated_materialize_result(duckdb_result *result) {
280
280
  if (!result) {
281
281
  return false;
282
282
  }
283
- auto result_data = (duckdb::DuckDBResultData *)result->internal_data;
283
+ auto result_data = reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data);
284
284
  if (result_data->result->HasError()) {
285
285
  return false;
286
286
  }
@@ -310,14 +310,14 @@ bool deprecated_materialize_result(duckdb_result *result) {
310
310
  result_data->result = stream_result.Materialize();
311
311
  }
312
312
  D_ASSERT(result_data->result->type == QueryResultType::MATERIALIZED_RESULT);
313
- auto &materialized = (MaterializedQueryResult &)*result_data->result;
313
+ auto &materialized = reinterpret_cast<MaterializedQueryResult &>(*result_data->result);
314
314
 
315
315
  // convert the result to a materialized result
316
316
  // zero initialize the columns (so we can cleanly delete it in case a malloc fails)
317
317
  memset(result->__deprecated_columns, 0, sizeof(duckdb_column) * column_count);
318
318
  for (idx_t i = 0; i < column_count; i++) {
319
319
  result->__deprecated_columns[i].__deprecated_type = ConvertCPPTypeToC(result_data->result->types[i]);
320
- result->__deprecated_columns[i].__deprecated_name = (char *)result_data->result->names[i].c_str();
320
+ result->__deprecated_columns[i].__deprecated_name = (char *)result_data->result->names[i].c_str(); // NOLINT
321
321
  }
322
322
  result->__deprecated_row_count = materialized.RowCount();
323
323
  if (result->__deprecated_row_count > 0 &&
@@ -344,7 +344,7 @@ static void DuckdbDestroyColumn(duckdb_column column, idx_t count) {
344
344
  if (column.__deprecated_data) {
345
345
  if (column.__deprecated_type == DUCKDB_TYPE_VARCHAR) {
346
346
  // varchar, delete individual strings
347
- auto data = (char **)column.__deprecated_data;
347
+ auto data = reinterpret_cast<char **>(column.__deprecated_data);
348
348
  for (idx_t i = 0; i < count; i++) {
349
349
  if (data[i]) {
350
350
  duckdb_free(data[i]);
@@ -352,7 +352,7 @@ static void DuckdbDestroyColumn(duckdb_column column, idx_t count) {
352
352
  }
353
353
  } else if (column.__deprecated_type == DUCKDB_TYPE_BLOB) {
354
354
  // blob, delete individual blobs
355
- auto data = (duckdb_blob *)column.__deprecated_data;
355
+ auto data = reinterpret_cast<duckdb_blob *>(column.__deprecated_data);
356
356
  for (idx_t i = 0; i < count; i++) {
357
357
  if (data[i].data) {
358
358
  duckdb_free((void *)data[i].data);
@@ -374,7 +374,7 @@ void duckdb_destroy_result(duckdb_result *result) {
374
374
  duckdb_free(result->__deprecated_columns);
375
375
  }
376
376
  if (result->internal_data) {
377
- auto result_data = (duckdb::DuckDBResultData *)result->internal_data;
377
+ auto result_data = reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data);
378
378
  delete result_data;
379
379
  }
380
380
  memset(result, 0, sizeof(duckdb_result));
@@ -384,7 +384,7 @@ const char *duckdb_column_name(duckdb_result *result, idx_t col) {
384
384
  if (!result || col >= duckdb_column_count(result)) {
385
385
  return nullptr;
386
386
  }
387
- auto &result_data = *((duckdb::DuckDBResultData *)result->internal_data);
387
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data));
388
388
  return result_data.result->names[col].c_str();
389
389
  }
390
390
 
@@ -392,7 +392,7 @@ duckdb_type duckdb_column_type(duckdb_result *result, idx_t col) {
392
392
  if (!result || col >= duckdb_column_count(result)) {
393
393
  return DUCKDB_TYPE_INVALID;
394
394
  }
395
- auto &result_data = *((duckdb::DuckDBResultData *)result->internal_data);
395
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data));
396
396
  return duckdb::ConvertCPPTypeToC(result_data.result->types[col]);
397
397
  }
398
398
 
@@ -400,7 +400,7 @@ duckdb_logical_type duckdb_column_logical_type(duckdb_result *result, idx_t col)
400
400
  if (!result || col >= duckdb_column_count(result)) {
401
401
  return nullptr;
402
402
  }
403
- auto &result_data = *((duckdb::DuckDBResultData *)result->internal_data);
403
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data));
404
404
  return reinterpret_cast<duckdb_logical_type>(new duckdb::LogicalType(result_data.result->types[col]));
405
405
  }
406
406
 
@@ -408,7 +408,7 @@ idx_t duckdb_column_count(duckdb_result *result) {
408
408
  if (!result) {
409
409
  return 0;
410
410
  }
411
- auto &result_data = *((duckdb::DuckDBResultData *)result->internal_data);
411
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data));
412
412
  return result_data.result->ColumnCount();
413
413
  }
414
414
 
@@ -416,12 +416,12 @@ idx_t duckdb_row_count(duckdb_result *result) {
416
416
  if (!result) {
417
417
  return 0;
418
418
  }
419
- auto &result_data = *((duckdb::DuckDBResultData *)result->internal_data);
419
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data));
420
420
  if (result_data.result->type == duckdb::QueryResultType::STREAM_RESULT) {
421
421
  // We can't know the row count beforehand
422
422
  return 0;
423
423
  }
424
- auto &materialized = (duckdb::MaterializedQueryResult &)*result_data.result;
424
+ auto &materialized = reinterpret_cast<duckdb::MaterializedQueryResult &>(*result_data.result);
425
425
  return materialized.RowCount();
426
426
  }
427
427
 
@@ -459,7 +459,7 @@ const char *duckdb_result_error(duckdb_result *result) {
459
459
  if (!result) {
460
460
  return nullptr;
461
461
  }
462
- auto &result_data = *((duckdb::DuckDBResultData *)result->internal_data);
462
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result->internal_data));
463
463
  return !result_data.result->HasError() ? nullptr : result_data.result->GetError().c_str();
464
464
  }
465
465
 
@@ -467,7 +467,7 @@ idx_t duckdb_result_chunk_count(duckdb_result result) {
467
467
  if (!result.internal_data) {
468
468
  return 0;
469
469
  }
470
- auto &result_data = *((duckdb::DuckDBResultData *)result.internal_data);
470
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result.internal_data));
471
471
  if (result_data.result_set_type == duckdb::CAPIResultSetType::CAPI_RESULT_TYPE_DEPRECATED) {
472
472
  return 0;
473
473
  }
@@ -475,7 +475,7 @@ idx_t duckdb_result_chunk_count(duckdb_result result) {
475
475
  // Can't know beforehand how many chunks are returned.
476
476
  return 0;
477
477
  }
478
- auto &materialized = (duckdb::MaterializedQueryResult &)*result_data.result;
478
+ auto &materialized = reinterpret_cast<duckdb::MaterializedQueryResult &>(*result_data.result);
479
479
  return materialized.Collection().ChunkCount();
480
480
  }
481
481
 
@@ -483,7 +483,7 @@ duckdb_data_chunk duckdb_result_get_chunk(duckdb_result result, idx_t chunk_idx)
483
483
  if (!result.internal_data) {
484
484
  return nullptr;
485
485
  }
486
- auto &result_data = *((duckdb::DuckDBResultData *)result.internal_data);
486
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result.internal_data));
487
487
  if (result_data.result_set_type == duckdb::CAPIResultSetType::CAPI_RESULT_TYPE_DEPRECATED) {
488
488
  return nullptr;
489
489
  }
@@ -492,7 +492,7 @@ duckdb_data_chunk duckdb_result_get_chunk(duckdb_result result, idx_t chunk_idx)
492
492
  return nullptr;
493
493
  }
494
494
  result_data.result_set_type = duckdb::CAPIResultSetType::CAPI_RESULT_TYPE_MATERIALIZED;
495
- auto &materialized = (duckdb::MaterializedQueryResult &)*result_data.result;
495
+ auto &materialized = reinterpret_cast<duckdb::MaterializedQueryResult &>(*result_data.result);
496
496
  auto &collection = materialized.Collection();
497
497
  if (chunk_idx >= collection.ChunkCount()) {
498
498
  return nullptr;
@@ -510,6 +510,6 @@ bool duckdb_result_is_streaming(duckdb_result result) {
510
510
  if (duckdb_result_error(&result) != nullptr) {
511
511
  return false;
512
512
  }
513
- auto &result_data = *((duckdb::DuckDBResultData *)result.internal_data);
513
+ auto &result_data = *(reinterpret_cast<duckdb::DuckDBResultData *>(result.internal_data));
514
514
  return result_data.result->type == duckdb::QueryResultType::STREAM_RESULT;
515
515
  }
@@ -311,7 +311,7 @@ void duckdb_bind_add_result_column(duckdb_bind_info info, const char *name, duck
311
311
  }
312
312
  auto bind_info = (duckdb::CTableInternalBindInfo *)info;
313
313
  bind_info->names.push_back(name);
314
- bind_info->return_types.push_back(*((duckdb::LogicalType *)type));
314
+ bind_info->return_types.push_back(*(reinterpret_cast<duckdb::LogicalType *>(type)));
315
315
  }
316
316
 
317
317
  idx_t duckdb_bind_get_parameter_count(duckdb_bind_info info) {
@@ -774,8 +774,8 @@ void ClientContext::LogQueryInternal(ClientContextLock &, const string &query) {
774
774
  #endif
775
775
  }
776
776
  // log query path is set: log the query
777
- client_data->log_query_writer->WriteData((const_data_ptr_t)query.c_str(), query.size());
778
- client_data->log_query_writer->WriteData((const_data_ptr_t) "\n", 1);
777
+ client_data->log_query_writer->WriteData(const_data_ptr_cast(query.c_str()), query.size());
778
+ client_data->log_query_writer->WriteData(const_data_ptr_cast("\n"), 1);
779
779
  client_data->log_query_writer->Flush();
780
780
  client_data->log_query_writer->Sync();
781
781
  }
@@ -918,7 +918,7 @@ void ClientContext::RegisterFunction(CreateFunctionInfo &info) {
918
918
  auto existing_function = Catalog::GetEntry<ScalarFunctionCatalogEntry>(*this, INVALID_CATALOG, info.schema,
919
919
  info.name, OnEntryNotFound::RETURN_NULL);
920
920
  if (existing_function) {
921
- auto &new_info = (CreateScalarFunctionInfo &)info;
921
+ auto &new_info = info.Cast<CreateScalarFunctionInfo>();
922
922
  if (new_info.functions.MergeFunctionSet(existing_function->functions)) {
923
923
  // function info was updated from catalog entry, rewrite is needed
924
924
  info.on_conflict = OnCreateConflict::REPLACE_ON_CONFLICT;
@@ -82,6 +82,7 @@ static ConfigurationOption internal_options[] = {DUCKDB_GLOBAL(AccessModeSetting
82
82
  DUCKDB_GLOBAL(ForceBitpackingModeSetting),
83
83
  DUCKDB_LOCAL(HomeDirectorySetting),
84
84
  DUCKDB_LOCAL(LogQueryPathSetting),
85
+ DUCKDB_GLOBAL(LockConfigurationSetting),
85
86
  DUCKDB_GLOBAL(ImmediateTransactionModeSetting),
86
87
  DUCKDB_LOCAL(IntegerDivisionSetting),
87
88
  DUCKDB_LOCAL(MaximumExpressionDepthSetting),
@@ -27,7 +27,7 @@ optional_ptr<AttachedDatabase> DatabaseManager::GetDatabase(ClientContext &conte
27
27
  if (StringUtil::Lower(name) == TEMP_CATALOG) {
28
28
  return context.client_data->temporary_objects.get();
29
29
  }
30
- return (AttachedDatabase *)databases->GetEntry(context, name).get();
30
+ return reinterpret_cast<AttachedDatabase *>(databases->GetEntry(context, name).get());
31
31
  }
32
32
 
33
33
  void DatabaseManager::AddDatabase(ClientContext &context, unique_ptr<AttachedDatabase> db_instance) {
@@ -37,7 +37,7 @@ string ErrorManager::FormatExceptionRecursive(ErrorType error_type, vector<Excep
37
37
  string ErrorManager::InvalidUnicodeError(const string &input, const string &context) {
38
38
  UnicodeInvalidReason reason;
39
39
  size_t pos;
40
- auto unicode = Utf8Proc::Analyze((const char *)input.c_str(), input.size(), &reason, &pos);
40
+ auto unicode = Utf8Proc::Analyze(const_char_ptr_cast(input.c_str()), input.size(), &reason, &pos);
41
41
  if (unicode != UnicodeType::INVALID) {
42
42
  return "Invalid unicode error thrown but no invalid unicode detected in " + context;
43
43
  }
@@ -86,7 +86,7 @@ bool ExtensionHelper::TryInitialLoad(DBConfig &config, FileSystem &fs, const str
86
86
 
87
87
  auto signature_offset = handle->GetFileSize() - signature.size();
88
88
 
89
- const idx_t maxLenChunks = 1024 * 1024;
89
+ const idx_t maxLenChunks = 1024ULL * 1024ULL;
90
90
  const idx_t numChunks = (signature_offset + maxLenChunks - 1) / maxLenChunks;
91
91
  std::vector<std::string> hash_chunks(numChunks);
92
92
  std::vector<idx_t> splits(numChunks + 1);
@@ -23,7 +23,7 @@ BoundStatement CreateTableRelation::Bind(Binder &binder) {
23
23
  info->query = std::move(select);
24
24
  info->on_conflict = OnCreateConflict::ERROR_ON_CONFLICT;
25
25
  stmt.info = std::move(info);
26
- return binder.Bind((SQLStatement &)stmt);
26
+ return binder.Bind(stmt.Cast<SQLStatement>());
27
27
  }
28
28
 
29
29
  const vector<ColumnDefinition> &CreateTableRelation::Columns() {
@@ -32,7 +32,7 @@ BoundStatement CreateViewRelation::Bind(Binder &binder) {
32
32
  info->schema = schema_name;
33
33
  info->on_conflict = replace ? OnCreateConflict::REPLACE_ON_CONFLICT : OnCreateConflict::ERROR_ON_CONFLICT;
34
34
  stmt.info = std::move(info);
35
- return binder.Bind((SQLStatement &)stmt);
35
+ return binder.Bind(stmt.Cast<SQLStatement>());
36
36
  }
37
37
 
38
38
  const vector<ColumnDefinition> &CreateViewRelation::Columns() {
@@ -21,7 +21,7 @@ BoundStatement DeleteRelation::Bind(Binder &binder) {
21
21
  DeleteStatement stmt;
22
22
  stmt.condition = condition ? condition->Copy() : nullptr;
23
23
  stmt.table = std::move(basetable);
24
- return binder.Bind((SQLStatement &)stmt);
24
+ return binder.Bind(stmt.Cast<SQLStatement>());
25
25
  }
26
26
 
27
27
  const vector<ColumnDefinition> &DeleteRelation::Columns() {