duckdb 0.8.1-dev51.0 → 0.8.1-dev96.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 (538) hide show
  1. package/package.json +1 -1
  2. package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
  3. package/src/duckdb/extension/json/include/json_common.hpp +1 -1
  4. package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
  5. package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -6
  6. package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +1 -1
  7. package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
  8. package/src/duckdb/extension/parquet/column_reader.cpp +52 -51
  9. package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
  10. package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
  11. package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
  12. package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
  13. package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
  14. package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
  15. package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
  16. package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
  17. package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
  18. package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
  19. package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
  20. package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
  21. package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
  22. package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
  23. package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
  24. package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
  25. package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
  26. package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
  27. package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
  28. package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
  29. package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
  30. package/src/duckdb/src/common/checksum.cpp +1 -1
  31. package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
  32. package/src/duckdb/src/common/crypto/md5.cpp +9 -9
  33. package/src/duckdb/src/common/field_writer.cpp +1 -1
  34. package/src/duckdb/src/common/file_system.cpp +15 -2
  35. package/src/duckdb/src/common/fsst.cpp +11 -6
  36. package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
  37. package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
  38. package/src/duckdb/src/common/local_file_system.cpp +11 -11
  39. package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
  40. package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
  41. package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
  42. package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
  43. package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
  44. package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
  45. package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
  46. package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
  47. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
  48. package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
  49. package/src/duckdb/src/common/serializer.cpp +1 -1
  50. package/src/duckdb/src/common/sort/comparators.cpp +1 -1
  51. package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
  52. package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
  53. package/src/duckdb/src/common/types/bit.cpp +5 -5
  54. package/src/duckdb/src/common/types/blob.cpp +8 -8
  55. package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
  56. package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
  57. package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
  58. package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
  59. package/src/duckdb/src/common/types/hash.cpp +2 -2
  60. package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
  61. package/src/duckdb/src/common/types/list_segment.cpp +77 -49
  62. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
  63. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
  64. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
  65. package/src/duckdb/src/common/types/string_heap.cpp +1 -1
  66. package/src/duckdb/src/common/types/value.cpp +2 -2
  67. package/src/duckdb/src/common/types/vector.cpp +98 -101
  68. package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
  69. package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
  70. package/src/duckdb/src/common/types.cpp +44 -33
  71. package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
  72. package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
  73. package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
  74. package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
  75. package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +3 -3
  76. package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +3 -3
  77. package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +4 -4
  78. package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +12 -11
  79. package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +3 -3
  80. package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +3 -3
  81. package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +2 -2
  82. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +7 -7
  83. package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +2 -2
  84. package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +2 -2
  85. package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +2 -2
  86. package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +14 -14
  87. package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +2 -2
  88. package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +21 -21
  89. package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +18 -19
  90. package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +3 -4
  91. package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +4 -4
  92. package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +4 -4
  93. package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +1 -1
  94. package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +1 -1
  95. package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +2 -2
  96. package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +1 -1
  97. package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
  98. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +45 -45
  99. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
  100. package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
  101. package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
  102. package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
  103. package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +3 -3
  104. package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
  105. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
  106. package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
  107. package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
  108. package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
  109. package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
  110. package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +1 -1
  111. package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
  112. package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
  113. package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
  114. package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
  115. package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
  116. package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
  117. package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
  118. package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
  119. package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
  120. package/src/duckdb/src/execution/expression_executor.cpp +28 -28
  121. package/src/duckdb/src/execution/index/art/art.cpp +30 -32
  122. package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
  123. package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
  124. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
  125. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
  126. package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
  127. package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
  128. package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
  129. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
  130. package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
  131. package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
  132. package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
  133. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
  134. package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
  135. package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
  136. package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
  137. package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
  138. package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
  139. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
  140. package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
  141. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
  142. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
  143. package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
  144. package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
  145. package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -3
  146. package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
  147. package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
  148. package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
  149. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
  150. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
  151. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
  152. package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
  153. package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
  154. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
  155. package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
  156. package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
  157. package/src/duckdb/src/function/aggregate/distributive/count.cpp +2 -2
  158. package/src/duckdb/src/function/aggregate/distributive/first.cpp +5 -5
  159. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +8 -8
  160. package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
  161. package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
  162. package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
  163. package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
  164. package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
  165. package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
  166. package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
  167. package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
  168. package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -3
  169. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
  170. package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
  171. package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
  172. package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
  173. package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
  174. package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
  175. package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
  176. package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
  177. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +25 -23
  178. package/src/duckdb/src/function/scalar_function.cpp +3 -3
  179. package/src/duckdb/src/function/table/arrow.cpp +4 -4
  180. package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
  181. package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
  182. package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
  183. package/src/duckdb/src/function/table/glob.cpp +1 -1
  184. package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
  185. package/src/duckdb/src/function/table/range.cpp +4 -4
  186. package/src/duckdb/src/function/table/read_csv.cpp +4 -4
  187. package/src/duckdb/src/function/table/repeat.cpp +2 -2
  188. package/src/duckdb/src/function/table/repeat_row.cpp +2 -2
  189. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
  190. package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
  191. package/src/duckdb/src/function/table/table_scan.cpp +2 -2
  192. package/src/duckdb/src/function/table/unnest.cpp +1 -1
  193. package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
  194. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -2
  195. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
  196. package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
  197. package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
  198. package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
  199. package/src/duckdb/src/include/duckdb/common/exception.hpp +2 -2
  200. package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
  201. package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
  202. package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
  203. package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
  204. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
  205. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
  206. package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
  207. package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
  208. package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
  209. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
  210. package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
  211. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
  212. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
  213. package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
  214. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
  215. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
  216. package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +20 -19
  217. package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
  218. package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
  219. package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
  220. package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
  221. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +1 -1
  222. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +1 -1
  223. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +1 -1
  224. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +1 -1
  225. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +1 -1
  226. package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +2 -2
  227. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
  228. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -3
  229. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
  230. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
  231. package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
  232. package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
  233. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
  234. package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
  235. package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
  236. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
  237. package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
  238. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
  239. package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
  240. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
  241. package/src/duckdb/src/include/duckdb/function/table_function.hpp +6 -6
  242. package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
  243. package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
  244. package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
  245. package/src/duckdb/src/include/duckdb/main/query_result.hpp +17 -0
  246. package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
  247. package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
  248. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
  249. package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
  250. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
  251. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
  252. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
  253. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
  254. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
  255. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
  256. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
  257. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
  258. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
  259. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
  260. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
  261. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
  262. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
  263. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
  264. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
  265. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
  266. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
  267. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
  268. package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
  269. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
  270. package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
  271. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
  272. package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
  273. package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
  274. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
  275. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
  276. package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +1 -1
  277. package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
  278. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
  279. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +1 -1
  280. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
  281. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
  282. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
  283. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +107 -91
  284. package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +1 -1
  285. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
  286. package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
  287. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +34 -1
  288. package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
  289. package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
  290. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
  291. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
  292. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
  293. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
  294. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
  295. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
  296. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
  297. package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
  298. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
  299. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
  300. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
  301. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
  302. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
  303. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
  304. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
  305. package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
  306. package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
  307. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
  308. package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
  309. package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
  310. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -2
  311. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
  312. package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
  313. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
  314. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
  315. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
  316. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
  317. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
  318. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
  319. package/src/duckdb/src/include/duckdb/storage/index.hpp +2 -2
  320. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
  321. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
  322. package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
  323. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
  324. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
  325. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
  326. package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
  327. package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
  328. package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
  329. package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
  330. package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
  331. package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
  332. package/src/duckdb/src/main/capi/config-c.cpp +1 -1
  333. package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
  334. package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
  335. package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
  336. package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
  337. package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
  338. package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
  339. package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
  340. package/src/duckdb/src/main/capi/result-c.cpp +23 -23
  341. package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
  342. package/src/duckdb/src/main/client_context.cpp +3 -3
  343. package/src/duckdb/src/main/database_manager.cpp +1 -1
  344. package/src/duckdb/src/main/error_manager.cpp +1 -1
  345. package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
  346. package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
  347. package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
  348. package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
  349. package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
  350. package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
  351. package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
  352. package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
  353. package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
  354. package/src/duckdb/src/main/relation.cpp +1 -1
  355. package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
  356. package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
  357. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
  358. package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
  359. package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
  360. package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
  361. package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
  362. package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
  363. package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
  364. package/src/duckdb/src/parallel/executor.cpp +1 -1
  365. package/src/duckdb/src/parser/base_expression.cpp +2 -5
  366. package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
  367. package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
  368. package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
  369. package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
  370. package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
  371. package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
  372. package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
  373. package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
  374. package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
  375. package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
  376. package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
  377. package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
  378. package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
  379. package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
  380. package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
  381. package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
  382. package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
  383. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
  384. package/src/duckdb/src/parser/parser.cpp +3 -3
  385. package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
  386. package/src/duckdb/src/parser/query_node.cpp +7 -6
  387. package/src/duckdb/src/parser/result_modifier.cpp +25 -18
  388. package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
  389. package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
  390. package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
  391. package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
  392. package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
  393. package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
  394. package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
  395. package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
  396. package/src/duckdb/src/parser/tableref.cpp +12 -3
  397. package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
  398. package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
  399. package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
  400. package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
  401. package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
  402. package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
  403. package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
  404. package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
  405. package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
  406. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +69 -75
  407. package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
  408. package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
  409. package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
  410. package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
  411. package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
  412. package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
  413. package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
  414. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
  415. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
  416. package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
  417. package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
  418. package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
  419. package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
  420. package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
  421. package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
  422. package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
  423. package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
  424. package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
  425. package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +3 -4
  426. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
  427. package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
  428. package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
  429. package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
  430. package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
  431. package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
  432. package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
  433. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
  434. package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
  435. package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
  436. package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -22
  437. package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
  438. package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
  439. package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
  440. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
  441. package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
  442. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
  443. package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
  444. package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
  445. package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
  446. package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
  447. package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
  448. package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
  449. package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
  450. package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
  451. package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
  452. package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
  453. package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
  454. package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
  455. package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
  456. package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
  457. package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
  458. package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
  459. package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +27 -27
  460. package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
  461. package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
  462. package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
  463. package/src/duckdb/src/parser/transformer.cpp +46 -46
  464. package/src/duckdb/src/planner/bind_context.cpp +6 -6
  465. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
  466. package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
  467. package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
  468. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
  469. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +8 -8
  470. package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
  471. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +1 -1
  472. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
  473. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
  474. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +1 -1
  475. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +2 -2
  476. package/src/duckdb/src/planner/binder.cpp +1 -1
  477. package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
  478. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
  479. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
  480. package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
  481. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
  482. package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
  483. package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
  484. package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
  485. package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
  486. package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
  487. package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
  488. package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
  489. package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
  490. package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
  491. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
  492. package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
  493. package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
  494. package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
  495. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
  496. package/src/duckdb/src/planner/expression.cpp +15 -0
  497. package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
  498. package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
  499. package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
  500. package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
  501. package/src/duckdb/src/planner/logical_operator.cpp +3 -4
  502. package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
  503. package/src/duckdb/src/planner/table_filter.cpp +1 -1
  504. package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
  505. package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
  506. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
  507. package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
  508. package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
  509. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
  510. package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
  511. package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
  512. package/src/duckdb/src/storage/compression/rle.cpp +8 -8
  513. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
  514. package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
  515. package/src/duckdb/src/storage/data_table.cpp +2 -2
  516. package/src/duckdb/src/storage/local_storage.cpp +2 -1
  517. package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
  518. package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
  519. package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
  520. package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
  521. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
  522. package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
  523. package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
  524. package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
  525. package/src/duckdb/src/storage/table/list_column_data.cpp +3 -3
  526. package/src/duckdb/src/storage/table/row_group.cpp +4 -4
  527. package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
  528. package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
  529. package/src/duckdb/src/storage/wal_replay.cpp +1 -1
  530. package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
  531. package/src/duckdb/src/transaction/commit_state.cpp +8 -8
  532. package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
  533. package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
  534. package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
  535. package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
  536. package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
  537. package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
  538. package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
