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
@@ -19,9 +19,9 @@ PartitionedColumnData::PartitionedColumnData(const PartitionedColumnData &other)
19
19
  unique_ptr<PartitionedColumnData> PartitionedColumnData::CreateShared() {
20
20
  switch (type) {
21
21
  case PartitionedColumnDataType::RADIX:
22
- return make_uniq<RadixPartitionedColumnData>((RadixPartitionedColumnData &)*this);
22
+ return make_uniq<RadixPartitionedColumnData>(Cast<RadixPartitionedColumnData>());
23
23
  case PartitionedColumnDataType::HIVE:
24
- return make_uniq<HivePartitionedColumnData>((HivePartitionedColumnData &)*this);
24
+ return make_uniq<HivePartitionedColumnData>(Cast<HivePartitionedColumnData>());
25
25
  default:
26
26
  throw NotImplementedException("CreateShared for this type of PartitionedColumnData");
27
27
  }
@@ -40,7 +40,7 @@ template <>
40
40
  hash_t Hash(float val) {
41
41
  static_assert(sizeof(float) == sizeof(uint32_t), "");
42
42
  FloatingPointEqualityTransform<float>::OP(val);
43
- uint32_t uval = Load<uint32_t>((const_data_ptr_t)&val);
43
+ uint32_t uval = Load<uint32_t>(const_data_ptr_cast(&val));
44
44
  return murmurhash64(uval);
45
45
  }
46
46
 
@@ -48,7 +48,7 @@ template <>
48
48
  hash_t Hash(double val) {
49
49
  static_assert(sizeof(double) == sizeof(uint64_t), "");
50
50
  FloatingPointEqualityTransform<double>::OP(val);
51
- uint64_t uval = Load<uint64_t>((const_data_ptr_t)&val);
51
+ uint64_t uval = Load<uint64_t>(const_data_ptr_cast(&val));
52
52
  return murmurhash64(uval);
53
53
  }
54
54
 
@@ -9,18 +9,18 @@ namespace duckdb {
9
9
  HyperLogLog::HyperLogLog() : hll(nullptr) {
10
10
  hll = duckdb_hll::hll_create();
11
11
  // Insert into a dense hll can be vectorized, sparse cannot, so we immediately convert
12
- duckdb_hll::hllSparseToDense((duckdb_hll::robj *)hll);
12
+ duckdb_hll::hllSparseToDense(hll);
13
13
  }
14
14
 
15
- HyperLogLog::HyperLogLog(void *hll) : hll(hll) {
15
+ HyperLogLog::HyperLogLog(duckdb_hll::robj *hll) : hll(hll) {
16
16
  }
17
17
 
18
18
  HyperLogLog::~HyperLogLog() {
19
- duckdb_hll::hll_destroy((duckdb_hll::robj *)hll);
19
+ duckdb_hll::hll_destroy(hll);
20
20
  }
21
21
 
22
22
  void HyperLogLog::Add(data_ptr_t element, idx_t size) {
23
- if (duckdb_hll::hll_add((duckdb_hll::robj *)hll, element, size) == HLL_C_ERR) {
23
+ if (duckdb_hll::hll_add(hll, element, size) == HLL_C_ERR) {
24
24
  throw InternalException("Could not add to HLL?");
25
25
  }
26
26
  }
@@ -29,7 +29,7 @@ idx_t HyperLogLog::Count() const {
29
29
  // exception from size_t ban
30
30
  size_t result;
31
31
 
32
- if (duckdb_hll::hll_count((duckdb_hll::robj *)hll, &result) != HLL_C_OK) {
32
+ if (duckdb_hll::hll_count(hll, &result) != HLL_C_OK) {
33
33
  throw InternalException("Could not count HLL?");
34
34
  }
35
35
  return result;
@@ -37,24 +37,24 @@ idx_t HyperLogLog::Count() const {
37
37
 
38
38
  unique_ptr<HyperLogLog> HyperLogLog::Merge(HyperLogLog &other) {
39
39
  duckdb_hll::robj *hlls[2];
40
- hlls[0] = (duckdb_hll::robj *)hll;
41
- hlls[1] = (duckdb_hll::robj *)other.hll;
40
+ hlls[0] = hll;
41
+ hlls[1] = other.hll;
42
42
  auto new_hll = duckdb_hll::hll_merge(hlls, 2);
43
43
  if (!new_hll) {
44
44
  throw InternalException("Could not merge HLLs");
45
45
  }
46
- return unique_ptr<HyperLogLog>(new HyperLogLog((void *)new_hll));
46
+ return unique_ptr<HyperLogLog>(new HyperLogLog(new_hll));
47
47
  }
48
48
 
49
49
  HyperLogLog *HyperLogLog::MergePointer(HyperLogLog &other) {
50
50
  duckdb_hll::robj *hlls[2];
51
- hlls[0] = (duckdb_hll::robj *)hll;
52
- hlls[1] = (duckdb_hll::robj *)other.hll;
51
+ hlls[0] = hll;
52
+ hlls[1] = other.hll;
53
53
  auto new_hll = duckdb_hll::hll_merge(hlls, 2);
54
54
  if (!new_hll) {
55
55
  throw Exception("Could not merge HLLs");
56
56
  }
57
- return new HyperLogLog((void *)new_hll);
57
+ return new HyperLogLog(new_hll);
58
58
  }
59
59
 
60
60
  unique_ptr<HyperLogLog> HyperLogLog::Merge(HyperLogLog logs[], idx_t count) {
@@ -63,13 +63,13 @@ unique_ptr<HyperLogLog> HyperLogLog::Merge(HyperLogLog logs[], idx_t count) {
63
63
  };
64
64
  auto hlls = hlls_uptr.get();
65
65
  for (idx_t i = 0; i < count; i++) {
66
- hlls[i] = (duckdb_hll::robj *)logs[i].hll;
66
+ hlls[i] = logs[i].hll;
67
67
  }
68
68
  auto new_hll = duckdb_hll::hll_merge(hlls, count);
69
69
  if (!new_hll) {
70
70
  throw InternalException("Could not merge HLLs");
71
71
  }
72
- return unique_ptr<HyperLogLog>(new HyperLogLog((void *)new_hll));
72
+ return unique_ptr<HyperLogLog>(new HyperLogLog(new_hll));
73
73
  }
74
74
 
75
75
  idx_t HyperLogLog::GetSize() {
@@ -77,7 +77,7 @@ idx_t HyperLogLog::GetSize() {
77
77
  }
78
78
 
79
79
  data_ptr_t HyperLogLog::GetPtr() const {
80
- return (data_ptr_t)((duckdb_hll::robj *)hll)->ptr;
80
+ return data_ptr_cast((hll)->ptr);
81
81
  }
82
82
 
83
83
  unique_ptr<HyperLogLog> HyperLogLog::Copy() {
@@ -123,21 +123,22 @@ inline uint64_t TemplatedHash(const T &elem) {
123
123
 
124
124
  template <>
125
125
  inline uint64_t TemplatedHash(const hugeint_t &elem) {
126
- return TemplatedHash<uint64_t>(Load<uint64_t>((data_ptr_t)&elem.upper)) ^ TemplatedHash<uint64_t>(elem.lower);
126
+ return TemplatedHash<uint64_t>(Load<uint64_t>(const_data_ptr_cast(&elem.upper))) ^
127
+ TemplatedHash<uint64_t>(elem.lower);
127
128
  }
128
129
 
129
130
  template <idx_t rest>
130
- inline void CreateIntegerRecursive(const data_ptr_t &data, uint64_t &x) {
131
+ inline void CreateIntegerRecursive(const_data_ptr_t &data, uint64_t &x) {
131
132
  x ^= (uint64_t)data[rest - 1] << ((rest - 1) * 8);
132
133
  return CreateIntegerRecursive<rest - 1>(data, x);
133
134
  }
134
135
 
135
136
  template <>
136
- inline void CreateIntegerRecursive<1>(const data_ptr_t &data, uint64_t &x) {
137
+ inline void CreateIntegerRecursive<1>(const_data_ptr_t &data, uint64_t &x) {
137
138
  x ^= (uint64_t)data[0];
138
139
  }
139
140
 
140
- inline uint64_t HashOtherSize(const data_ptr_t &data, const idx_t &len) {
141
+ inline uint64_t HashOtherSize(const_data_ptr_t &data, const idx_t &len) {
141
142
  uint64_t x = 0;
142
143
  switch (len & 7) {
143
144
  case 7:
@@ -169,7 +170,7 @@ inline uint64_t HashOtherSize(const data_ptr_t &data, const idx_t &len) {
169
170
 
170
171
  template <>
171
172
  inline uint64_t TemplatedHash(const string_t &elem) {
172
- data_ptr_t data = (data_ptr_t)elem.GetData();
173
+ auto data = const_data_ptr_cast(elem.GetData());
173
174
  const auto &len = elem.GetSize();
174
175
  uint64_t h = 0;
175
176
  for (idx_t i = 0; i + sizeof(uint64_t) <= len; i += sizeof(uint64_t)) {
@@ -194,7 +195,7 @@ inline uint64_t TemplatedHash(const string_t &elem) {
194
195
 
195
196
  template <class T>
196
197
  void TemplatedComputeHashes(UnifiedVectorFormat &vdata, const idx_t &count, uint64_t hashes[]) {
197
- T *data = (T *)vdata.data;
198
+ auto data = UnifiedVectorFormat::GetData<T>(vdata);
198
199
  for (idx_t i = 0; i < count; i++) {
199
200
  auto idx = vdata.sel->get_index(i);
200
201
  if (vdata.validity.RowIsValid(idx)) {
@@ -262,7 +263,7 @@ void HyperLogLog::ProcessEntries(UnifiedVectorFormat &vdata, const LogicalType &
262
263
 
263
264
  void HyperLogLog::AddToLogs(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[],
264
265
  HyperLogLog **logs[], const SelectionVector *log_sel) {
265
- AddToLogsInternal(vdata, count, indices, counts, (void ****)logs, log_sel);
266
+ AddToLogsInternal(vdata, count, indices, counts, reinterpret_cast<void ****>(logs), log_sel);
266
267
  }
267
268
 
268
269
  void HyperLogLog::AddToLog(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[]) {
@@ -17,8 +17,14 @@ static data_ptr_t AllocatePrimitiveData(Allocator &allocator, uint16_t capacity)
17
17
  }
18
18
 
19
19
  template <class T>
20
- static T *GetPrimitiveData(const ListSegment *segment) {
21
- return (T *)(((char *)segment) + sizeof(ListSegment) + segment->capacity * sizeof(bool));
20
+ static T *GetPrimitiveData(ListSegment *segment) {
21
+ return reinterpret_cast<T *>(data_ptr_cast(segment) + sizeof(ListSegment) + segment->capacity * sizeof(bool));
22
+ }
23
+
24
+ template <class T>
25
+ static const T *GetPrimitiveData(const ListSegment *segment) {
26
+ return reinterpret_cast<const T *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
27
+ segment->capacity * sizeof(bool));
22
28
  }
23
29
 
24
30
  //===--------------------------------------------------------------------===//
@@ -32,13 +38,24 @@ static data_ptr_t AllocateListData(Allocator &allocator, uint16_t capacity) {
32
38
  return allocator.AllocateData(GetAllocationSizeList(capacity));
33
39
  }
34
40
 
35
- static uint64_t *GetListLengthData(const ListSegment *segment) {
36
- return (uint64_t *)(((char *)segment) + sizeof(ListSegment) + segment->capacity * sizeof(bool));
41
+ static uint64_t *GetListLengthData(ListSegment *segment) {
42
+ return reinterpret_cast<uint64_t *>(data_ptr_cast(segment) + sizeof(ListSegment) +
43
+ segment->capacity * sizeof(bool));
44
+ }
45
+
46
+ static const uint64_t *GetListLengthData(const ListSegment *segment) {
47
+ return reinterpret_cast<const uint64_t *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
48
+ segment->capacity * sizeof(bool));
49
+ }
50
+
51
+ static const LinkedList *GetListChildData(const ListSegment *segment) {
52
+ return reinterpret_cast<const LinkedList *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
53
+ segment->capacity * (sizeof(bool) + sizeof(uint64_t)));
37
54
  }
38
55
 
39
- static LinkedList *GetListChildData(const ListSegment *segment) {
40
- return (LinkedList *)(((char *)segment) + sizeof(ListSegment) +
41
- segment->capacity * (sizeof(bool) + sizeof(uint64_t)));
56
+ static LinkedList *GetListChildData(ListSegment *segment) {
57
+ return reinterpret_cast<LinkedList *>(data_ptr_cast(segment) + sizeof(ListSegment) +
58
+ segment->capacity * (sizeof(bool) + sizeof(uint64_t)));
42
59
  }
43
60
 
44
61
  //===--------------------------------------------------------------------===//
@@ -52,12 +69,22 @@ static data_ptr_t AllocateStructData(Allocator &allocator, uint16_t capacity, id
52
69
  return allocator.AllocateData(GetAllocationSizeStruct(capacity, child_count));
53
70
  }
54
71
 
55
- static ListSegment **GetStructData(const ListSegment *segment) {
56
- return (ListSegment **)(((char *)segment) + sizeof(ListSegment) + segment->capacity * sizeof(bool));
72
+ static ListSegment **GetStructData(ListSegment *segment) {
73
+ return reinterpret_cast<ListSegment **>(data_ptr_cast(segment) + +sizeof(ListSegment) +
74
+ segment->capacity * sizeof(bool));
57
75
  }
58
76
 
59
- static bool *GetNullMask(const ListSegment *segment) {
60
- return (bool *)(((char *)segment) + sizeof(ListSegment));
77
+ static const ListSegment *const *GetStructData(const ListSegment *segment) {
78
+ return reinterpret_cast<const ListSegment *const *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
79
+ segment->capacity * sizeof(bool));
80
+ }
81
+
82
+ static bool *GetNullMask(ListSegment *segment) {
83
+ return reinterpret_cast<bool *>(data_ptr_cast(segment) + sizeof(ListSegment));
84
+ }
85
+
86
+ static const bool *GetNullMask(const ListSegment *segment) {
87
+ return reinterpret_cast<const bool *>(const_data_ptr_cast(segment) + sizeof(ListSegment));
61
88
  }
62
89
 
63
90
  static uint16_t GetCapacityForNewSegment(uint16_t capacity) {
@@ -96,12 +123,12 @@ static ListSegment *CreatePrimitiveSegment(const ListSegmentFunctions &, Allocat
96
123
  template <class T>
97
124
  void DestroyPrimitiveSegment(const ListSegmentFunctions &, ListSegment *segment, Allocator &allocator) {
98
125
  D_ASSERT(segment);
99
- allocator.FreeData((data_ptr_t)segment, GetAllocationSize<T>(segment->capacity));
126
+ allocator.FreeData(data_ptr_cast(segment), GetAllocationSize<T>(segment->capacity));
100
127
  }
101
128
 
102
129
  static ListSegment *CreateListSegment(const ListSegmentFunctions &, Allocator &allocator, uint16_t capacity) {
103
130
  // allocate data and set the header
104
- auto segment = (ListSegment *)AllocateListData(allocator, capacity);
131
+ auto segment = reinterpret_cast<ListSegment *>(AllocateListData(allocator, capacity));
105
132
  segment->capacity = capacity;
106
133
  segment->count = 0;
107
134
  segment->next = nullptr;
@@ -109,24 +136,25 @@ static ListSegment *CreateListSegment(const ListSegmentFunctions &, Allocator &a
109
136
  // create an empty linked list for the child vector
110
137
  auto linked_child_list = GetListChildData(segment);
111
138
  LinkedList linked_list(0, nullptr, nullptr);
112
- Store<LinkedList>(linked_list, (data_ptr_t)linked_child_list);
139
+ Store<LinkedList>(linked_list, data_ptr_cast(linked_child_list));
113
140
 
114
141
  return segment;
115
142
  }
116
143
 
117
144
  void DestroyListSegment(const ListSegmentFunctions &functions, ListSegment *segment, Allocator &allocator) {
118
145
  // destroy the child list
119
- auto linked_child_list = Load<LinkedList>((data_ptr_t)GetListChildData(segment));
146
+ auto linked_child_list = Load<LinkedList>(data_ptr_cast(GetListChildData(segment)));
120
147
  DestroyLinkedList(functions.child_functions[0], allocator, linked_child_list);
121
148
 
122
149
  // destroy the list segment itself
123
- allocator.FreeData((data_ptr_t)segment, GetAllocationSizeList(segment->capacity));
150
+ allocator.FreeData(data_ptr_cast(segment), GetAllocationSizeList(segment->capacity));
124
151
  }
125
152
 
126
153
  static ListSegment *CreateStructSegment(const ListSegmentFunctions &functions, Allocator &allocator,
127
154
  uint16_t capacity) {
128
155
  // allocate data and set header
129
- auto segment = (ListSegment *)AllocateStructData(allocator, capacity, functions.child_functions.size());
156
+ auto segment =
157
+ reinterpret_cast<ListSegment *>(AllocateStructData(allocator, capacity, functions.child_functions.size()));
130
158
  segment->capacity = capacity;
131
159
  segment->count = 0;
132
160
  segment->next = nullptr;
@@ -136,7 +164,7 @@ static ListSegment *CreateStructSegment(const ListSegmentFunctions &functions, A
136
164
  for (idx_t i = 0; i < functions.child_functions.size(); i++) {
137
165
  auto child_function = functions.child_functions[i];
138
166
  auto child_segment = child_function.create_segment(child_function, allocator, capacity);
139
- Store<ListSegment *>(child_segment, (data_ptr_t)(child_segments + i));
167
+ Store<ListSegment *>(child_segment, data_ptr_cast(child_segments + i));
140
168
  }
141
169
 
142
170
  return segment;
@@ -147,12 +175,12 @@ void DestroyStructSegment(const ListSegmentFunctions &functions, ListSegment *se
147
175
  auto child_segments = GetStructData(segment);
148
176
  for (idx_t i = 0; i < functions.child_functions.size(); i++) {
149
177
  auto child_function = functions.child_functions[i];
150
- auto child_segment = Load<ListSegment *>((data_ptr_t)(child_segments + i));
178
+ auto child_segment = Load<ListSegment *>(data_ptr_cast(child_segments + i));
151
179
  child_function.destroy(child_function, child_segment, allocator);
152
180
  }
153
181
 
154
182
  // destroy the struct segment itself
155
- allocator.FreeData((data_ptr_t)segment,
183
+ allocator.FreeData(data_ptr_cast(segment),
156
184
  GetAllocationSizeStruct(segment->capacity, functions.child_functions.size()));
157
185
  }
158
186
 
@@ -200,7 +228,7 @@ static void WriteDataToPrimitiveSegment(const ListSegmentFunctions &functions, A
200
228
  // write value
201
229
  if (!is_null) {
202
230
  auto data = GetPrimitiveData<T>(segment);
203
- Store<T>(((T *)input_data)[entry_idx], (data_ptr_t)(data + segment->count));
231
+ Store<T>(((T *)input_data)[entry_idx], data_ptr_cast(data + segment->count));
204
232
  }
205
233
  }
206
234
 
@@ -208,7 +236,7 @@ static void WriteDataToVarcharSegment(const ListSegmentFunctions &functions, All
208
236
  Vector &input, idx_t &entry_idx, idx_t &count) {
209
237
 
210
238
  // get the vector data and the source index of the entry that we want to write
211
- auto input_data = FlatVector::GetData(input);
239
+ auto input_data = FlatVector::GetData<string_t>(input);
212
240
 
213
241
  // write null validity
214
242
  auto null_mask = GetNullMask(segment);
@@ -222,19 +250,19 @@ static void WriteDataToVarcharSegment(const ListSegmentFunctions &functions, All
222
250
  // get the string
223
251
  string_t str_t;
224
252
  if (!is_null) {
225
- str_t = ((string_t *)input_data)[entry_idx];
253
+ str_t = input_data[entry_idx];
226
254
  str_length = str_t.GetSize();
227
255
  }
228
256
 
229
257
  // we can reconstruct the offset from the length
230
- Store<uint64_t>(str_length, (data_ptr_t)(str_length_data + segment->count));
258
+ Store<uint64_t>(str_length, data_ptr_cast(str_length_data + segment->count));
231
259
 
232
260
  if (is_null) {
233
261
  return;
234
262
  }
235
263
 
236
264
  // write the characters to the linked list of child segments
237
- auto child_segments = Load<LinkedList>((data_ptr_t)GetListChildData(segment));
265
+ auto child_segments = Load<LinkedList>(data_ptr_cast(GetListChildData(segment)));
238
266
  for (char &c : str_t.GetString()) {
239
267
  auto child_segment = GetSegment(functions.child_functions.back(), allocator, child_segments);
240
268
  auto data = GetPrimitiveData<char>(child_segment);
@@ -244,14 +272,14 @@ static void WriteDataToVarcharSegment(const ListSegmentFunctions &functions, All
244
272
  }
245
273
 
246
274
  // store the updated linked list
247
- Store<LinkedList>(child_segments, (data_ptr_t)GetListChildData(segment));
275
+ Store<LinkedList>(child_segments, data_ptr_cast(GetListChildData(segment)));
248
276
  }
249
277
 
250
278
  static void WriteDataToListSegment(const ListSegmentFunctions &functions, Allocator &allocator, ListSegment *segment,
251
279
  Vector &input, idx_t &entry_idx, idx_t &count) {
252
280
 
253
281
  // get the vector data and the source index of the entry that we want to write
254
- auto input_data = FlatVector::GetData(input);
282
+ auto input_data = FlatVector::GetData<list_entry_t>(input);
255
283
 
256
284
  // write null validity
257
285
  auto null_mask = GetNullMask(segment);
@@ -264,7 +292,7 @@ static void WriteDataToListSegment(const ListSegmentFunctions &functions, Alloca
264
292
 
265
293
  if (!is_null) {
266
294
  // get list entry information
267
- auto list_entries = (list_entry_t *)input_data;
295
+ auto list_entries = input_data;
268
296
  const auto &list_entry = list_entries[entry_idx];
269
297
  list_length = list_entry.length;
270
298
 
@@ -273,7 +301,7 @@ static void WriteDataToListSegment(const ListSegmentFunctions &functions, Alloca
273
301
  auto &child_vector = ListVector::GetEntry(input);
274
302
 
275
303
  // loop over the child vector entries and recurse on them
276
- auto child_segments = Load<LinkedList>((data_ptr_t)GetListChildData(segment));
304
+ auto child_segments = Load<LinkedList>(data_ptr_cast(GetListChildData(segment)));
277
305
  D_ASSERT(functions.child_functions.size() == 1);
278
306
  for (idx_t child_idx = 0; child_idx < list_entry.length; child_idx++) {
279
307
  auto source_idx_child = list_entry.offset + child_idx;
@@ -281,10 +309,10 @@ static void WriteDataToListSegment(const ListSegmentFunctions &functions, Alloca
281
309
  lists_size);
282
310
  }
283
311
  // store the updated linked list
284
- Store<LinkedList>(child_segments, (data_ptr_t)GetListChildData(segment));
312
+ Store<LinkedList>(child_segments, data_ptr_cast(GetListChildData(segment)));
285
313
  }
286
314
 
287
- Store<uint64_t>(list_length, (data_ptr_t)(list_length_data + segment->count));
315
+ Store<uint64_t>(list_length, data_ptr_cast(list_length_data + segment->count));
288
316
  }
289
317
 
290
318
  static void WriteDataToStructSegment(const ListSegmentFunctions &functions, Allocator &allocator, ListSegment *segment,
@@ -302,7 +330,7 @@ static void WriteDataToStructSegment(const ListSegmentFunctions &functions, Allo
302
330
 
303
331
  // write the data of each of the children of the struct
304
332
  for (idx_t child_count = 0; child_count < children.size(); child_count++) {
305
- auto child_list_segment = Load<ListSegment *>((data_ptr_t)(child_list + child_count));
333
+ auto child_list_segment = Load<ListSegment *>(data_ptr_cast(child_list + child_count));
306
334
  auto &child_function = functions.child_functions[child_count];
307
335
  child_function.write_data(child_function, allocator, child_list_segment, *children[child_count], entry_idx,
308
336
  count);
@@ -339,13 +367,13 @@ static void ReadDataFromPrimitiveSegment(const ListSegmentFunctions &, const Lis
339
367
  }
340
368
  }
341
369
 
342
- auto aggr_vector_data = FlatVector::GetData(result);
370
+ auto aggr_vector_data = FlatVector::GetData<T>(result);
343
371
 
344
372
  // load values
345
373
  for (idx_t i = 0; i < segment->count; i++) {
346
374
  if (aggr_vector_validity.RowIsValid(total_count + i)) {
347
375
  auto data = GetPrimitiveData<T>(segment);
348
- ((T *)aggr_vector_data)[total_count + i] = Load<T>((data_ptr_t)(data + i));
376
+ aggr_vector_data[total_count + i] = Load<T>(const_data_ptr_cast(data + i));
349
377
  }
350
378
  }
351
379
  }
@@ -365,7 +393,7 @@ static void ReadDataFromVarcharSegment(const ListSegmentFunctions &, const ListS
365
393
 
366
394
  // append all the child chars to one string
367
395
  string str = "";
368
- auto linked_child_list = Load<LinkedList>((data_ptr_t)GetListChildData(segment));
396
+ auto linked_child_list = Load<LinkedList>(const_data_ptr_cast(GetListChildData(segment)));
369
397
  while (linked_child_list.first_segment) {
370
398
  auto child_segment = linked_child_list.first_segment;
371
399
  auto data = GetPrimitiveData<char>(child_segment);
@@ -375,17 +403,17 @@ static void ReadDataFromVarcharSegment(const ListSegmentFunctions &, const ListS
375
403
  linked_child_list.last_segment = nullptr;
376
404
 
377
405
  // use length and (reconstructed) offset to get the correct substrings
378
- auto aggr_vector_data = FlatVector::GetData(result);
406
+ auto aggr_vector_data = FlatVector::GetData<string_t>(result);
379
407
  auto str_length_data = GetListLengthData(segment);
380
408
 
381
409
  // get the substrings and write them to the result vector
382
410
  idx_t offset = 0;
383
411
  for (idx_t i = 0; i < segment->count; i++) {
384
412
  if (!null_mask[i]) {
385
- auto str_length = Load<uint64_t>((data_ptr_t)(str_length_data + i));
413
+ auto str_length = Load<uint64_t>(const_data_ptr_cast(str_length_data + i));
386
414
  auto substr = str.substr(offset, str_length);
387
415
  auto str_t = StringVector::AddStringOrBlob(result, substr);
388
- ((string_t *)aggr_vector_data)[total_count + i] = str_t;
416
+ aggr_vector_data[total_count + i] = str_t;
389
417
  offset += str_length;
390
418
  }
391
419
  }
@@ -416,14 +444,14 @@ static void ReadDataFromListSegment(const ListSegmentFunctions &functions, const
416
444
  // set length and offsets
417
445
  auto list_length_data = GetListLengthData(segment);
418
446
  for (idx_t i = 0; i < segment->count; i++) {
419
- auto list_length = Load<uint64_t>((data_ptr_t)(list_length_data + i));
447
+ auto list_length = Load<uint64_t>(const_data_ptr_cast(list_length_data + i));
420
448
  list_vector_data[total_count + i].length = list_length;
421
449
  list_vector_data[total_count + i].offset = offset;
422
450
  offset += list_length;
423
451
  }
424
452
 
425
453
  auto &child_vector = ListVector::GetEntry(result);
426
- auto linked_child_list = Load<LinkedList>((data_ptr_t)GetListChildData(segment));
454
+ auto linked_child_list = Load<LinkedList>(const_data_ptr_cast(GetListChildData(segment)));
427
455
  ListVector::Reserve(result, offset);
428
456
 
429
457
  // recurse into the linked list of child values
@@ -451,7 +479,7 @@ static void ReadDataFromStructSegment(const ListSegmentFunctions &functions, con
451
479
  D_ASSERT(children.size() == functions.child_functions.size());
452
480
  auto struct_children = GetStructData(segment);
453
481
  for (idx_t child_count = 0; child_count < children.size(); child_count++) {
454
- auto struct_children_segment = Load<ListSegment *>((data_ptr_t)(struct_children + child_count));
482
+ auto struct_children_segment = Load<ListSegment *>(const_data_ptr_cast(struct_children + child_count));
455
483
  auto &child_function = functions.child_functions[child_count];
456
484
  child_function.read_data(child_function, struct_children_segment, *children[child_count], total_count);
457
485
  }
@@ -487,25 +515,25 @@ static ListSegment *CopyDataFromListSegment(const ListSegmentFunctions &function
487
515
  Allocator &allocator) {
488
516
 
489
517
  // create an empty linked list for the child vector of target
490
- auto source_linked_child_list = Load<LinkedList>((data_ptr_t)GetListChildData(source));
518
+ auto source_linked_child_list = Load<LinkedList>(const_data_ptr_cast(GetListChildData(source)));
491
519
 
492
520
  // create the segment
493
- auto target = (ListSegment *)AllocateListData(allocator, source->capacity);
521
+ auto target = reinterpret_cast<ListSegment *>(AllocateListData(allocator, source->capacity));
494
522
  memcpy(target, source,
495
523
  sizeof(ListSegment) + source->capacity * (sizeof(bool) + sizeof(uint64_t)) + sizeof(LinkedList));
496
524
  target->next = nullptr;
497
525
 
498
526
  auto target_linked_list = GetListChildData(target);
499
527
  LinkedList linked_list(source_linked_child_list.total_capacity, nullptr, nullptr);
500
- Store<LinkedList>(linked_list, (data_ptr_t)target_linked_list);
528
+ Store<LinkedList>(linked_list, data_ptr_cast(target_linked_list));
501
529
 
502
530
  // recurse to copy the linked child list
503
- auto target_linked_child_list = Load<LinkedList>((data_ptr_t)GetListChildData(target));
531
+ auto target_linked_child_list = Load<LinkedList>(data_ptr_cast(GetListChildData(target)));
504
532
  D_ASSERT(functions.child_functions.size() == 1);
505
533
  functions.child_functions[0].CopyLinkedList(source_linked_child_list, target_linked_child_list, allocator);
506
534
 
507
535
  // store the updated linked list
508
- Store<LinkedList>(target_linked_child_list, (data_ptr_t)GetListChildData(target));
536
+ Store<LinkedList>(target_linked_child_list, data_ptr_cast(GetListChildData(target)));
509
537
  return target;
510
538
  }
511
539
 
@@ -513,7 +541,7 @@ static ListSegment *CopyDataFromStructSegment(const ListSegmentFunctions &functi
513
541
  Allocator &allocator) {
514
542
 
515
543
  auto source_child_count = functions.child_functions.size();
516
- auto target = (ListSegment *)AllocateStructData(allocator, source->capacity, source_child_count);
544
+ auto target = reinterpret_cast<ListSegment *>(AllocateStructData(allocator, source->capacity, source_child_count));
517
545
  memcpy(target, source,
518
546
  sizeof(ListSegment) + source->capacity * sizeof(bool) + source_child_count * sizeof(ListSegment *));
519
547
  target->next = nullptr;
@@ -524,9 +552,9 @@ static ListSegment *CopyDataFromStructSegment(const ListSegmentFunctions &functi
524
552
 
525
553
  for (idx_t i = 0; i < functions.child_functions.size(); i++) {
526
554
  auto child_function = functions.child_functions[i];
527
- auto source_child_segment = Load<ListSegment *>((data_ptr_t)(source_child_segments + i));
555
+ auto source_child_segment = Load<ListSegment *>(const_data_ptr_cast(source_child_segments + i));
528
556
  auto target_child_segment = child_function.copy_data(child_function, source_child_segment, allocator);
529
- Store<ListSegment *>(target_child_segment, (data_ptr_t)(target_child_segments + i));
557
+ Store<ListSegment *>(target_child_segment, data_ptr_cast(target_child_segments + i));
530
558
  }
531
559
  return target;
532
560
  }
@@ -19,7 +19,7 @@ PartitionedTupleData::PartitionedTupleData(const PartitionedTupleData &other)
19
19
  unique_ptr<PartitionedTupleData> PartitionedTupleData::CreateShared() {
20
20
  switch (type) {
21
21
  case PartitionedTupleDataType::RADIX:
22
- return make_uniq<RadixPartitionedTupleData>((RadixPartitionedTupleData &)*this);
22
+ return make_uniq<RadixPartitionedTupleData>(Cast<RadixPartitionedTupleData>());
23
23
  default:
24
24
  throw NotImplementedException("CreateShared for this type of PartitionedTupleData");
25
25
  }
@@ -241,8 +241,10 @@ void TupleDataAllocator::InitializeChunkStateInternal(TupleDataPinState &pin_sta
241
241
  lock_guard<mutex> guard(part->lock);
242
242
  const auto old_base_heap_ptr = part->base_heap_ptr;
243
243
  if (old_base_heap_ptr != new_base_heap_ptr) {
244
- Vector old_heap_ptrs(Value::POINTER((uintptr_t)old_base_heap_ptr + part->heap_block_offset));
245
- Vector new_heap_ptrs(Value::POINTER((uintptr_t)new_base_heap_ptr + part->heap_block_offset));
244
+ Vector old_heap_ptrs(
245
+ Value::POINTER(CastPointerToValue(old_base_heap_ptr + part->heap_block_offset)));
246
+ Vector new_heap_ptrs(
247
+ Value::POINTER(CastPointerToValue(new_base_heap_ptr + part->heap_block_offset)));
246
248
  RecomputeHeapPointers(old_heap_ptrs, *ConstantVector::ZeroSelectionVector(), row_locations,
247
249
  new_heap_ptrs, offset, next, layout, 0);
248
250
  part->base_heap_ptr = new_base_heap_ptr;
@@ -298,7 +300,7 @@ void TupleDataAllocator::RecomputeHeapPointers(Vector &old_heap_ptrs, const Sele
298
300
 
299
301
  UnifiedVectorFormat new_heap_data;
300
302
  new_heap_ptrs.ToUnifiedFormat(offset + count, new_heap_data);
301
- const auto new_heap_locations = (data_ptr_t *)new_heap_data.data;
303
+ const auto new_heap_locations = UnifiedVectorFormat::GetData<data_ptr_t>(new_heap_data);
302
304
  const auto new_heap_sel = *new_heap_data.sel;
303
305
 
304
306
  for (idx_t col_idx = 0; col_idx < layout.ColumnCount(); col_idx++) {