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
@@ -22,7 +22,7 @@ struct KurtosisOperation {
22
22
  }
23
23
 
24
24
  template <class INPUT_TYPE, class STATE, class OP>
25
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
25
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
26
26
  ValidityMask &mask, idx_t count) {
27
27
  for (idx_t i = 0; i < count; i++) {
28
28
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
@@ -30,7 +30,7 @@ struct KurtosisOperation {
30
30
  }
31
31
 
32
32
  template <class INPUT_TYPE, class STATE, class OP>
33
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
33
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
34
34
  state->n++;
35
35
  state->sum += data[idx];
36
36
  state->sum_sqr += pow(data[idx], 2);
@@ -54,8 +54,8 @@ struct MinMaxBase {
54
54
  }
55
55
 
56
56
  template <class INPUT_TYPE, class STATE, class OP>
57
- static void ConstantOperation(STATE *state, AggregateInputData &input_data, INPUT_TYPE *input, ValidityMask &mask,
58
- idx_t count) {
57
+ static void ConstantOperation(STATE *state, AggregateInputData &input_data, const INPUT_TYPE *input,
58
+ ValidityMask &mask, idx_t count) {
59
59
  D_ASSERT(mask.RowIsValid(0));
60
60
  if (!state->isset) {
61
61
  OP::template Assign<INPUT_TYPE, STATE>(state, input_data, input[0]);
@@ -66,7 +66,7 @@ struct MinMaxBase {
66
66
  }
67
67
 
68
68
  template <class INPUT_TYPE, class STATE, class OP>
69
- static void Operation(STATE *state, AggregateInputData &input_data, INPUT_TYPE *input, ValidityMask &mask,
69
+ static void Operation(STATE *state, AggregateInputData &input_data, const INPUT_TYPE *input, ValidityMask &mask,
70
70
  idx_t idx) {
71
71
  if (!state->isset) {
72
72
  OP::template Assign<INPUT_TYPE, STATE>(state, input_data, input[idx]);
@@ -215,8 +215,8 @@ static bool TemplatedOptimumType(Vector &left, idx_t lidx, idx_t lcount, Vector
215
215
  lidx = lvdata.sel->get_index(lidx);
216
216
  ridx = rvdata.sel->get_index(ridx);
217
217
 
218
- auto ldata = (const T *)lvdata.data;
219
- auto rdata = (const T *)rvdata.data;
218
+ auto ldata = UnifiedVectorFormat::GetData<T>(lvdata);
219
+ auto rdata = UnifiedVectorFormat::GetData<T>(rvdata);
220
220
 
221
221
  auto &lval = ldata[lidx];
222
222
  auto &rval = rdata[ridx];
@@ -341,8 +341,8 @@ static bool TemplatedOptimumList(Vector &left, idx_t lidx, idx_t lcount, Vector
341
341
  auto &lchild = ListVector::GetEntry(left);
342
342
  auto &rchild = ListVector::GetEntry(right);
343
343
 
344
- auto ldata = (const list_entry_t *)lvdata.data;
345
- auto rdata = (const list_entry_t *)rvdata.data;
344
+ auto ldata = UnifiedVectorFormat::GetData<list_entry_t>(lvdata);
345
+ auto rdata = UnifiedVectorFormat::GetData<list_entry_t>(rvdata);
346
346
 
347
347
  auto &lval = ldata[lidx];
348
348
  auto &rval = rdata[ridx];
@@ -33,7 +33,7 @@ struct ProductFunction {
33
33
  target[idx] = state->val;
34
34
  }
35
35
  template <class INPUT_TYPE, class STATE, class OP>
36
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
36
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
37
37
  if (state->empty) {
38
38
  state->empty = false;
39
39
  }
@@ -41,7 +41,7 @@ struct ProductFunction {
41
41
  }
42
42
 
43
43
  template <class INPUT_TYPE, class STATE, class OP>
44
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
44
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
45
45
  ValidityMask &mask, idx_t count) {
46
46
  for (idx_t i = 0; i < count; i++) {
47
47
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
@@ -21,7 +21,7 @@ struct SkewnessOperation {
21
21
  }
22
22
 
23
23
  template <class INPUT_TYPE, class STATE, class OP>
24
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
24
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
25
25
  ValidityMask &mask, idx_t count) {
26
26
  for (idx_t i = 0; i < count; i++) {
27
27
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
@@ -29,7 +29,7 @@ struct SkewnessOperation {
29
29
  }
30
30
 
31
31
  template <class INPUT_TYPE, class STATE, class OP>
32
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
32
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
33
33
  state->n++;
34
34
  state->sum += data[idx];
35
35
  state->sum_sqr += pow(data[idx], 2);
@@ -94,13 +94,13 @@ struct StringAggFunction {
94
94
  }
95
95
 
96
96
  template <class INPUT_TYPE, class STATE, class OP>
97
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *str_data,
97
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *str_data,
98
98
  ValidityMask &str_mask, idx_t str_idx) {
99
99
  PerformOperation(state, str_data[str_idx], aggr_input_data.bind_data);
100
100
  }
101
101
 
102
102
  template <class INPUT_TYPE, class STATE, class OP>
103
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
103
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
104
104
  ValidityMask &mask, idx_t count) {
105
105
  for (idx_t i = 0; i < count; i++) {
106
106
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
@@ -38,8 +38,8 @@ struct ApproximateQuantileBindData : public FunctionData {
38
38
 
39
39
  static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const AggregateFunction &function) {
40
40
  D_ASSERT(bind_data_p);
41
- auto bind_data = (ApproximateQuantileBindData *)bind_data_p;
42
- writer.WriteList<float>(bind_data->quantiles);
41
+ auto &bind_data = bind_data_p->Cast<ApproximateQuantileBindData>();
42
+ writer.WriteList<float>(bind_data.quantiles);
43
43
  }
44
44
 
45
45
  static unique_ptr<FunctionData> Deserialize(ClientContext &context, FieldReader &reader,
@@ -61,7 +61,7 @@ struct ApproxQuantileOperation {
61
61
  }
62
62
 
63
63
  template <class INPUT_TYPE, class STATE, class OP>
64
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
64
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
65
65
  ValidityMask &mask, idx_t count) {
66
66
  for (idx_t i = 0; i < count; i++) {
67
67
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
@@ -69,7 +69,7 @@ struct ApproxQuantileOperation {
69
69
  }
70
70
 
71
71
  template <class INPUT_TYPE, class STATE, class OP>
72
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
72
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
73
73
  auto val = Cast::template Operation<INPUT_TYPE, SAVE_TYPE>(data[idx]);
74
74
  if (!Value::DoubleIsFinite(val)) {
75
75
  return;
@@ -119,9 +119,9 @@ struct ApproxQuantileScalarOperation : public ApproxQuantileOperation {
119
119
  D_ASSERT(state->h);
120
120
  D_ASSERT(aggr_input_data.bind_data);
121
121
  state->h->compress();
122
- auto bind_data = (ApproximateQuantileBindData *)aggr_input_data.bind_data;
123
- D_ASSERT(bind_data->quantiles.size() == 1);
124
- target[idx] = Cast::template Operation<SAVE_TYPE, TARGET_TYPE>(state->h->quantile(bind_data->quantiles[0]));
122
+ auto &bind_data = aggr_input_data.bind_data->template Cast<ApproximateQuantileBindData>();
123
+ D_ASSERT(bind_data.quantiles.size() == 1);
124
+ target[idx] = Cast::template Operation<SAVE_TYPE, TARGET_TYPE>(state->h->quantile(bind_data.quantiles[0]));
125
125
  }
126
126
  };
127
127
 
@@ -220,11 +220,11 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
220
220
  }
221
221
 
222
222
  D_ASSERT(aggr_input_data.bind_data);
223
- auto bind_data = (ApproximateQuantileBindData *)aggr_input_data.bind_data;
223
+ auto &bind_data = aggr_input_data.bind_data->template Cast<ApproximateQuantileBindData>();
224
224
 
225
225
  auto &result = ListVector::GetEntry(result_list);
226
226
  auto ridx = ListVector::GetListSize(result_list);
227
- ListVector::Reserve(result_list, ridx + bind_data->quantiles.size());
227
+ ListVector::Reserve(result_list, ridx + bind_data.quantiles.size());
228
228
  auto rdata = FlatVector::GetData<CHILD_TYPE>(result);
229
229
 
230
230
  D_ASSERT(state->h);
@@ -232,9 +232,9 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
232
232
 
233
233
  auto &entry = target[idx];
234
234
  entry.offset = ridx;
235
- entry.length = bind_data->quantiles.size();
235
+ entry.length = bind_data.quantiles.size();
236
236
  for (size_t q = 0; q < entry.length; ++q) {
237
- const auto &quantile = bind_data->quantiles[q];
237
+ const auto &quantile = bind_data.quantiles[q];
238
238
  rdata[ridx + q] = Cast::template Operation<SAVE_TYPE, CHILD_TYPE>(state->h->quantile(quantile));
239
239
  }
240
240
 
@@ -247,11 +247,11 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
247
247
  D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
248
248
 
249
249
  D_ASSERT(aggr_input_data.bind_data);
250
- auto bind_data = (ApproximateQuantileBindData *)aggr_input_data.bind_data;
250
+ auto &bind_data = aggr_input_data.bind_data->template Cast<ApproximateQuantileBindData>();
251
251
 
252
252
  if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) {
253
253
  result.SetVectorType(VectorType::CONSTANT_VECTOR);
254
- ListVector::Reserve(result, bind_data->quantiles.size());
254
+ ListVector::Reserve(result, bind_data.quantiles.size());
255
255
 
256
256
  auto sdata = ConstantVector::GetData<STATE_TYPE *>(states);
257
257
  auto rdata = ConstantVector::GetData<RESULT_TYPE>(result);
@@ -260,7 +260,7 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
260
260
  } else {
261
261
  D_ASSERT(states.GetVectorType() == VectorType::FLAT_VECTOR);
262
262
  result.SetVectorType(VectorType::FLAT_VECTOR);
263
- ListVector::Reserve(result, (offset + count) * bind_data->quantiles.size());
263
+ ListVector::Reserve(result, (offset + count) * bind_data.quantiles.size());
264
264
 
265
265
  auto sdata = FlatVector::GetData<STATE_TYPE *>(states);
266
266
  auto rdata = FlatVector::GetData<RESULT_TYPE>(result);
@@ -155,7 +155,7 @@ struct ModeFunction {
155
155
  }
156
156
 
157
157
  template <class INPUT_TYPE, class STATE, class OP>
158
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
158
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
159
159
  if (!state->frequency_map) {
160
160
  state->frequency_map = new typename STATE::Counts();
161
161
  }
@@ -199,7 +199,7 @@ struct ModeFunction {
199
199
  }
200
200
  }
201
201
  template <class INPUT_TYPE, class STATE, class OP>
202
- static void ConstantOperation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask,
202
+ static void ConstantOperation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask,
203
203
  idx_t count) {
204
204
  if (!state->frequency_map) {
205
205
  state->frequency_map = new typename STATE::Counts();
@@ -464,7 +464,7 @@ struct QuantileOperation {
464
464
  }
465
465
 
466
466
  template <class INPUT_TYPE, class STATE, class OP>
467
- static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
467
+ static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
468
468
  state->v.emplace_back(data[idx]);
469
469
  }
470
470
 
@@ -493,11 +493,11 @@ static void ExecuteListFinalize(Vector &states, AggregateInputData &aggr_input_d
493
493
  D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
494
494
 
495
495
  D_ASSERT(aggr_input_data.bind_data);
496
- auto bind_data = (QuantileBindData *)aggr_input_data.bind_data;
496
+ auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
497
497
 
498
498
  if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) {
499
499
  result.SetVectorType(VectorType::CONSTANT_VECTOR);
500
- ListVector::Reserve(result, bind_data->quantiles.size());
500
+ ListVector::Reserve(result, bind_data.quantiles.size());
501
501
 
502
502
  auto sdata = ConstantVector::GetData<STATE_TYPE *>(states);
503
503
  auto rdata = ConstantVector::GetData<RESULT_TYPE>(result);
@@ -506,7 +506,7 @@ static void ExecuteListFinalize(Vector &states, AggregateInputData &aggr_input_d
506
506
  } else {
507
507
  D_ASSERT(states.GetVectorType() == VectorType::FLAT_VECTOR);
508
508
  result.SetVectorType(VectorType::FLAT_VECTOR);
509
- ListVector::Reserve(result, (offset + count) * bind_data->quantiles.size());
509
+ ListVector::Reserve(result, (offset + count) * bind_data.quantiles.size());
510
510
 
511
511
  auto sdata = FlatVector::GetData<STATE_TYPE *>(states);
512
512
  auto rdata = FlatVector::GetData<RESULT_TYPE>(result);
@@ -540,9 +540,9 @@ struct QuantileScalarOperation : public QuantileOperation {
540
540
  return;
541
541
  }
542
542
  D_ASSERT(aggr_input_data.bind_data);
543
- auto bind_data = (QuantileBindData *)aggr_input_data.bind_data;
544
- D_ASSERT(bind_data->quantiles.size() == 1);
545
- Interpolator<DISCRETE> interp(bind_data->quantiles[0], state->v.size(), bind_data->desc);
543
+ auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
544
+ D_ASSERT(bind_data.quantiles.size() == 1);
545
+ Interpolator<DISCRETE> interp(bind_data.quantiles[0], state->v.size(), bind_data.desc);
546
546
  target[idx] = interp.template Operation<typename STATE::SaveType, RESULT_TYPE>(state->v.data(), result);
547
547
  }
548
548
 
@@ -563,10 +563,10 @@ struct QuantileScalarOperation : public QuantileOperation {
563
563
  D_ASSERT(index);
564
564
 
565
565
  D_ASSERT(aggr_input_data.bind_data);
566
- auto bind_data = (QuantileBindData *)aggr_input_data.bind_data;
566
+ auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
567
567
 
568
568
  // Find the two positions needed
569
- const auto q = bind_data->quantiles[0];
569
+ const auto q = bind_data.quantiles[0];
570
570
 
571
571
  bool replace = false;
572
572
  if (frame.first == prev.first + 1 && frame.second == prev.second + 1) {
@@ -670,11 +670,11 @@ struct QuantileListOperation : public QuantileOperation {
670
670
  }
671
671
 
672
672
  D_ASSERT(aggr_input_data.bind_data);
673
- auto bind_data = (QuantileBindData *)aggr_input_data.bind_data;
673
+ auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
674
674
 
675
675
  auto &result = ListVector::GetEntry(result_list);
676
676
  auto ridx = ListVector::GetListSize(result_list);
677
- ListVector::Reserve(result_list, ridx + bind_data->quantiles.size());
677
+ ListVector::Reserve(result_list, ridx + bind_data.quantiles.size());
678
678
  auto rdata = FlatVector::GetData<CHILD_TYPE>(result);
679
679
 
680
680
  auto v_t = state->v.data();
@@ -683,14 +683,14 @@ struct QuantileListOperation : public QuantileOperation {
683
683
  auto &entry = target[idx];
684
684
  entry.offset = ridx;
685
685
  idx_t lower = 0;
686
- for (const auto &q : bind_data->order) {
687
- const auto &quantile = bind_data->quantiles[q];
688
- Interpolator<DISCRETE> interp(quantile, state->v.size(), bind_data->desc);
686
+ for (const auto &q : bind_data.order) {
687
+ const auto &quantile = bind_data.quantiles[q];
688
+ Interpolator<DISCRETE> interp(quantile, state->v.size(), bind_data.desc);
689
689
  interp.begin = lower;
690
690
  rdata[ridx + q] = interp.template Operation<typename STATE::SaveType, CHILD_TYPE>(v_t, result);
691
691
  lower = interp.FRN;
692
692
  }
693
- entry.length = bind_data->quantiles.size();
693
+ entry.length = bind_data.quantiles.size();
694
694
 
695
695
  ListVector::SetListSize(result_list, entry.offset + entry.length);
696
696
  }
@@ -700,7 +700,7 @@ struct QuantileListOperation : public QuantileOperation {
700
700
  AggregateInputData &aggr_input_data, STATE *state, const FrameBounds &frame,
701
701
  const FrameBounds &prev, Vector &list, idx_t lidx, idx_t bias) {
702
702
  D_ASSERT(aggr_input_data.bind_data);
703
- auto bind_data = (QuantileBindData *)aggr_input_data.bind_data;
703
+ auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
704
704
 
705
705
  QuantileIncluded included(fmask, dmask, bias);
706
706
 
@@ -709,7 +709,7 @@ struct QuantileListOperation : public QuantileOperation {
709
709
  auto &lmask = FlatVector::Validity(list);
710
710
  auto &lentry = ldata[lidx];
711
711
  lentry.offset = ListVector::GetListSize(list);
712
- lentry.length = bind_data->quantiles.size();
712
+ lentry.length = bind_data.quantiles.size();
713
713
 
714
714
  ListVector::Reserve(list, lentry.offset + lentry.length);
715
715
  ListVector::SetListSize(list, lentry.offset + lentry.length);
@@ -734,8 +734,8 @@ struct QuantileListOperation : public QuantileOperation {
734
734
  const auto j = ReplaceIndex(index, frame, prev);
735
735
  // We can only replace if the number of NULLs has not changed
736
736
  if (included.AllValid() || included(prev.first) == included(prev.second)) {
737
- for (const auto &q : bind_data->order) {
738
- const auto &quantile = bind_data->quantiles[q];
737
+ for (const auto &q : bind_data.order) {
738
+ const auto &quantile = bind_data.quantiles[q];
739
739
  Interpolator<DISCRETE> interp(quantile, prev_pos, false);
740
740
  const auto replace = CanReplace(index, data, j, interp.FRN, interp.CRN, included);
741
741
  if (replace < 0) {
@@ -765,8 +765,8 @@ struct QuantileListOperation : public QuantileOperation {
765
765
  if (state->pos) {
766
766
  using ID = QuantileIndirect<INPUT_TYPE>;
767
767
  ID indirect(data);
768
- for (const auto &q : bind_data->order) {
769
- const auto &quantile = bind_data->quantiles[q];
768
+ for (const auto &q : bind_data.order) {
769
+ const auto &quantile = bind_data.quantiles[q];
770
770
  Interpolator<DISCRETE> interp(quantile, state->pos, false);
771
771
  if (replaceable.first <= interp.FRN && interp.CRN <= replaceable.second) {
772
772
  rdata[lentry.offset + q] = interp.template Replace<idx_t, CHILD_TYPE, ID>(index, result, indirect);
@@ -66,9 +66,9 @@ struct ReservoirQuantileBindData : public FunctionData {
66
66
 
67
67
  static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const AggregateFunction &function) {
68
68
  D_ASSERT(bind_data_p);
69
- auto bind_data = (ReservoirQuantileBindData *)bind_data_p;
70
- writer.WriteList<double>(bind_data->quantiles);
71
- writer.WriteField<int32_t>(bind_data->sample_size);
69
+ auto &bind_data = bind_data_p->Cast<ReservoirQuantileBindData>();
70
+ writer.WriteList<double>(bind_data.quantiles);
71
+ writer.WriteField<int32_t>(bind_data.sample_size);
72
72
  }
73
73
 
74
74
  static unique_ptr<FunctionData> Deserialize(ClientContext &context, FieldReader &reader,
@@ -92,7 +92,7 @@ struct ReservoirQuantileOperation {
92
92
  }
93
93
 
94
94
  template <class INPUT_TYPE, class STATE, class OP>
95
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
95
+ static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
96
96
  ValidityMask &mask, idx_t count) {
97
97
  for (idx_t i = 0; i < count; i++) {
98
98
  Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
@@ -100,18 +100,17 @@ struct ReservoirQuantileOperation {
100
100
  }
101
101
 
102
102
  template <class INPUT_TYPE, class STATE, class OP>
103
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *data, ValidityMask &mask,
103
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *data, ValidityMask &mask,
104
104
  idx_t idx) {
105
- auto bind_data = (ReservoirQuantileBindData *)aggr_input_data.bind_data;
106
- D_ASSERT(bind_data);
105
+ auto &bind_data = aggr_input_data.bind_data->template Cast<ReservoirQuantileBindData>();
107
106
  if (state->pos == 0) {
108
- state->Resize(bind_data->sample_size);
107
+ state->Resize(bind_data.sample_size);
109
108
  }
110
109
  if (!state->r_samp) {
111
110
  state->r_samp = new BaseReservoirSampling();
112
111
  }
113
112
  D_ASSERT(state->v);
114
- state->FillReservoir(bind_data->sample_size, data[idx]);
113
+ state->FillReservoir(bind_data.sample_size, data[idx]);
115
114
  }
116
115
 
117
116
  template <class STATE, class OP>
@@ -157,10 +156,10 @@ struct ReservoirQuantileScalarOperation : public ReservoirQuantileOperation {
157
156
  }
158
157
  D_ASSERT(state->v);
159
158
  D_ASSERT(aggr_input_data.bind_data);
160
- auto bind_data = (ReservoirQuantileBindData *)aggr_input_data.bind_data;
159
+ auto &bind_data = aggr_input_data.bind_data->template Cast<ReservoirQuantileBindData>();
161
160
  auto v_t = state->v;
162
- D_ASSERT(bind_data->quantiles.size() == 1);
163
- auto offset = (idx_t)((double)(state->pos - 1) * bind_data->quantiles[0]);
161
+ D_ASSERT(bind_data.quantiles.size() == 1);
162
+ auto offset = (idx_t)((double)(state->pos - 1) * bind_data.quantiles[0]);
164
163
  std::nth_element(v_t, v_t + offset, v_t + state->pos);
165
164
  target[idx] = v_t[offset];
166
165
  }
@@ -217,11 +216,11 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
217
216
  }
218
217
 
219
218
  D_ASSERT(aggr_input_data.bind_data);
220
- auto bind_data = (ReservoirQuantileBindData *)aggr_input_data.bind_data;
219
+ auto &bind_data = aggr_input_data.bind_data->template Cast<ReservoirQuantileBindData>();
221
220
 
222
221
  auto &result = ListVector::GetEntry(result_list);
223
222
  auto ridx = ListVector::GetListSize(result_list);
224
- ListVector::Reserve(result_list, ridx + bind_data->quantiles.size());
223
+ ListVector::Reserve(result_list, ridx + bind_data.quantiles.size());
225
224
  auto rdata = FlatVector::GetData<CHILD_TYPE>(result);
226
225
 
227
226
  auto v_t = state->v;
@@ -229,9 +228,9 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
229
228
 
230
229
  auto &entry = target[idx];
231
230
  entry.offset = ridx;
232
- entry.length = bind_data->quantiles.size();
231
+ entry.length = bind_data.quantiles.size();
233
232
  for (size_t q = 0; q < entry.length; ++q) {
234
- const auto &quantile = bind_data->quantiles[q];
233
+ const auto &quantile = bind_data.quantiles[q];
235
234
  auto offset = (idx_t)((double)(state->pos - 1) * quantile);
236
235
  std::nth_element(v_t, v_t + offset, v_t + state->pos);
237
236
  rdata[ridx + q] = v_t[offset];
@@ -246,11 +245,11 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
246
245
  D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
247
246
 
248
247
  D_ASSERT(aggr_input_data.bind_data);
249
- auto bind_data = (ReservoirQuantileBindData *)aggr_input_data.bind_data;
248
+ auto &bind_data = aggr_input_data.bind_data->Cast<ReservoirQuantileBindData>();
250
249
 
251
250
  if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) {
252
251
  result.SetVectorType(VectorType::CONSTANT_VECTOR);
253
- ListVector::Reserve(result, bind_data->quantiles.size());
252
+ ListVector::Reserve(result, bind_data.quantiles.size());
254
253
 
255
254
  auto sdata = ConstantVector::GetData<STATE_TYPE *>(states);
256
255
  auto rdata = ConstantVector::GetData<RESULT_TYPE>(result);
@@ -259,7 +258,7 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
259
258
  } else {
260
259
  D_ASSERT(states.GetVectorType() == VectorType::FLAT_VECTOR);
261
260
  result.SetVectorType(VectorType::FLAT_VECTOR);
262
- ListVector::Reserve(result, (offset + count) * bind_data->quantiles.size());
261
+ ListVector::Reserve(result, (offset + count) * bind_data.quantiles.size());
263
262
 
264
263
  auto sdata = FlatVector::GetData<STATE_TYPE *>(states);
265
264
  auto rdata = FlatVector::GetData<RESULT_TYPE>(result);
@@ -18,7 +18,7 @@ struct HistogramFunctor {
18
18
  if (!state->hist) {
19
19
  state->hist = new MAP_TYPE();
20
20
  }
21
- auto value = (T *)input_data.data;
21
+ auto value = UnifiedVectorFormat::GetData<T>(input_data);
22
22
  (*state->hist)[value[input_data.sel->get_index(i)]]++;
23
23
  }
24
24
  }
@@ -33,16 +33,15 @@ struct HistogramFunctor {
33
33
  struct HistogramStringFunctor {
34
34
  template <class T, class MAP_TYPE = map<T, idx_t>>
35
35
  static void HistogramUpdate(UnifiedVectorFormat &sdata, UnifiedVectorFormat &input_data, idx_t count) {
36
-
37
36
  auto states = (HistogramAggState<T, MAP_TYPE> **)sdata.data;
37
+ auto input_strings = UnifiedVectorFormat::GetData<string_t>(input_data);
38
38
  for (idx_t i = 0; i < count; i++) {
39
39
  if (input_data.validity.RowIsValid(input_data.sel->get_index(i))) {
40
40
  auto state = states[sdata.sel->get_index(i)];
41
41
  if (!state->hist) {
42
42
  state->hist = new MAP_TYPE();
43
43
  }
44
- auto value = (string_t *)input_data.data;
45
- (*state->hist)[value[input_data.sel->get_index(i)].GetString()]++;
44
+ (*state->hist)[input_strings[input_data.sel->get_index(i)].GetString()]++;
46
45
  }
47
46
  }
48
47
  }
@@ -35,7 +35,7 @@ struct ListBindData : public FunctionData {
35
35
  }
36
36
 
37
37
  bool Equals(const FunctionData &other_p) const override {
38
- auto &other = (const ListBindData &)other_p;
38
+ auto &other = other_p.Cast<ListBindData>();
39
39
  return stype == other.stype;
40
40
  }
41
41
  };
@@ -80,7 +80,7 @@ static void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_d
80
80
  UnifiedVectorFormat sdata;
81
81
  state_vector.ToUnifiedFormat(count, sdata);
82
82
 
83
- auto states = (ListAggState **)sdata.data;
83
+ auto states = UnifiedVectorFormat::GetData<ListAggState *>(sdata);
84
84
  RecursiveFlatten(input, count);
85
85
 
86
86
  auto &list_bind_data = aggr_input_data.bind_data->Cast<ListBindData>();
@@ -94,7 +94,7 @@ static void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_d
94
94
  static void ListCombineFunction(Vector &state, Vector &combined, AggregateInputData &aggr_input_data, idx_t count) {
95
95
  UnifiedVectorFormat sdata;
96
96
  state.ToUnifiedFormat(count, sdata);
97
- auto states_ptr = (ListAggState **)sdata.data;
97
+ auto states_ptr = UnifiedVectorFormat::GetData<ListAggState *>(sdata);
98
98
 
99
99
  auto &list_bind_data = aggr_input_data.bind_data->Cast<ListBindData>();
100
100
 
@@ -125,7 +125,7 @@ static void ListFinalize(Vector &state_vector, AggregateInputData &aggr_input_da
125
125
  idx_t offset) {
126
126
  UnifiedVectorFormat sdata;
127
127
  state_vector.ToUnifiedFormat(count, sdata);
128
- auto states = (ListAggState **)sdata.data;
128
+ auto states = UnifiedVectorFormat::GetData<ListAggState *>(sdata);
129
129
 
130
130
  D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
131
131
 
@@ -37,8 +37,8 @@ struct RegrAvgFunction {
37
37
  };
38
38
  struct RegrAvgXFunction : RegrAvgFunction {
39
39
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
40
- static void Operation(STATE *state, AggregateInputData &, A_TYPE *x_data, B_TYPE *y_data, ValidityMask &amask,
41
- ValidityMask &bmask, idx_t xidx, idx_t yidx) {
40
+ static void Operation(STATE *state, AggregateInputData &, const A_TYPE *x_data, const B_TYPE *y_data,
41
+ ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
42
42
  state->sum += y_data[yidx];
43
43
  state->count++;
44
44
  }
@@ -46,8 +46,8 @@ struct RegrAvgXFunction : RegrAvgFunction {
46
46
 
47
47
  struct RegrAvgYFunction : RegrAvgFunction {
48
48
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
49
- static void Operation(STATE *state, AggregateInputData &, A_TYPE *x_data, B_TYPE *y_data, ValidityMask &amask,
50
- ValidityMask &bmask, idx_t xidx, idx_t yidx) {
49
+ static void Operation(STATE *state, AggregateInputData &, const A_TYPE *x_data, const B_TYPE *y_data,
50
+ ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
51
51
  state->sum += x_data[xidx];
52
52
  state->count++;
53
53
  }
@@ -23,7 +23,7 @@ struct RegrInterceptOperation {
23
23
  }
24
24
 
25
25
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
26
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
26
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
27
27
  ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
28
28
  state->count++;
29
29
  state->sum_x += y_data[yidx];
@@ -24,7 +24,7 @@ struct RegrR2Operation {
24
24
  }
25
25
 
26
26
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
27
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
27
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
28
28
  ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
29
29
  CorrOperation::Operation<A_TYPE, B_TYPE, CorrState, OP>(&state->corr, aggr_input_data, y_data, x_data, bmask,
30
30
  amask, yidx, xidx);
@@ -49,7 +49,7 @@ struct RegrBaseOperation {
49
49
 
50
50
  struct RegrSXXOperation : RegrBaseOperation {
51
51
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
52
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
52
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
53
53
  ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
54
54
  RegrCountFunction::Operation<A_TYPE, B_TYPE, size_t, OP>(&state->count, aggr_input_data, y_data, x_data, bmask,
55
55
  amask, yidx, xidx);
@@ -59,7 +59,7 @@ struct RegrSXXOperation : RegrBaseOperation {
59
59
 
60
60
  struct RegrSYYOperation : RegrBaseOperation {
61
61
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
62
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
62
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
63
63
  ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
64
64
  RegrCountFunction::Operation<A_TYPE, B_TYPE, size_t, OP>(&state->count, aggr_input_data, y_data, x_data, bmask,
65
65
  amask, yidx, xidx);
@@ -20,7 +20,7 @@ struct RegrSXYOperation {
20
20
  }
21
21
 
22
22
  template <class A_TYPE, class B_TYPE, class STATE, class OP>
23
- static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
23
+ static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
24
24
  ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
25
25
  RegrCountFunction::Operation<A_TYPE, B_TYPE, size_t, OP>(&state->count, aggr_input_data, y_data, x_data, bmask,
26
26
  amask, yidx, xidx);
@@ -18,7 +18,7 @@ struct Base64DecodeOperator {
18
18
  static RESULT_TYPE Operation(INPUT_TYPE input, Vector &result) {
19
19
  auto result_size = Blob::FromBase64Size(input);
20
20
  auto result_blob = StringVector::EmptyString(result, result_size);
21
- Blob::FromBase64(input, (data_ptr_t)result_blob.GetDataWriteable(), result_size);
21
+ Blob::FromBase64(input, data_ptr_cast(result_blob.GetDataWriteable()), result_size);
22
22
  result_blob.Finalize();
23
23
  return result_blob;
24
24
  }