@@ -72,12 +72,12 @@ public:
72
72
  template <class TARGET>
73
73
  TARGET &Cast() {
74
74
  D_ASSERT(dynamic_cast<TARGET *>(this));
75
- return (TARGET &)*this;
75
+ return reinterpret_cast<TARGET &>(*this);
76
76
  }
77
77
  template <class TARGET>
78
78
  const TARGET &Cast() const {
79
79
  D_ASSERT(dynamic_cast<const TARGET *>(this));
80
- return (const TARGET &)*this;
80
+ return reinterpret_cast<const TARGET &>(*this);
81
81
  }
82
82
  };
83
83
 
@@ -26,6 +26,17 @@ struct PrivateAllocatorData {
26
26
  virtual ~PrivateAllocatorData();
27
27
 
28
28
  unique_ptr<AllocatorDebugInfo> debug_info;
29
+
30
+ template <class TARGET>
31
+ TARGET &Cast() {
32
+ D_ASSERT(dynamic_cast<TARGET *>(this));
33
+ return reinterpret_cast<TARGET &>(*this);
34
+ }
35
+ template <class TARGET>
36
+ const TARGET &Cast() const {
37
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
38
+ return reinterpret_cast<const TARGET &>(*this);
39
+ }
29
40
  };
30
41
 
