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
@@ -443,7 +443,7 @@ unique_ptr<GlobalSourceState> PhysicalNestedLoopJoin::GetGlobalSourceState(Clien
443
443
 
444
444
  unique_ptr<LocalSourceState> PhysicalNestedLoopJoin::GetLocalSourceState(ExecutionContext &context,
445
445
  GlobalSourceState &gstate) const {
446
- return make_uniq<NestedLoopJoinLocalScanState>(*this, (NestedLoopJoinGlobalScanState &)gstate);
446
+ return make_uniq<NestedLoopJoinLocalScanState>(*this, gstate.Cast<NestedLoopJoinGlobalScanState>());
447
447
  }
448
448
 
449
449
  SourceResultType PhysicalNestedLoopJoin::GetData(ExecutionContext &context, DataChunk &chunk,
@@ -451,8 +451,8 @@ SourceResultType PhysicalNestedLoopJoin::GetData(ExecutionContext &context, Data
451
451
  D_ASSERT(IsRightOuterJoin(join_type));
452
452
  // check if we need to scan any unmatched tuples from the RHS for the full/right outer join
453
453
  auto &sink = sink_state->Cast<NestedLoopJoinGlobalState>();
454
- auto &gstate = (NestedLoopJoinGlobalScanState &)input.global_state;
455
- auto &lstate = (NestedLoopJoinLocalScanState &)input.local_state;
454
+ auto &gstate = input.global_state.Cast<NestedLoopJoinGlobalScanState>();
455
+ auto &lstate = input.local_state.Cast<NestedLoopJoinLocalScanState>();
456
456
 
457
457
  // if the LHS is exhausted in a FULL/RIGHT OUTER JOIN, we scan chunks we still need to output
458
458
  sink.right_outer.Scan(gstate.scan_state, lstate.scan_state, chunk);
@@ -385,7 +385,7 @@ static idx_t MergeJoinSimpleBlocks(PiecewiseMergeJoinState &lstate, MergeJoinGlo
385
385
 
386
386
  void PhysicalPiecewiseMergeJoin::ResolveSimpleJoin(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
387
387
  OperatorState &state_p) const {
388
- auto &state = (PiecewiseMergeJoinState &)state_p;
388
+ auto &state = state_p.Cast<PiecewiseMergeJoinState>();
389
389
  auto &gstate = sink_state->Cast<MergeJoinGlobalState>();
390
390
 
391
391
  state.ResolveJoinKeys(input);
@@ -507,7 +507,7 @@ static idx_t MergeJoinComplexBlocks(BlockMergeInfo &l, BlockMergeInfo &r, const
507
507
 
508
508
  OperatorResultType PhysicalPiecewiseMergeJoin::ResolveComplexJoin(ExecutionContext &context, DataChunk &input,
509
509
  DataChunk &chunk, OperatorState &state_p) const {
510
- auto &state = (PiecewiseMergeJoinState &)state_p;
510
+ auto &state = state_p.Cast<PiecewiseMergeJoinState>();
511
511
  auto &gstate = sink_state->Cast<MergeJoinGlobalState>();
512
512
  auto &rsorted = *gstate.table->global_sort_state.sorted_blocks[0];
513
513
  const auto left_cols = input.ColumnCount();
@@ -682,7 +682,7 @@ SourceResultType PhysicalPiecewiseMergeJoin::GetData(ExecutionContext &context,
682
682
  D_ASSERT(IsRightOuterJoin(join_type));
683
683
  // check if we need to scan any unmatched tuples from the RHS for the full/right outer join
684
684
  auto &sink = sink_state->Cast<MergeJoinGlobalState>();
685
- auto &state = (PiecewiseJoinScanState &)input.global_state;
685
+ auto &state = input.global_state.Cast<PiecewiseJoinScanState>();
686
686
 
687
687
  lock_guard<mutex> l(state.lock);
688
688
  if (!state.scanner) {
@@ -276,7 +276,7 @@ void TopNHeap::Finalize() {
276
276
  }
277
277
 
278
278
  void TopNHeap::Reduce() {
279
- idx_t min_sort_threshold = MaxValue<idx_t>(STANDARD_VECTOR_SIZE * 5, 2 * (limit + offset));
279
+ idx_t min_sort_threshold = MaxValue<idx_t>(STANDARD_VECTOR_SIZE * 5ULL, 2ULL * (limit + offset));
280
280
  if (sort_state.count < min_sort_threshold) {
281
281
  // only reduce when we pass two times the limit + offset, or 5 vectors (whichever comes first)
282
282
  return;
@@ -186,8 +186,8 @@ static string TrimWhitespace(const string &col_name) {
186
186
 
187
187
  static string NormalizeColumnName(const string &col_name) {
188
188
  // normalize UTF8 characters to NFKD
189
- auto nfkd = utf8proc_NFKD((const utf8proc_uint8_t *)col_name.c_str(), col_name.size());
190
- const string col_name_nfkd = string((const char *)nfkd, strlen((const char *)nfkd));
189
+ auto nfkd = utf8proc_NFKD(reinterpret_cast<const utf8proc_uint8_t *>(col_name.c_str()), col_name.size());
190
+ const string col_name_nfkd = string(const_char_ptr_cast(nfkd), strlen(const_char_ptr_cast(nfkd)));
191
191
  free(nfkd);
192
192
 
193
193
  // only keep ASCII characters 0-9 a-z A-Z and replace spaces with regular whitespace
@@ -99,7 +99,7 @@ idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
99
99
  }
100
100
  // we have data left to read from the file
101
101
  // read directly into the buffer
102
- auto bytes_read = file_handle->Read((char *)buffer + result_offset, nr_bytes - result_offset);
102
+ auto bytes_read = file_handle->Read(char_ptr_cast(buffer) + result_offset, nr_bytes - result_offset);
103
103
  file_size = file_handle->GetFileSize();
104
104
  read_position += bytes_read;
105
105
  if (reset_enabled) {
@@ -114,7 +114,7 @@ idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
114
114
  }
115
115
  cached_buffer = std::move(new_buffer);
116
116
  }
117
- memcpy(cached_buffer.get() + buffer_size, (char *)buffer + result_offset, bytes_read);
117
+ memcpy(cached_buffer.get() + buffer_size, char_ptr_cast(buffer) + result_offset, bytes_read);
118
118
  buffer_size += bytes_read;
119
119
  }
120
120
 
@@ -279,9 +279,8 @@ unique_ptr<GlobalSinkState> PhysicalBatchInsert::GetGlobalSinkState(ClientContex
279
279
  // CREATE TABLE AS
280
280
  D_ASSERT(!insert_table);
281
281
  auto &catalog = schema->catalog;
282
- table = (TableCatalogEntry *)catalog
283
- .CreateTable(catalog.GetCatalogTransaction(context), *schema.get_mutable(), *info)
284
- .get();
282
+ auto created_table = catalog.CreateTable(catalog.GetCatalogTransaction(context), *schema.get_mutable(), *info);
283
+ table = &created_table->Cast<TableCatalogEntry>();
285
284
  } else {
286
285
  D_ASSERT(insert_table);
287
286
  D_ASSERT(insert_table->IsDuckTable());
@@ -63,7 +63,7 @@ PhysicalInsert::PhysicalInsert(LogicalOperator &op, SchemaCatalogEntry &schema,
63
63
 
64
64
  void PhysicalInsert::GetInsertInfo(const BoundCreateTableInfo &info, vector<LogicalType> &insert_types,
65
65
  vector<unique_ptr<Expression>> &bound_defaults) {
66
- auto &create_info = (CreateTableInfo &)*info.base;
66
+ auto &create_info = info.base->Cast<CreateTableInfo>();
67
67
  for (auto &col : create_info.columns.Physical()) {
68
68
  insert_types.push_back(col.GetType());
69
69
  bound_defaults.push_back(make_uniq<BoundConstantExpression>(Value(col.GetType())));
@@ -17,11 +17,11 @@ PhysicalPivot::PhysicalPivot(vector<LogicalType> types_p, unique_ptr<PhysicalOpe
17
17
  }
18
18
  // extract the empty aggregate expressions
19
19
  for (auto &aggr_expr : bound_pivot.aggregates) {
20
- auto &aggr = (BoundAggregateExpression &)*aggr_expr;
20
+ auto &aggr = aggr_expr->Cast<BoundAggregateExpression>();
21
21
  // for each aggregate, initialize an empty aggregate state and finalize it immediately
22
22
  auto state = make_unsafe_uniq_array<data_t>(aggr.function.state_size());
23
23
  aggr.function.initialize(state.get());
24
- Vector state_vector(Value::POINTER((uintptr_t)state.get()));
24
+ Vector state_vector(Value::POINTER(CastPointerToValue(state.get())));
25
25
  Vector result_vector(aggr_expr->return_type);
26
26
  AggregateInputData aggr_input_data(aggr.bind_info.get(), Allocator::DefaultAllocator());
27
27
  aggr.function.finalize(state_vector, aggr_input_data, result_vector, 1, 0);
@@ -27,7 +27,7 @@ PhysicalProjection::PhysicalProjection(vector<LogicalType> types, vector<unique_
27
27
 
28
28
  OperatorResultType PhysicalProjection::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
29
29
  GlobalOperatorState &gstate, OperatorState &state_p) const {
30
- auto &state = (ProjectionState &)state_p;
30
+ auto &state = state_p.Cast<ProjectionState>();
31
31
  state.executor.Execute(input, chunk);
32
32
  return OperatorResultType::NEED_MORE_INPUT;
33
33
  }
@@ -65,7 +65,7 @@ void UnnestOperatorState::SetLongestListLength() {
65
65
  if (vector_data.validity.RowIsValid(current_idx)) {
66
66
 
67
67
  // check if this list is longer
68
- auto list_data = (list_entry_t *)vector_data.data;
68
+ auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vector_data);
69
69
  auto list_entry = list_data[current_idx];
70
70
  if (list_entry.length > longest_list_length) {
71
71
  longest_list_length = list_entry.length;
@@ -98,7 +98,7 @@ static void UnnestNull(idx_t start, idx_t end, Vector &result) {
98
98
  template <class T>
99
99
  static void TemplatedUnnest(UnifiedVectorFormat &vector_data, idx_t start, idx_t end, Vector &result) {
100
100
 
101
- auto source_data = (T *)vector_data.data;
101
+ auto source_data = UnifiedVectorFormat::GetData<T>(vector_data);
102
102
  auto &source_mask = vector_data.validity;
103
103
 
104
104
  D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR);
@@ -314,7 +314,7 @@ OperatorResultType PhysicalUnnest::ExecuteInternal(ExecutionContext &context, Da
314
314
 
315
315
  } else {
316
316
 
317
- auto list_data = (list_entry_t *)vector_data.data;
317
+ auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vector_data);
318
318
  auto list_entry = list_data[current_idx];
319
319
 
320
320
  idx_t list_count = 0;
@@ -1,6 +1,7 @@
1
1
  #include "duckdb/execution/operator/scan/physical_column_data_scan.hpp"
2
2
 
3
3
  #include "duckdb/execution/operator/join/physical_delim_join.hpp"
4
+ #include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp"
4
5
  #include "duckdb/parallel/meta_pipeline.hpp"
5
6
  #include "duckdb/parallel/pipeline.hpp"
6
7
 
@@ -60,7 +61,7 @@ void PhysicalColumnDataScan::BuildPipelines(Pipeline &current, MetaPipeline &met
60
61
  D_ASSERT(delim_sink->type == PhysicalOperatorType::DELIM_JOIN);
61
62
  auto &delim_join = delim_sink->Cast<PhysicalDelimJoin>();
62
63
  current.AddDependency(delim_dependency);
63
- state.SetPipelineSource(current, (PhysicalOperator &)*delim_join.distinct);
64
+ state.SetPipelineSource(current, delim_join.distinct->Cast<PhysicalOperator>());
64
65
  return;
65
66
  }
66
67
  case PhysicalOperatorType::RECURSIVE_CTE_SCAN:
@@ -22,7 +22,7 @@ unique_ptr<OperatorState> PhysicalExpressionScan::GetOperatorState(ExecutionCont
22
22
 
23
23
  OperatorResultType PhysicalExpressionScan::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
24
24
  GlobalOperatorState &gstate, OperatorState &state_p) const {
25
- auto &state = (ExpressionScanState &)state_p;
25
+ auto &state = state_p.Cast<ExpressionScanState>();
26
26
 
27
27
  for (; chunk.size() + input.size() <= STANDARD_VECTOR_SIZE && state.expression_index < expressions.size();
28
28
  state.expression_index++) {
@@ -19,7 +19,7 @@ PhysicalPositionalScan::PhysicalPositionalScan(vector<LogicalType> types, unique
19
19
  if (left->type == PhysicalOperatorType::TABLE_SCAN) {
20
20
  child_tables.emplace_back(std::move(left));
21
21
  } else if (left->type == PhysicalOperatorType::POSITIONAL_SCAN) {
22
- auto &left_scan = (PhysicalPositionalScan &)*left;
22
+ auto &left_scan = left->Cast<PhysicalPositionalScan>();
23
23
  child_tables = std::move(left_scan.child_tables);
24
24
  } else {
25
25
  throw InternalException("Invalid left input for PhysicalPositionalScan");
@@ -28,7 +28,7 @@ PhysicalPositionalScan::PhysicalPositionalScan(vector<LogicalType> types, unique
28
28
  if (right->type == PhysicalOperatorType::TABLE_SCAN) {
29
29
  child_tables.emplace_back(std::move(right));
30
30
  } else if (right->type == PhysicalOperatorType::POSITIONAL_SCAN) {
31
- auto &right_scan = (PhysicalPositionalScan &)*right;
31
+ auto &right_scan = right->Cast<PhysicalPositionalScan>();
32
32
  auto &right_tables = right_scan.child_tables;
33
33
  child_tables.reserve(child_tables.size() + right_tables.size());
34
34
  std::move(right_tables.begin(), right_tables.end(), std::back_inserter(child_tables));
@@ -45,7 +45,7 @@ SinkResultType PhysicalCreateType::Sink(ExecutionContext &context, DataChunk &ch
45
45
  gstate.capacity *= 2;
46
46
  }
47
47
 
48
- auto src_ptr = (string_t *)sdata.data;
48
+ auto src_ptr = UnifiedVectorFormat::GetData<string_t>(sdata);
49
49
  auto result_ptr = FlatVector::GetData<string_t>(gstate.result);
50
50
  // Input vector has NULL value, we just throw an exception
51
51
  for (idx_t i = 0; i < chunk.size(); i++) {
@@ -51,7 +51,7 @@ PerfectAggregateHashTable::~PerfectAggregateHashTable() {
51
51
  template <class T>
52
52
  static void ComputeGroupLocationTemplated(UnifiedVectorFormat &group_data, Value &min, uintptr_t *address_data,
53
53
  idx_t current_shift, idx_t count) {
54
- auto data = (T *)group_data.data;
54
+ auto data = UnifiedVectorFormat::GetData<T>(group_data);
55
55
  auto min_val = min.GetValueUnsafe<T>();
56
56
  if (!group_data.validity.AllValid()) {
57
57
  for (idx_t i = 0; i < count; i++) {
@@ -186,7 +186,7 @@ static bool PlanIndexJoin(ClientContext &context, LogicalComparisonJoin &op, uni
186
186
  }
187
187
  // index joins are not supported if there are pushed down table filters
188
188
  D_ASSERT(right->type == PhysicalOperatorType::TABLE_SCAN);
189
- auto &tbl_scan = (PhysicalTableScan &)*right;
189
+ auto &tbl_scan = right->Cast<PhysicalTableScan>();
190
190
  // if (tbl_scan.table_filters && !tbl_scan.table_filters->filters.empty()) {
191
191
  // return false;
192
192
  // }
@@ -34,7 +34,7 @@ unique_ptr<PhysicalOperator> DuckCatalog::PlanCreateTableAs(ClientContext &conte
34
34
  }
35
35
 
36
36
  unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalCreateTable &op) {
37
- const auto &create_info = (CreateTableInfo &)*op.info->base;
37
+ const auto &create_info = op.info->base->Cast<CreateTableInfo>();
38
38
  auto &catalog = op.info->schema.catalog;
39
39
  auto existing_entry = catalog.GetEntry<TableCatalogEntry>(context, create_info.schema, create_info.table,
40
40
  OnEntryNotFound::RETURN_NULL);
@@ -207,10 +207,10 @@ unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalOperator &
207
207
  plan = CreatePlan(op.Cast<LogicalReset>());
208
208
  break;
209
209
  case LogicalOperatorType::LOGICAL_PIVOT:
210
- plan = CreatePlan((LogicalPivot &)op);
210
+ plan = CreatePlan(op.Cast<LogicalPivot>());
211
211
  break;
212
212
  case LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR:
213
- plan = ((LogicalExtensionOperator &)op).CreatePlan(context, *this);
213
+ plan = op.Cast<LogicalExtensionOperator>().CreatePlan(context, *this);
214
214
 
215
215
  if (!plan) {
216
216
  throw InternalException("Missing PhysicalOperator for Extension Operator");
@@ -408,7 +408,7 @@ SourceResultType RadixPartitionedHashTable::GetData(ExecutionContext &context, D
408
408
  aggr.function.initialize(aggr_state.get());
409
409
 
410
410
  AggregateInputData aggr_input_data(aggr.bind_info.get(), Allocator::DefaultAllocator());
411
- Vector state_vector(Value::POINTER((uintptr_t)aggr_state.get()));
411
+ Vector state_vector(Value::POINTER(CastPointerToValue(aggr_state.get())));
412
412
  aggr.function.finalize(state_vector, aggr_input_data, chunk.data[null_groups.size() + i], 1, 0);
413
413
  if (aggr.function.destructor) {
414
414
  aggr.function.destructor(state_vector, aggr_input_data, 1);
@@ -186,7 +186,7 @@ void BaseReservoirSampling::InitializeReservoir(idx_t cur_size, idx_t sample_siz
186
186
  //! we use a priority queue to extract the minimum key in O(1) time
187
187
  for (idx_t i = 0; i < sample_size; i++) {
188
188
  double k_i = random.NextRandom();
189
- reservoir_weights.push(std::make_pair(-k_i, i));
189
+ reservoir_weights.emplace(-k_i, i);
190
190
  }
191
191
  SetNextEntry();
192
192
  }
@@ -217,7 +217,7 @@ void BaseReservoirSampling::ReplaceElement() {
217
217
  //! we generate a random number between (min_threshold, 1)
218
218
  double r2 = random.NextRandom(min_threshold, 1);
219
219
  //! now we insert the new weight into the reservoir
220
- reservoir_weights.push(std::make_pair(-r2, min_entry));
220
+ reservoir_weights.emplace(-r2, min_entry);
221
221
  //! we update the min entry with the new min entry in the reservoir
222
222
  SetNextEntry();
223
223
  }
@@ -12,7 +12,8 @@ namespace duckdb {
12
12
 
13
13
  WindowAggregateState::WindowAggregateState(AggregateObject aggr, const LogicalType &result_type_p)
14
14
  : aggr(std::move(aggr)), result_type(result_type_p), state(aggr.function.state_size()),
15
- statev(Value::POINTER((idx_t)state.data())), statep(Value::POINTER((idx_t)state.data())) {
15
+ statev(Value::POINTER(CastPointerToValue(state.data()))),
16
+ statep(Value::POINTER(CastPointerToValue(state.data()))) {
16
17
  statev.SetVectorType(VectorType::FLAT_VECTOR); // Prevent conversion of results to constants
17
18
  }
18
19
 
@@ -180,11 +181,12 @@ void WindowConstantAggregate::Compute(Vector &target, idx_t rid, idx_t start, id
180
181
  //===--------------------------------------------------------------------===//
181
182
  // WindowSegmentTree
182
183
  //===--------------------------------------------------------------------===//
183
- WindowSegmentTree::WindowSegmentTree(AggregateObject aggr, const LogicalType &result_type_p, DataChunk *input,
184
+ WindowSegmentTree::WindowSegmentTree(AggregateObject aggr_p, const LogicalType &result_type_p, DataChunk *input,
184
185
  const ValidityMask &filter_mask_p, WindowAggregationMode mode_p)
185
- : aggr(std::move(aggr)), result_type(result_type_p), state(aggr.function.state_size()),
186
- statep(Value::POINTER((idx_t)state.data())), frame(0, 0), statev(Value::POINTER((idx_t)state.data())),
187
- internal_nodes(0), input_ref(input), filter_mask(filter_mask_p), mode(mode_p) {
186
+ : aggr(std::move(aggr_p)), result_type(result_type_p), state(aggr.function.state_size()),
187
+ statep(Value::POINTER(CastPointerToValue(state.data()))), frame(0, 0),
188
+ statev(Value::POINTER(CastPointerToValue(state.data()))), internal_nodes(0), input_ref(input),
189
+ filter_mask(filter_mask_p), mode(mode_p) {
188
190
  statep.Flatten(input->size());
189
191
  statev.SetVectorType(VectorType::FLAT_VECTOR); // Prevent conversion of results to constants
190
192
 
@@ -212,7 +214,7 @@ WindowSegmentTree::~WindowSegmentTree() {
212
214
  AggregateInputData aggr_input_data(aggr.GetFunctionData(), Allocator::DefaultAllocator());
213
215
  // call the destructor for all the intermediate states
214
216
  data_ptr_t address_data[STANDARD_VECTOR_SIZE];
215
- Vector addresses(LogicalType::POINTER, (data_ptr_t)address_data);
217
+ Vector addresses(LogicalType::POINTER, data_ptr_cast(address_data));
216
218
  idx_t count = 0;
217
219
  for (idx_t i = 0; i < internal_nodes; i++) {
218
220
  address_data[count++] = data_ptr_t(levels_flat_native.get() + i * state.size());
@@ -56,12 +56,12 @@ struct CountStarFunction : public BaseCountFunction {
56
56
 
57
57
  struct CountFunction : public BaseCountFunction {
58
58
  template <class INPUT_TYPE, class STATE, class OP>
59
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
59
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
60
60
  *state += 1;
61
61
  }
62
62
 
63
63
  template <class INPUT_TYPE, class STATE, class OP>
64
- static void ConstantOperation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask,
64
+ static void ConstantOperation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask,
65
65
  idx_t count) {
66
66
  *state += count;
67
67
  }
@@ -27,7 +27,7 @@ struct FirstFunctionBase {
27
27
  template <bool LAST, bool SKIP_NULLS>
28
28
  struct FirstFunction : public FirstFunctionBase {
29
29
  template <class INPUT_TYPE, class STATE, class OP>
30
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
30
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
31
31
  if (LAST || !state->is_set) {
32
32
  if (!mask.RowIsValid(idx)) {
33
33
  if (!SKIP_NULLS) {
@@ -43,7 +43,7 @@ struct FirstFunction : public FirstFunctionBase {
43
43
  }
44
44
 
45
45
  template <class INPUT_TYPE, class STATE, class OP>
46
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
46
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
47
47
  ValidityMask &mask, idx_t count) {
48
48
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
49
49
  }
@@ -94,7 +94,7 @@ struct FirstFunctionString : public FirstFunctionBase {
94
94
  }
95
95
 
96
96
  template <class INPUT_TYPE, class STATE, class OP>
97
- static void Operation(STATE *state, AggregateInputData &input_data, INPUT_TYPE *input, ValidityMask &mask,
97
+ static void Operation(STATE *state, AggregateInputData &input_data, const INPUT_TYPE *input, ValidityMask &mask,
98
98
  idx_t idx) {
99
99
  if (LAST || !state->is_set) {
100
100
  SetValue(state, input_data, input[idx], !mask.RowIsValid(idx));
@@ -102,7 +102,7 @@ struct FirstFunctionString : public FirstFunctionBase {
102
102
  }
103
103
 
104
104
  template <class INPUT_TYPE, class STATE, class OP>
105
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
105
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
106
106
  ValidityMask &mask, idx_t count) {
107
107
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
108
108
  }
@@ -171,7 +171,7 @@ struct FirstVectorFunction {
171
171
  UnifiedVectorFormat sdata;
172
172
  state_vector.ToUnifiedFormat(count, sdata);
173
173
 
174
- auto states = (FirstStateVector **)sdata.data;
174
+ auto states = UnifiedVectorFormat::GetData<FirstStateVector *>(sdata);
175
175
  for (idx_t i = 0; i < count; i++) {
176
176
  const auto idx = idata.sel->get_index(i);
177
177
  if (SKIP_NULLS && !idata.validity.RowIsValid(idx)) {
@@ -28,7 +28,7 @@ struct SortedAggregateBindData : public FunctionData {
28
28
  }
29
29
  sorted_on_args = (children.size() == order_bys.orders.size());
30
30
  for (size_t i = 0; sorted_on_args && i < children.size(); ++i) {
31
- sorted_on_args = children[i]->Equals(order_bys.orders[i].expression.get());
31
+ sorted_on_args = children[i]->Equals(*order_bys.orders[i].expression);
32
32
  }
33
33
  }
34
34
 
@@ -49,7 +49,7 @@ struct SortedAggregateBindData : public FunctionData {
49
49
  }
50
50
 
51
51
  bool Equals(const FunctionData &other_p) const override {
52
- auto &other = (const SortedAggregateBindData &)other_p;
52
+ auto &other = other_p.Cast<SortedAggregateBindData>();
53
53
  if (bind_info && other.bind_info) {
54
54
  if (!bind_info->Equals(*other.bind_info)) {
55
55
  return false;
@@ -288,7 +288,7 @@ struct SortedAggregateFunction {
288
288
  DataChunk sort_chunk;
289
289
  ProjectInputs(inputs, order_bind, input_count, count, arg_chunk, sort_chunk);
290
290
 
291
- const auto order_state = (SortedAggregateState *)state;
291
+ const auto order_state = reinterpret_cast<SortedAggregateState *>(state);
292
292
  order_state->Update(order_bind, sort_chunk, arg_chunk);
293
293
  }
294
294
 
@@ -310,7 +310,7 @@ struct SortedAggregateFunction {
310
310
  states.ToUnifiedFormat(count, svdata);
311
311
 
312
312
  // Size the selection vector for each state.
313
- auto sdata = (SortedAggregateState **)svdata.data;
313
+ auto sdata = UnifiedVectorFormat::GetDataNoConst<SortedAggregateState *>(svdata);
314
314
  for (idx_t i = 0; i < count; ++i) {
315
315
  auto sidx = svdata.sel->get_index(i);
316
316
  auto order_state = sdata[sidx];
@@ -346,9 +346,9 @@ struct SortedAggregateFunction {
346
346
 
347
347
  template <class STATE, class OP>
348
348
  static void Combine(const STATE &source, STATE *target, AggregateInputData &aggr_input_data) {
349
- const auto order_bind = (SortedAggregateBindData *)aggr_input_data.bind_data;
349
+ auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
350
350
  auto &other = const_cast<STATE &>(source);
351
- target->Combine(*order_bind, other);
351
+ target->Combine(order_bind, other);
352
352
  }
353
353
 
354
354
  static void Window(Vector inputs[], const ValidityMask &filter_mask, AggregateInputData &aggr_input_data,
@@ -359,7 +359,7 @@ struct SortedAggregateFunction {
359
359
 
360
360
  static void Finalize(Vector &states, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
361
361
  const idx_t offset) {
362
- const auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
362
+ auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
363
363
  auto &buffer_manager = order_bind.buffer_manager;
364
364
  RowLayout payload_layout;
365
365
  payload_layout.Initialize(order_bind.arg_types);
@@ -370,7 +370,7 @@ struct SortedAggregateFunction {
370
370
 
371
371
  // Reusable inner state
372
372
  vector<data_t> agg_state(order_bind.function.state_size());
373
- Vector agg_state_vec(Value::POINTER((idx_t)agg_state.data()));
373
+ Vector agg_state_vec(Value::POINTER(CastPointerToValue(agg_state.data())));
374
374
 
375
375
  // State variables
376
376
  auto bind_info = order_bind.bind_info.get();
@@ -158,7 +158,7 @@ int64_t CastFunctionSet::ImplicitCastCost(const LogicalType &source, const Logic
158
158
 
159
159
  BoundCastInfo MapCastFunction(BindCastInput &input, const LogicalType &source, const LogicalType &target) {
160
160
  D_ASSERT(input.info);
161
- auto &map_info = (MapCastInfo &)*input.info;
161
+ auto &map_info = input.info->Cast<MapCastInfo>();
162
162
  auto entry = map_info.GetEntry(source, target);
163
163
  if (entry) {
164
164
  if (entry->bind_function) {
@@ -207,7 +207,7 @@ struct DecimalCastInput {
207
207
  struct StringCastFromDecimalOperator {
208
208
  template <class INPUT_TYPE, class RESULT_TYPE>
209
209
  static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
210
- auto data = (DecimalCastInput *)dataptr;
210
+ auto data = reinterpret_cast<DecimalCastInput *>(dataptr);
211
211
  return StringCastFromDecimal::Operation<INPUT_TYPE>(input, data->width, data->scale, data->result);
212
212
  }
213
213
  };
@@ -17,7 +17,7 @@ bool EnumEnumCast(Vector &source, Vector &result, idx_t count, CastParameters &p
17
17
  UnifiedVectorFormat vdata;
18
18
  source.ToUnifiedFormat(count, vdata);
19
19
 
20
- auto source_data = (SRC_TYPE *)vdata.data;
20
+ auto source_data = UnifiedVectorFormat::GetData<SRC_TYPE>(vdata);
21
21
  auto source_sel = vdata.sel;
22
22
  auto source_mask = vdata.validity;
23
23
 
@@ -71,7 +71,7 @@ static bool EnumToVarcharCast(Vector &source, Vector &result, idx_t count, CastP
71
71
  UnifiedVectorFormat vdata;
72
72
  source.ToUnifiedFormat(count, vdata);
73
73
 
74
- auto source_data = (SRC *)vdata.data;
74
+ auto source_data = UnifiedVectorFormat::GetData<SRC>(vdata);
75
75
  for (idx_t i = 0; i < count; i++) {
76
76
  auto source_idx = vdata.sel->get_index(i);
77
77
  if (!vdata.validity.RowIsValid(source_idx)) {
@@ -8,7 +8,7 @@
8
8
  namespace duckdb {
9
9
 
10
10
  template <class T>
11
- bool StringEnumCastLoop(string_t *source_data, ValidityMask &source_mask, const LogicalType &source_type,
11
+ bool StringEnumCastLoop(const string_t *source_data, ValidityMask &source_mask, const LogicalType &source_type,
12
12
  T *result_data, ValidityMask &result_mask, const LogicalType &result_type, idx_t count,
13
13
  string *error_message, const SelectionVector *sel) {
14
14
  bool all_converted = true;
@@ -55,7 +55,7 @@ bool StringEnumCast(Vector &source, Vector &result, idx_t count, CastParameters
55
55
 
56
56
  result.SetVectorType(VectorType::FLAT_VECTOR);
57
57
 
58
- auto source_data = (string_t *)vdata.data;
58
+ auto source_data = UnifiedVectorFormat::GetData<string_t>(vdata);
59
59
  auto source_sel = vdata.sel;
60
60
  auto source_mask = vdata.validity;
61
61
  auto result_data = FlatVector::GetData<T>(result);
@@ -119,9 +119,9 @@ static BoundCastInfo VectorStringCastNumericSwitch(BindCastInput &input, const L
119
119
  //===--------------------------------------------------------------------===//
120
120
  // string -> list casting
121
121
  //===--------------------------------------------------------------------===//
122
- bool VectorStringToList::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask, Vector &result,
123
- ValidityMask &result_mask, idx_t count, CastParameters &parameters,
124
- const SelectionVector *sel) {
122
+ bool VectorStringToList::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
123
+ Vector &result, ValidityMask &result_mask, idx_t count,
124
+ CastParameters &parameters, const SelectionVector *sel) {
125
125
  idx_t total_list_size = 0;
126
126
  for (idx_t i = 0; i < count; i++) {
127
127
  idx_t idx = i;
@@ -183,8 +183,8 @@ static LogicalType InitVarcharStructType(const LogicalType &target) {
183
183
  //===--------------------------------------------------------------------===//
184
184
  // string -> struct casting
185
185
  //===--------------------------------------------------------------------===//
186
- bool VectorStringToStruct::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask, Vector &result,
187
- ValidityMask &result_mask, idx_t count,
186
+ bool VectorStringToStruct::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
187
+ Vector &result, ValidityMask &result_mask, idx_t count,
188
188
  CastParameters &parameters, const SelectionVector *sel) {
189
189
  auto varchar_struct_type = InitVarcharStructType(result.GetType());
190
190
  Vector varchar_vector(varchar_struct_type, count);
@@ -253,9 +253,9 @@ unique_ptr<FunctionLocalState> InitMapCastLocalState(CastLocalStateParameters &p
253
253
  return std::move(result);
254
254
  }
255
255
 
256
- bool VectorStringToMap::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask, Vector &result,
257
- ValidityMask &result_mask, idx_t count, CastParameters &parameters,
258
- const SelectionVector *sel) {
256
+ bool VectorStringToMap::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
257
+ Vector &result, ValidityMask &result_mask, idx_t count,
258
+ CastParameters &parameters, const SelectionVector *sel) {
259
259
  idx_t total_elements = 0;
260
260
  for (idx_t i = 0; i < count; i++) {
261
261
  idx_t idx = i;
@@ -352,7 +352,7 @@ bool StringToNestedTypeCast(Vector &source, Vector &result, idx_t count, CastPar
352
352
 
353
353
  source.ToUnifiedFormat(count, unified_source);
354
354
  auto source_sel = unified_source.sel;
355
- auto source_data = (string_t *)unified_source.data;
355
+ auto source_data = UnifiedVectorFormat::GetData<string_t>(unified_source);
356
356
  auto &source_mask = unified_source.validity;
357
357
  auto &result_mask = FlatVector::Validity(result);
358
358
 
@@ -293,7 +293,7 @@ static bool UnionToUnionCast(Vector &source, Vector &result, idx_t count, CastPa
293
293
  auto source_row_idx = source_tag_format.sel->get_index(row_idx);
294
294
  if (source_tag_format.validity.RowIsValid(source_row_idx)) {
295
295
  // map the tag
296
- auto source_tag = ((union_tag_t *)source_tag_format.data)[source_row_idx];
296
+ auto source_tag = (UnifiedVectorFormat::GetData<union_tag_t>(source_tag_format))[source_row_idx];
297
297
  auto target_tag = cast_data.tag_map[source_tag];
298
298
  FlatVector::GetData<union_tag_t>(result_tag_vector)[row_idx] = target_tag;
299
299
  } else {
@@ -339,7 +339,7 @@ static bool UnionToVarcharCast(Vector &source, Vector &result, idx_t count, Cast
339
339
  auto mapped_idx = member_vdata.sel->get_index(i);
340
340
  auto member_valid = member_vdata.validity.RowIsValid(mapped_idx);
341
341
  if (member_valid) {
342
- auto member_str = ((string_t *)member_vdata.data)[mapped_idx];
342
+ auto member_str = (UnifiedVectorFormat::GetData<string_t>(member_vdata))[mapped_idx];
343
343
  result_data[i] = StringVector::AddString(result, member_str);
344
344
  } else {
345
345
  result_data[i] = StringVector::AddString(result, "NULL");
@@ -299,8 +299,9 @@ static bool FindValueStruct(const char *buf, idx_t len, idx_t &pos, Vector &varc
299
299
  return false;
300
300
  }
301
301
 
302
- bool VectorStringToStruct::SplitStruct(string_t &input, vector<unique_ptr<Vector>> &varchar_vectors, idx_t &row_idx,
303
- string_map_t<idx_t> &child_names, vector<ValidityMask *> &child_masks) {
302
+ bool VectorStringToStruct::SplitStruct(const string_t &input, vector<unique_ptr<Vector>> &varchar_vectors,
303
+ idx_t &row_idx, string_map_t<idx_t> &child_names,
304
+ vector<ValidityMask *> &child_masks) {
304
305
  const char *buf = input.GetData();
305
306
  idx_t len = input.GetSize();
306
307
  idx_t pos = 0;
@@ -17,7 +17,7 @@ public:
17
17
  }
18
18
 
19
19
  bool Equals(const FunctionData &other_p) const override {
20
- auto &other = (const ConstantOrNullBindData &)other_p;
20
+ auto &other = other_p.Cast<ConstantOrNullBindData>();
21
21
  return value == other.value;
22
22
  }
23
23
  };
@@ -25,8 +25,8 @@ static void ListConcatFunction(DataChunk &args, ExpressionState &state, Vector &
25
25
  UnifiedVectorFormat rhs_data;
26
26
  lhs.ToUnifiedFormat(count, lhs_data);
27
27
  rhs.ToUnifiedFormat(count, rhs_data);
28
- auto lhs_entries = (list_entry_t *)lhs_data.data;
29
- auto rhs_entries = (list_entry_t *)rhs_data.data;
28
+ auto lhs_entries = UnifiedVectorFormat::GetData<list_entry_t>(lhs_data);
29
+ auto rhs_entries = UnifiedVectorFormat::GetData<list_entry_t>(rhs_data);
30
30
 
31
31
  auto lhs_list_size = ListVector::GetListSize(lhs);
32
32
  auto rhs_list_size = ListVector::GetListSize(rhs);