31
42
  typedef data_ptr_t (*allocate_function_ptr_t)(PrivateAllocatorData *private_data, idx_t size);
@@ -85,14 +96,14 @@ public:
85
96
  return AllocatedData(*this, AllocateData(size), size);
86
97
  }
87
98
  static data_ptr_t DefaultAllocate(PrivateAllocatorData *private_data, idx_t size) {
88
- return (data_ptr_t)malloc(size);
99
+ return data_ptr_cast(malloc(size));
89
100
  }
90
101
  static void DefaultFree(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t size) {
91
102
  free(pointer);
92
103
  }
93
104
  static data_ptr_t DefaultReallocate(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t old_size,
94
105
  idx_t size) {
95
- return (data_ptr_t)realloc(pointer, size);
106
+ return data_ptr_cast(realloc(pointer, size));
96
107
  }
97
108
  static Allocator &Get(ClientContext &context);
98
109
  static Allocator &Get(DatabaseInstance &db);
@@ -120,7 +131,7 @@ T *AllocateArray(idx_t size) {
120
131
 
121
132
  template <class T>
122
133
  void DeleteArray(T *ptr, idx_t size) {
123
- Allocator::DefaultAllocator().FreeData((data_ptr_t)ptr, size * sizeof(T));
134
+ Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), size * sizeof(T));
124
135
  }
125
136
 
126
137
  template <typename T, typename... ARGS>
@@ -132,7 +143,7 @@ T *AllocateObject(ARGS &&... args) {
132
143
  template <typename T>
133
144
  void DestroyObject(T *ptr) {
134
145
  ptr->~T();
135
- Allocator::DefaultAllocator().FreeData((data_ptr_t)ptr, sizeof(T));
146
+ Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), sizeof(T));
136
147
  }
137
148
 
138
149
  //! The BufferAllocator is a wrapper around the global allocator class that sends any allocations made through the
@@ -73,12 +73,17 @@ struct ArrowBuffer {
73
73
  return dataptr;
74
74
  }
75
75
 
76
+ template <class T>
77
+ T *GetData() {
78
+ return reinterpret_cast<T *>(data());
79
+ }
80
+
76
81
  private:
77
82
  void ReserveInternal(idx_t bytes) {
78
83
  if (dataptr) {
79
- dataptr = (data_ptr_t)realloc(dataptr, bytes);
84
+ dataptr = data_ptr_cast(realloc(dataptr, bytes));
80
85
  } else {
81
- dataptr = (data_ptr_t)malloc(bytes);
86
+ dataptr = data_ptr_cast(malloc(bytes));
82
87
  }
83
88
  capacity = bytes;
84
89
  }
@@ -26,10 +26,10 @@ public:
26
26
  }
27
27
  void Add(const char *data);
28
28
  void Add(string_t string) {
29
- MD5Update((const_data_ptr_t)string.GetData(), string.GetSize());
29
+ MD5Update(const_data_ptr_cast(string.GetData()), string.GetSize());
30
30
  }
31
31
  void Add(const string &data) {
32
- MD5Update((const_data_ptr_t)data.c_str(), data.size());
32
+ MD5Update(const_data_ptr_cast(data.c_str()), data.size());
33
33
  }
34
34
 
35
35
  //! Write the 16-byte (binary) digest to the specified location
@@ -22,8 +22,8 @@ enum class PhysicalType : uint8_t;
22
22
  struct LogicalType;
23
23
  struct hugeint_t;
24
24
 
25
- inline void assert_restrict_function(void *left_start, void *left_end, void *right_start, void *right_end,
26
- const char *fname, int linenr) {
25
+ inline void assert_restrict_function(const void *left_start, const void *left_end, const void *right_start,
26
+ const void *right_end, const char *fname, int linenr) {
27
27
  // assert that the two pointers do not overlap
28
28
  #ifdef DEBUG
29
29
  if (!(left_end <= right_start || right_end <= left_start)) {
@@ -34,12 +34,12 @@ public:
34
34
  static_assert(std::is_trivially_destructible<T>(), "WriteField object must be trivially destructible");
35
35
 
36
36
  AddField();
37
- WriteData((const_data_ptr_t)&element, sizeof(T));
37
+ WriteData(const_data_ptr_cast(&element), sizeof(T));
38
38
  }
39
39
 
40
40
  //! Write a string with a length prefix
41
41
  void WriteString(const string &val) {
42
- WriteStringLen((const_data_ptr_t)val.c_str(), val.size());
42
+ WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
43
43
  }
44
44
  void WriteStringLen(const_data_ptr_t val, idx_t len) {
45
45
  AddField();
@@ -135,7 +135,7 @@ public:
135
135
  private:
136
136
  template <class T>
137
137
  void Write(const T &element) {
138
- WriteData((const_data_ptr_t)&element, sizeof(T));
138
+ WriteData(const_data_ptr_cast(&element), sizeof(T));
139
139
  }
140
140
 
141
141
  DUCKDB_API void WriteData(const_data_ptr_t buffer, idx_t write_size);
@@ -77,6 +77,17 @@ public:
77
77
  return path;
78
78
  }
79
79
 
80
+ template <class TARGET>
81
+ TARGET &Cast() {
82
+ D_ASSERT(dynamic_cast<TARGET *>(this));
83
+ return reinterpret_cast<TARGET &>(*this);
84
+ }
85
+ template <class TARGET>
86
+ const TARGET &Cast() const {
87
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
88
+ return reinterpret_cast<const TARGET &>(*this);
89
+ }
90
+
80
91
  public:
81
92
  FileSystem &file_system;
82
93
  string path;
@@ -12,9 +12,8 @@ namespace duckdb {
12
12
 
13
13
  class FSSTPrimitives {
14
14
  public:
15
- static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result, unsigned char *compressed_string,
15
+ static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result, const char *compressed_string,
16
16
  idx_t compressed_string_len);
17
- static Value DecompressValue(void *duckdb_fsst_decoder, unsigned char *compressed_string,
18
- idx_t compressed_string_len);
17
+ static Value DecompressValue(void *duckdb_fsst_decoder, const char *compressed_string, idx_t compressed_string_len);
19
18
  };
20
19
  } // namespace duckdb
@@ -36,7 +36,7 @@ struct Radix {
36
36
  public:
37
37
  static inline bool IsLittleEndian() {
38
38
  int n = 1;
39
- if (*(char *)&n == 1) {
39
+ if (*char_ptr_cast(&n) == 1) {
40
40
  return true;
41
41
  } else {
42
42
  return false;
@@ -81,7 +81,7 @@ public:
81
81
  if (x < -FLT_MAX) {
82
82
  return 0;
83
83
  }
84
- buff = Load<uint32_t>((const_data_ptr_t)&x);
84
+ buff = Load<uint32_t>(const_data_ptr_cast(&x));
85
85
  if ((buff & (1u << 31)) == 0) { //! +0 and positive numbers
86
86
  buff |= (1u << 31);
87
87
  } else { //! negative numbers
@@ -111,7 +111,7 @@ public:
111
111
  if (x < -DBL_MAX) {
112
112
  return 0;
113
113
  }
114
- buff = Load<uint64_t>((const_data_ptr_t)&x);
114
+ buff = Load<uint64_t>(const_data_ptr_cast(&x));
115
115
  if (buff < (1ull << 63)) { //! +0 and positive numbers
116
116
  buff += (1ull << 63);
117
117
  } else { //! negative numbers
@@ -35,7 +35,7 @@ private:
35
35
  template <class T>
36
36
  T ReadPrimitive() {
37
37
  T value;
38
- ReadData((data_ptr_t)&value, sizeof(T));
38
+ ReadData(data_ptr_cast(&value), sizeof(T));
39
39
  return value;
40
40
  }
41
41
 
@@ -24,12 +24,15 @@ private:
24
24
  template <class T>
25
25
  void Write(T element) {
26
26
  static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
27
- WriteData((const_data_ptr_t)&element, sizeof(T));
27
+ WriteData(const_data_ptr_cast(&element), sizeof(T));
28
28
  }
29
29
  void WriteData(const_data_ptr_t buffer, idx_t write_size) {
30
30
  data.insert(data.end(), buffer, buffer + write_size);
31
31
  stack.back().size += write_size;
32
32
  }
33
+ void WriteData(const char *ptr, idx_t write_size) {
34
+ WriteData(const_data_ptr_cast(ptr), write_size);
35
+ }
33
36
 
34
37
  explicit BinarySerializer() {
35
38
  serialize_enum_as_string = false;
@@ -46,16 +46,16 @@ public:
46
46
  void Write(T element) {
47
47
  static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
48
48
 
49
- WriteData((const_data_ptr_t)&element, sizeof(T));
49
+ WriteData(const_data_ptr_cast(&element), sizeof(T));
50
50
  }
51
51
 
52
52
  //! Write data from a string buffer directly (without length prefix)
53
53
  void WriteBufferData(const string &str) {
54
- WriteData((const_data_ptr_t)str.c_str(), str.size());
54
+ WriteData(const_data_ptr_cast(str.c_str()), str.size());
55
55
  }
56
56
  //! Write a string with a length prefix
57
57
  void WriteString(const string &val) {
58
- WriteStringLen((const_data_ptr_t)val.c_str(), val.size());
58
+ WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
59
59
  }
60
60
  void WriteStringLen(const_data_ptr_t val, idx_t len) {
61
61
  Write<uint32_t>((uint32_t)len);
@@ -127,7 +127,7 @@ public:
127
127
  template <class T>
128
128
  T Read() {
129
129
  T value;
130
- ReadData((data_ptr_t)&value, sizeof(T));
130
+ ReadData(data_ptr_cast(&value), sizeof(T));
131
131
  return value;
132
132
  }
133
133
 
@@ -28,4 +28,34 @@ typedef idx_t column_t;
28
28
  //! Type used for storage (column) identifiers
29
29
  typedef idx_t storage_t;
30
30
 
31
+ template <class SRC>
32
+ data_ptr_t data_ptr_cast(SRC *src) {
33
+ return reinterpret_cast<data_ptr_t>(src);
34
+ }
35
+
36
+ template <class SRC>
37
+ const_data_ptr_t const_data_ptr_cast(const SRC *src) {
38
+ return reinterpret_cast<const_data_ptr_t>(src);
39
+ }
40
+
41
+ template <class SRC>
42
+ char *char_ptr_cast(SRC *src) {
43
+ return reinterpret_cast<char *>(src);
44
+ }
45
+
46
+ template <class SRC>
47
+ const char *const_char_ptr_cast(const SRC *src) {
48
+ return reinterpret_cast<const char *>(src);
49
+ }
50
+
51
+ template <class SRC>
52
+ const unsigned char *const_uchar_ptr_cast(const SRC *src) {
53
+ return reinterpret_cast<const unsigned char *>(src);
54
+ }
55
+
56
+ template <class SRC>
57
+ uintptr_t CastPointerToValue(SRC *src) {
58
+ return uintptr_t(src);
59
+ }
60
+
31
61
  } // namespace duckdb
@@ -108,6 +108,18 @@ protected:
108
108
  mutex lock;
109
109
  shared_ptr<PartitionColumnDataAllocators> allocators;
110
110
  vector<unique_ptr<ColumnDataCollection>> partitions;
111
+
112
+ public:
113
+ template <class TARGET>
114
+ TARGET &Cast() {
115
+ D_ASSERT(dynamic_cast<TARGET *>(this));
116
+ return reinterpret_cast<TARGET &>(*this);
117
+ }
118
+ template <class TARGET>
119
+ const TARGET &Cast() const {
120
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
121
+ return reinterpret_cast<const TARGET &>(*this);
122
+ }
111
123
  };
112
124
 
113
125
  } // namespace duckdb
@@ -12,6 +12,10 @@
12
12
  #include "duckdb/common/types/vector.hpp"
13
13
  #include "hyperloglog.hpp"
14
14
 
15
+ namespace duckdb_hll {
16
+ struct robj;
17
+ }
18
+
15
19
  namespace duckdb {
16
20
 
17
21
  enum class HLLStorageType { UNCOMPRESSED = 1 };
@@ -58,9 +62,9 @@ public:
58
62
  void AddToLog(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[]);
59
63
 
60
64
  private:
61
- explicit HyperLogLog(void *hll);
65
+ explicit HyperLogLog(duckdb_hll::robj *hll);
62
66
 
63
- void *hll;
67
+ duckdb_hll::robj *hll;
64
68
  mutex lock;
65
69
  };
66
70
  } // namespace duckdb
@@ -42,7 +42,7 @@ inline string_t NullValue() {
42
42
 
43
43
  template <>
44
44
  inline char *NullValue() {
45
- return (char *)NullValue<const char *>();
45
+ return (char *)NullValue<const char *>(); // NOLINT
46
46
  }
47
47
 
48
48
  template <>
@@ -135,6 +135,18 @@ protected:
135
135
  mutex lock;
136
136
  shared_ptr<PartitionTupleDataAllocators> allocators;
137
137
  vector<unique_ptr<TupleDataCollection>> partitions;
138
+
139
+ public:
140
+ template <class TARGET>
141
+ TARGET &Cast() {
142
+ D_ASSERT(dynamic_cast<TARGET *>(this));
143
+ return reinterpret_cast<TARGET &>(*this);
144
+ }
145
+ template <class TARGET>
146
+ const TARGET &Cast() const {
147
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
148
+ return reinterpret_cast<const TARGET &>(*this);
149
+ }
138
150
  };
139
151
 
140
152
  } // namespace duckdb
@@ -55,7 +55,7 @@ public:
55
55
  #else
56
56
  memset(value.pointer.prefix, 0, PREFIX_BYTES);
57
57
  #endif
58
- value.pointer.ptr = (char *)data;
58
+ value.pointer.ptr = (char *)data; // NOLINT
59
59
  }
60
60
  }
61
61
  string_t(const char *data) : string_t(data, strlen(data)) { // NOLINT: Allow implicit conversion from `const char*`
@@ -69,14 +69,14 @@ public:
69
69
  }
70
70
 
71
71
  const char *GetData() const {
72
- return IsInlined() ? (const char *)value.inlined.inlined : value.pointer.ptr;
72
+ return IsInlined() ? const_char_ptr_cast(value.inlined.inlined) : value.pointer.ptr;
73
73
  }
74
74
  const char *GetDataUnsafe() const {
75
75
  return GetData();
76
76
  }
77
77
 
78
78
  char *GetDataWriteable() const {
79
- return IsInlined() ? (char *)value.inlined.inlined : value.pointer.ptr;
79
+ return IsInlined() ? (char *)value.inlined.inlined : value.pointer.ptr; // NOLINT
80
80
  }
81
81
 
82
82
  const char *GetPrefix() const {
@@ -110,7 +110,7 @@ public:
110
110
  } else {
111
111
  // copy the data into the prefix
112
112
  #ifndef DUCKDB_DEBUG_NO_INLINE
113
- auto dataptr = (char *)GetData();
113
+ auto dataptr = GetData();
114
114
  memcpy(value.pointer.prefix, dataptr, PREFIX_LENGTH);
115
115
  #else
116
116
  memset(value.pointer.prefix, 0, PREFIX_BYTES);
@@ -128,15 +128,15 @@ public:
128
128
  return false;
129
129
  return (memcmp(a.GetData(), b.GetData(), a.GetSize()) == 0);
130
130
  #endif
131
- uint64_t A = Load<uint64_t>((const_data_ptr_t)&a);
132
- uint64_t B = Load<uint64_t>((const_data_ptr_t)&b);
131
+ uint64_t A = Load<uint64_t>(const_data_ptr_cast(&a));
132
+ uint64_t B = Load<uint64_t>(const_data_ptr_cast(&b));
133
133
  if (A != B) {
134
134
  // Either length or prefix are different -> not equal
135
135
  return false;
136
136
  }
137
137
  // they have the same length and same prefix!
138
- A = Load<uint64_t>((const_data_ptr_t)&a + 8u);
139
- B = Load<uint64_t>((const_data_ptr_t)&b + 8u);
138
+ A = Load<uint64_t>(const_data_ptr_cast(&a) + 8u);
139
+ B = Load<uint64_t>(const_data_ptr_cast(&b) + 8u);
140
140
  if (A == B) {
141
141
  // either they are both inlined (so compare equal) or point to the same string (so compare equal)
142
142
  return true;
@@ -159,8 +159,8 @@ public:
159
159
  const uint32_t min_length = std::min<uint32_t>(left_length, right_length);
160
160
 
161
161
  #ifndef DUCKDB_DEBUG_NO_INLINE
162
- uint32_t A = Load<uint32_t>((const_data_ptr_t)left.GetPrefix());
163
- uint32_t B = Load<uint32_t>((const_data_ptr_t)right.GetPrefix());
162
+ uint32_t A = Load<uint32_t>(const_data_ptr_cast(left.GetPrefix()));
163
+ uint32_t B = Load<uint32_t>(const_data_ptr_cast(right.GetPrefix()));
164
164
 
165
165
  // Utility to move 0xa1b2c3d4 into 0xd4c3b2a1, basically inverting the order byte-a-byte
166
166
  auto bswap = [](uint32_t v) -> uint32_t {
@@ -166,7 +166,7 @@ public:
166
166
  //! Create a blob Value from a data pointer and a length: no bytes are interpreted
167
167
  DUCKDB_API static Value BLOB(const_data_ptr_t data, idx_t len);
168
168
  static Value BLOB_RAW(const string &data) { // NOLINT
169
- return Value::BLOB((const_data_ptr_t)data.c_str(), data.size());
169
+ return Value::BLOB(const_data_ptr_cast(data.c_str()), data.size());
170
170
  }
171
171
  //! Creates a blob by casting a specified string to a blob (i.e. interpreting \x characters)
172
172
  DUCKDB_API static Value BLOB(const string &data);
@@ -24,6 +24,15 @@ struct UnifiedVectorFormat {
24
24
  data_ptr_t data;
25
25
  ValidityMask validity;
26
26
  SelectionVector owned_sel;
27
+
28
+ template <class T>
29
+ static inline const T *GetData(const UnifiedVectorFormat &format) {
30
+ return reinterpret_cast<const T *>(format.data);
31
+ }
32
+ template <class T>
33
+ static inline T *GetDataNoConst(UnifiedVectorFormat &format) {
34
+ return reinterpret_cast<T *>(format.data);
35
+ }
27
36
  };
28
37
 
29
38
  class VectorCache;
@@ -52,7 +52,7 @@ public:
52
52
  if (type != TARGET::TYPE) {
53
53
  throw InternalException("Failed to cast vector auxiliary data to type - type mismatch");
54
54
  }
55
- return (TARGET &)*this;
55
+ return reinterpret_cast<TARGET &>(*this);
56
56
  }
57
57
 
58
58
  template <class TARGET>
@@ -60,7 +60,7 @@ public:
60
60
  if (type != TARGET::TYPE) {
61
61
  throw InternalException("Failed to cast vector auxiliary data to type - type mismatch");
62
62
  }
63
- return (const TARGET &)*this;
63
+ return reinterpret_cast<const TARGET &>(*this);
64
64
  }
65
65
  };
66
66
 
@@ -121,6 +121,18 @@ protected:
121
121
  VectorBufferType buffer_type;
122
122
  unique_ptr<VectorAuxiliaryData> aux_data;
123
123
  unsafe_unique_array<data_t> data;
124
+
125
+ public:
126
+ template <class TARGET>
127
+ TARGET &Cast() {
128
+ D_ASSERT(dynamic_cast<TARGET *>(this));
129
+ return reinterpret_cast<TARGET &>(*this);
130
+ }
131
+ template <class TARGET>
132
+ const TARGET &Cast() const {
133
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
134
+ return reinterpret_cast<const TARGET &>(*this);
135
+ }
124
136
  };
125
137
 
126
138
  //! The DictionaryBuffer holds a selection vector
@@ -154,7 +166,7 @@ private:
154
166
  class VectorStringBuffer : public VectorBuffer {
155
167
  public:
156
168
  VectorStringBuffer();
157
- VectorStringBuffer(VectorBufferType type);
169
+ explicit VectorStringBuffer(VectorBufferType type);
158
170
 
159
171
  public:
160
172
  string_t AddString(const char *data, idx_t len) {
@@ -207,7 +219,7 @@ private:
207
219
  class VectorStructBuffer : public VectorBuffer {
208
220
  public:
209
221
  VectorStructBuffer();
210
- VectorStructBuffer(const LogicalType &struct_type, idx_t capacity = STANDARD_VECTOR_SIZE);
222
+ explicit VectorStructBuffer(const LogicalType &struct_type, idx_t capacity = STANDARD_VECTOR_SIZE);
211
223
  VectorStructBuffer(Vector &other, const SelectionVector &sel, idx_t count);
212
224
  ~VectorStructBuffer() override;
213
225
 
@@ -226,8 +238,8 @@ private:
226
238
 
227
239
  class VectorListBuffer : public VectorBuffer {
228
240
  public:
229
- VectorListBuffer(unique_ptr<Vector> vector, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
230
- VectorListBuffer(const LogicalType &list_type, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
241
+ explicit VectorListBuffer(unique_ptr<Vector> vector, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
242
+ explicit VectorListBuffer(const LogicalType &list_type, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
231
243
  ~VectorListBuffer() override;
232
244
 
233
245
  public:
@@ -39,7 +39,7 @@ private:
39
39
  }
40
40
 
41
41
  template <class STATE_TYPE, class INPUT_TYPE, class OP>
42
- static inline void UnaryFlatLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
42
+ static inline void UnaryFlatLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
43
43
  STATE_TYPE **__restrict states, ValidityMask &mask, idx_t count) {
44
44
  if (!mask.AllValid()) {
45
45
  idx_t base_idx = 0;
@@ -76,7 +76,7 @@ private:
76
76
  }
77
77
 
78
78
  template <class STATE_TYPE, class INPUT_TYPE, class OP>
79
- static inline void UnaryScatterLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
79
+ static inline void UnaryScatterLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
80
80
  STATE_TYPE **__restrict states, const SelectionVector &isel,
81
81
  const SelectionVector &ssel, ValidityMask &mask, idx_t count) {
82
82
  if (OP::IgnoreNull() && !mask.AllValid()) {
@@ -99,7 +99,7 @@ private:
99
99
  }
100
100
 
101
101
  template <class STATE_TYPE, class INPUT_TYPE, class OP>
102
- static inline void UnaryFlatUpdateLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
102
+ static inline void UnaryFlatUpdateLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
103
103
  STATE_TYPE *__restrict state, idx_t count, ValidityMask &mask) {
104
104
  idx_t base_idx = 0;
105
105
  auto entry_count = ValidityMask::EntryCount(count);
@@ -129,7 +129,7 @@ private:
129
129
  }
130
130
 
131
131
  template <class STATE_TYPE, class INPUT_TYPE, class OP>
132
- static inline void UnaryUpdateLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
132
+ static inline void UnaryUpdateLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
133
133
  STATE_TYPE *__restrict state, idx_t count, ValidityMask &mask,
134
134
  const SelectionVector &__restrict sel_vector) {
135
135
  if (OP::IgnoreNull() && !mask.AllValid()) {
@@ -150,8 +150,8 @@ private:
150
150
  }
151
151
 
152
152
  template <class STATE_TYPE, class A_TYPE, class B_TYPE, class OP>
153
- static inline void BinaryScatterLoop(A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
154
- B_TYPE *__restrict bdata, STATE_TYPE **__restrict states, idx_t count,
153
+ static inline void BinaryScatterLoop(const A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
154
+ const B_TYPE *__restrict bdata, STATE_TYPE **__restrict states, idx_t count,
155
155
  const SelectionVector &asel, const SelectionVector &bsel,
156
156
  const SelectionVector &ssel, ValidityMask &avalidity,
157
157
  ValidityMask &bvalidity) {
@@ -179,8 +179,8 @@ private:
179
179
  }
180
180
 
181
181
  template <class STATE_TYPE, class A_TYPE, class B_TYPE, class OP>
182
- static inline void BinaryUpdateLoop(A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
183
- B_TYPE *__restrict bdata, STATE_TYPE *__restrict state, idx_t count,
182
+ static inline void BinaryUpdateLoop(const A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
183
+ const B_TYPE *__restrict bdata, STATE_TYPE *__restrict state, idx_t count,
184
184
  const SelectionVector &asel, const SelectionVector &bsel,
185
185
  ValidityMask &avalidity, ValidityMask &bvalidity) {
186
186
  if (OP::IgnoreNull() && (!avalidity.AllValid() || !bvalidity.AllValid())) {
@@ -248,9 +248,9 @@ public:
248
248
  UnifiedVectorFormat idata, sdata;
249
249
  input.ToUnifiedFormat(count, idata);
250
250
  states.ToUnifiedFormat(count, sdata);
251
- UnaryScatterLoop<STATE_TYPE, INPUT_TYPE, OP>((INPUT_TYPE *)idata.data, aggr_input_data,
252
- (STATE_TYPE **)sdata.data, *idata.sel, *sdata.sel,
253
- idata.validity, count);
251
+ UnaryScatterLoop<STATE_TYPE, INPUT_TYPE, OP>(UnifiedVectorFormat::GetData<INPUT_TYPE>(idata),
252
+ aggr_input_data, (STATE_TYPE **)sdata.data, *idata.sel,
253
+ *sdata.sel, idata.validity, count);
254
254
  }
255
255
  }
256
256
 
@@ -275,8 +275,9 @@ public:
275
275
  default: {
276
276
  UnifiedVectorFormat idata;
277
277
  input.ToUnifiedFormat(count, idata);
278
- UnaryUpdateLoop<STATE_TYPE, INPUT_TYPE, OP>((INPUT_TYPE *)idata.data, aggr_input_data, (STATE_TYPE *)state,
279
- count, idata.validity, *idata.sel);
278
+ UnaryUpdateLoop<STATE_TYPE, INPUT_TYPE, OP>(UnifiedVectorFormat::GetData<INPUT_TYPE>(idata),
279
+ aggr_input_data, (STATE_TYPE *)state, count, idata.validity,
280
+ *idata.sel);
280
281
  break;
281
282
  }
282
283
  }
@@ -290,9 +291,9 @@ public:
290
291
  b.ToUnifiedFormat(count, bdata);
291
292
  states.ToUnifiedFormat(count, sdata);
292
293
 
293
- BinaryScatterLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>((A_TYPE *)adata.data, aggr_input_data, (B_TYPE *)bdata.data,
294
- (STATE_TYPE **)sdata.data, count, *adata.sel, *bdata.sel,
295
- *sdata.sel, adata.validity, bdata.validity);
294
+ BinaryScatterLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>(
295
+ UnifiedVectorFormat::GetData<A_TYPE>(adata), aggr_input_data, UnifiedVectorFormat::GetData<B_TYPE>(bdata),
296
+ (STATE_TYPE **)sdata.data, count, *adata.sel, *bdata.sel, *sdata.sel, adata.validity, bdata.validity);
296
297
  }
297
298
 
298
299
  template <class STATE_TYPE, class A_TYPE, class B_TYPE, class OP>
@@ -302,9 +303,9 @@ public:
302
303
  a.ToUnifiedFormat(count, adata);
303
304
  b.ToUnifiedFormat(count, bdata);
304
305
 
305
- BinaryUpdateLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>((A_TYPE *)adata.data, aggr_input_data, (B_TYPE *)bdata.data,
306
- (STATE_TYPE *)state, count, *adata.sel, *bdata.sel,
307
- adata.validity, bdata.validity);
306
+ BinaryUpdateLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>(
307
+ UnifiedVectorFormat::GetData<A_TYPE>(adata), aggr_input_data, UnifiedVectorFormat::GetData<B_TYPE>(bdata),
308
+ (STATE_TYPE *)state, count, *adata.sel, *bdata.sel, adata.validity, bdata.validity);
308
309
  }
309
310
 
310
311
  template <class STATE_TYPE, class OP>