duckdb 0.8.1-dev0.0 → 0.8.1-dev125.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 (564) 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 +57 -52
  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/decode_utils.hpp +6 -0
  14. package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
  15. package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
  16. package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
  17. package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
  18. package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
  19. package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
  20. package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
  21. package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
  22. package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
  23. package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
  24. package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
  25. package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
  26. package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
  27. package/src/duckdb/src/catalog/catalog.cpp +5 -8
  28. package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +113 -0
  29. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
  30. package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
  31. package/src/duckdb/src/catalog/catalog_search_path.cpp +32 -12
  32. package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
  33. package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
  34. package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
  35. package/src/duckdb/src/common/adbc/adbc.cpp +183 -94
  36. package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -2
  37. package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
  38. package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
  39. package/src/duckdb/src/common/checksum.cpp +1 -1
  40. package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
  41. package/src/duckdb/src/common/crypto/md5.cpp +9 -9
  42. package/src/duckdb/src/common/exception.cpp +4 -1
  43. package/src/duckdb/src/common/exception_format_value.cpp +19 -14
  44. package/src/duckdb/src/common/field_writer.cpp +1 -1
  45. package/src/duckdb/src/common/file_system.cpp +15 -2
  46. package/src/duckdb/src/common/fsst.cpp +11 -6
  47. package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
  48. package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
  49. package/src/duckdb/src/common/local_file_system.cpp +11 -11
  50. package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
  51. package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
  52. package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
  53. package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
  54. package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
  55. package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
  56. package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
  57. package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
  58. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
  59. package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
  60. package/src/duckdb/src/common/serializer.cpp +1 -1
  61. package/src/duckdb/src/common/sort/comparators.cpp +1 -1
  62. package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
  63. package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
  64. package/src/duckdb/src/common/types/bit.cpp +5 -5
  65. package/src/duckdb/src/common/types/blob.cpp +8 -8
  66. package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
  67. package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
  68. package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
  69. package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
  70. package/src/duckdb/src/common/types/hash.cpp +2 -2
  71. package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
  72. package/src/duckdb/src/common/types/list_segment.cpp +77 -49
  73. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
  74. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
  75. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
  76. package/src/duckdb/src/common/types/string_heap.cpp +1 -1
  77. package/src/duckdb/src/common/types/value.cpp +2 -2
  78. package/src/duckdb/src/common/types/vector.cpp +101 -101
  79. package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
  80. package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
  81. package/src/duckdb/src/common/types.cpp +44 -33
  82. package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
  83. package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
  84. package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
  85. package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
  86. package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
  87. package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
  88. package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
  89. package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
  90. package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
  91. package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +43 -43
  92. package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
  93. package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
  94. package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
  95. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
  96. package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
  97. package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
  98. package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
  99. package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
  100. package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
  101. package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
  102. package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +83 -119
  103. package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
  104. package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
  105. package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
  106. package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
  107. package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
  108. package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
  109. package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
  110. package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
  111. package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
  112. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +45 -45
  113. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
  114. package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
  115. package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
  116. package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
  117. package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +3 -3
  118. package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
  119. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
  120. package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
  121. package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
  122. package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
  123. package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
  124. package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +1 -1
  125. package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
  126. package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
  127. package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
  128. package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
  129. package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
  130. package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
  131. package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
  132. package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
  133. package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
  134. package/src/duckdb/src/execution/expression_executor.cpp +33 -28
  135. package/src/duckdb/src/execution/index/art/art.cpp +30 -32
  136. package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
  137. package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
  138. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
  139. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
  140. package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
  141. package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
  142. package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
  143. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
  144. package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
  145. package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
  146. package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
  147. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
  148. package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
  149. package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
  150. package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
  151. package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
  152. package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
  153. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
  154. package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
  155. package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +2 -0
  156. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
  157. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
  158. package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
  159. package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
  160. package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -3
  161. package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
  162. package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
  163. package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
  164. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
  165. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
  166. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
  167. package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
  168. package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
  169. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
  170. package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
  171. package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
  172. package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
  173. package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
  174. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
  175. package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
  176. package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
  177. package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
  178. package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
  179. package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
  180. package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
  181. package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
  182. package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
  183. package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -3
  184. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
  185. package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
  186. package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
  187. package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
  188. package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
  189. package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
  190. package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
  191. package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
  192. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +25 -23
  193. package/src/duckdb/src/function/scalar_function.cpp +3 -3
  194. package/src/duckdb/src/function/table/arrow.cpp +4 -4
  195. package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
  196. package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
  197. package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
  198. package/src/duckdb/src/function/table/glob.cpp +1 -1
  199. package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
  200. package/src/duckdb/src/function/table/range.cpp +4 -4
  201. package/src/duckdb/src/function/table/read_csv.cpp +4 -7
  202. package/src/duckdb/src/function/table/repeat.cpp +2 -2
  203. package/src/duckdb/src/function/table/repeat_row.cpp +2 -2
  204. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
  205. package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
  206. package/src/duckdb/src/function/table/table_scan.cpp +2 -2
  207. package/src/duckdb/src/function/table/unnest.cpp +1 -1
  208. package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
  209. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -2
  210. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
  211. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +6 -0
  212. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
  213. package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +6 -2
  214. package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
  215. package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
  216. package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
  217. package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
  218. package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
  219. package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
  220. package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
  221. package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
  222. package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
  223. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
  224. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
  225. package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
  226. package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
  227. package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
  228. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
  229. package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
  230. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
  231. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
  232. package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
  233. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
  234. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
  235. package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
  236. package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
  237. package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
  238. package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
  239. package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
  240. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
  241. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
  242. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
  243. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
  244. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
  245. package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
  246. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
  247. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -3
  248. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
  249. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
  250. package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
  251. package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
  252. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +8 -29
  253. package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
  254. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
  255. package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
  256. package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
  257. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
  258. package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
  259. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
  260. package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
  261. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
  262. package/src/duckdb/src/include/duckdb/function/table_function.hpp +6 -6
  263. package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
  264. package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
  265. package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
  266. package/src/duckdb/src/include/duckdb/main/query_result.hpp +17 -0
  267. package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
  268. package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
  269. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
  270. package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
  271. package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
  272. package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
  273. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
  274. package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
  275. package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
  276. package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
  277. package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
  278. package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
  279. package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
  280. package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
  281. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
  282. package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
  283. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
  284. package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
  285. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
  286. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
  287. package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
  288. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
  289. package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
  290. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
  291. package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
  292. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
  293. package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
  294. package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
  295. package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
  296. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
  297. package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +1 -1
  298. package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
  299. package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
  300. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +1 -1
  301. package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
  302. package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
  303. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
  304. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +107 -91
  305. package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +1 -1
  306. package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
  307. package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
  308. package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +34 -1
  309. package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
  310. package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
  311. package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
  312. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
  313. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
  314. package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
  315. package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
  316. package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
  317. package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
  318. package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
  319. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
  320. package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
  321. package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
  322. package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
  323. package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
  324. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
  325. package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
  326. package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
  327. package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
  328. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
  329. package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
  330. package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
  331. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -2
  332. package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
  333. package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
  334. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
  335. package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
  336. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
  337. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
  338. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
  339. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
  340. package/src/duckdb/src/include/duckdb/storage/index.hpp +2 -2
  341. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
  342. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
  343. package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
  344. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
  345. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
  346. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
  347. package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
  348. package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
  349. package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
  350. package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
  351. package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
  352. package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
  353. package/src/duckdb/src/main/capi/config-c.cpp +1 -1
  354. package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
  355. package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
  356. package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
  357. package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
  358. package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
  359. package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
  360. package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
  361. package/src/duckdb/src/main/capi/result-c.cpp +23 -23
  362. package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
  363. package/src/duckdb/src/main/client_context.cpp +3 -3
  364. package/src/duckdb/src/main/database_manager.cpp +1 -1
  365. package/src/duckdb/src/main/error_manager.cpp +1 -1
  366. package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
  367. package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
  368. package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
  369. package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
  370. package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
  371. package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
  372. package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
  373. package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
  374. package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
  375. package/src/duckdb/src/main/relation.cpp +1 -1
  376. package/src/duckdb/src/main/settings/settings.cpp +2 -2
  377. package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
  378. package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
  379. package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
  380. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
  381. package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +4 -7
  382. package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
  383. package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
  384. package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
  385. package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
  386. package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
  387. package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
  388. package/src/duckdb/src/parallel/executor.cpp +1 -1
  389. package/src/duckdb/src/parser/base_expression.cpp +2 -5
  390. package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
  391. package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
  392. package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
  393. package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
  394. package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
  395. package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
  396. package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
  397. package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
  398. package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
  399. package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
  400. package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
  401. package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
  402. package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
  403. package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
  404. package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
  405. package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
  406. package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
  407. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
  408. package/src/duckdb/src/parser/parser.cpp +3 -3
  409. package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
  410. package/src/duckdb/src/parser/query_node.cpp +7 -6
  411. package/src/duckdb/src/parser/result_modifier.cpp +25 -18
  412. package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
  413. package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
  414. package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
  415. package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
  416. package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
  417. package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
  418. package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
  419. package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
  420. package/src/duckdb/src/parser/tableref.cpp +12 -3
  421. package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
  422. package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
  423. package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
  424. package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
  425. package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
  426. package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
  427. package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
  428. package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
  429. package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
  430. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
  431. package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
  432. package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
  433. package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
  434. package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
  435. package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
  436. package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
  437. package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
  438. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
  439. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
  440. package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
  441. package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
  442. package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
  443. package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
  444. package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
  445. package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
  446. package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
  447. package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
  448. package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
  449. package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +3 -4
  450. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
  451. package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
  452. package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
  453. package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
  454. package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
  455. package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
  456. package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
  457. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
  458. package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
  459. package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
  460. package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -22
  461. package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
  462. package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
  463. package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
  464. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
  465. package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
  466. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
  467. package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
  468. package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
  469. package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
  470. package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
  471. package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
  472. package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
  473. package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
  474. package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
  475. package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
  476. package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
  477. package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
  478. package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
  479. package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
  480. package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
  481. package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
  482. package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
  483. package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +27 -27
  484. package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
  485. package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
  486. package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
  487. package/src/duckdb/src/parser/transformer.cpp +46 -46
  488. package/src/duckdb/src/planner/bind_context.cpp +6 -6
  489. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
  490. package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
  491. package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
  492. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
  493. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +8 -8
  494. package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
  495. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +13 -5
  496. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
  497. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
  498. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +1 -1
  499. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +14 -7
  500. package/src/duckdb/src/planner/binder.cpp +1 -1
  501. package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
  502. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
  503. package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
  504. package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
  505. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
  506. package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
  507. package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
  508. package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
  509. package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
  510. package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
  511. package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
  512. package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
  513. package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
  514. package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
  515. package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
  516. package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
  517. package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
  518. package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
  519. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
  520. package/src/duckdb/src/planner/expression.cpp +15 -0
  521. package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
  522. package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
  523. package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
  524. package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
  525. package/src/duckdb/src/planner/logical_operator.cpp +3 -4
  526. package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
  527. package/src/duckdb/src/planner/table_filter.cpp +1 -1
  528. package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
  529. package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
  530. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
  531. package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
  532. package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
  533. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
  534. package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
  535. package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
  536. package/src/duckdb/src/storage/compression/rle.cpp +8 -8
  537. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
  538. package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
  539. package/src/duckdb/src/storage/data_table.cpp +2 -2
  540. package/src/duckdb/src/storage/index.cpp +1 -3
  541. package/src/duckdb/src/storage/local_storage.cpp +2 -1
  542. package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
  543. package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
  544. package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
  545. package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
  546. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
  547. package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
  548. package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
  549. package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
  550. package/src/duckdb/src/storage/table/list_column_data.cpp +8 -7
  551. package/src/duckdb/src/storage/table/row_group.cpp +4 -4
  552. package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
  553. package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
  554. package/src/duckdb/src/storage/wal_replay.cpp +1 -1
  555. package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
  556. package/src/duckdb/src/transaction/commit_state.cpp +8 -8
  557. package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
  558. package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
  559. package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
  560. package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
  561. package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
  562. package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
  563. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +13479 -13564
  564. package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
@@ -14,9 +14,9 @@ struct FirstState {
14
14
 
15
15
  struct FirstFunctionBase {
16
16
  template <class STATE>
17
- static void Initialize(STATE *state) {
18
- state->is_set = false;
19
- state->is_null = false;
17
+ static void Initialize(STATE &state) {
18
+ state.is_set = false;
19
+ state.is_null = false;
20
20
  }
21
21
 
22
22
  static bool IgnoreNull() {
@@ -27,40 +27,40 @@ 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) {
31
- if (LAST || !state->is_set) {
32
- if (!mask.RowIsValid(idx)) {
30
+ static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input) {
31
+ if (LAST || !state.is_set) {
32
+ if (!unary_input.RowIsValid()) {
33
33
  if (!SKIP_NULLS) {
34
- state->is_set = true;
34
+ state.is_set = true;
35
35
  }
36
- state->is_null = true;
36
+ state.is_null = true;
37
37
  } else {
38
- state->is_set = true;
39
- state->is_null = false;
40
- state->value = input[idx];
38
+ state.is_set = true;
39
+ state.is_null = false;
40
+ state.value = input;
41
41
  }
42
42
  }
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,
47
- ValidityMask &mask, idx_t count) {
48
- Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
46
+ static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
47
+ idx_t count) {
48
+ Operation<INPUT_TYPE, STATE, OP>(state, input, unary_input);
49
49
  }
50
50
 
51
51
  template <class STATE, class OP>
52
- static void Combine(const STATE &source, STATE *target, AggregateInputData &) {
53
- if (!target->is_set) {
54
- *target = source;
52
+ static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
53
+ if (!target.is_set) {
54
+ target = source;
55
55
  }
56
56
  }
57
57
 
58
58
  template <class T, class STATE>
59
- static void Finalize(Vector &result, AggregateInputData &, STATE *state, T *target, ValidityMask &mask, idx_t idx) {
60
- if (!state->is_set || state->is_null) {
61
- mask.SetInvalid(idx);
59
+ static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
60
+ if (!state.is_set || state.is_null) {
61
+ finalize_data.ReturnNull();
62
62
  } else {
63
- target[idx] = state->value;
63
+ target = state.value;
64
64
  }
65
65
  }
66
66
  };
@@ -68,65 +68,64 @@ struct FirstFunction : public FirstFunctionBase {
68
68
  template <bool LAST, bool SKIP_NULLS>
69
69
  struct FirstFunctionString : public FirstFunctionBase {
70
70
  template <class STATE>
71
- static void SetValue(STATE *state, AggregateInputData &input_data, string_t value, bool is_null) {
72
- if (LAST && state->is_set) {
73
- Destroy(input_data, state);
71
+ static void SetValue(STATE &state, AggregateInputData &input_data, string_t value, bool is_null) {
72
+ if (LAST && state.is_set) {
73
+ Destroy(state, input_data);
74
74
  }
75
75
  if (is_null) {
76
76
  if (!SKIP_NULLS) {
77
- state->is_set = true;
78
- state->is_null = true;
77
+ state.is_set = true;
78
+ state.is_null = true;
79
79
  }
80
80
  } else {
81
- state->is_set = true;
82
- state->is_null = false;
81
+ state.is_set = true;
82
+ state.is_null = false;
83
83
  if (value.IsInlined()) {
84
- state->value = value;
84
+ state.value = value;
85
85
  } else {
86
86
  // non-inlined string, need to allocate space for it
87
87
  auto len = value.GetSize();
88
88
  auto ptr = new char[len];
89
89
  memcpy(ptr, value.GetData(), len);
90
90
 
91
- state->value = string_t(ptr, len);
91
+ state.value = string_t(ptr, len);
92
92
  }
93
93
  }
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,
98
- idx_t idx) {
99
- if (LAST || !state->is_set) {
100
- SetValue(state, input_data, input[idx], !mask.RowIsValid(idx));
97
+ static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input) {
98
+ if (LAST || !state.is_set) {
99
+ SetValue(state, unary_input.input, input, !unary_input.RowIsValid());
101
100
  }
102
101
  }
103
102
 
104
103
  template <class INPUT_TYPE, class STATE, class OP>
105
- static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
106
- ValidityMask &mask, idx_t count) {
107
- Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
104
+ static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
105
+ idx_t count) {
106
+ Operation<INPUT_TYPE, STATE, OP>(state, input, unary_input);
108
107
  }
109
108
 
110
109
  template <class STATE, class OP>
111
- static void Combine(const STATE &source, STATE *target, AggregateInputData &input_data) {
112
- if (source.is_set && (LAST || !target->is_set)) {
110
+ static void Combine(const STATE &source, STATE &target, AggregateInputData &input_data) {
111
+ if (source.is_set && (LAST || !target.is_set)) {
113
112
  SetValue(target, input_data, source.value, source.is_null);
114
113
  }
115
114
  }
116
115
 
117
116
  template <class T, class STATE>
118
- static void Finalize(Vector &result, AggregateInputData &, STATE *state, T *target, ValidityMask &mask, idx_t idx) {
119
- if (!state->is_set || state->is_null) {
120
- mask.SetInvalid(idx);
117
+ static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
118
+ if (!state.is_set || state.is_null) {
119
+ finalize_data.ReturnNull();
121
120
  } else {
122
- target[idx] = StringVector::AddStringOrBlob(result, state->value);
121
+ target = StringVector::AddStringOrBlob(finalize_data.result, state.value);
123
122
  }
124
123
  }
125
124
 
126
125
  template <class STATE>
127
- static void Destroy(AggregateInputData &aggr_input_data, STATE *state) {
128
- if (state->is_set && !state->is_null && !state->value.IsInlined()) {
129
- delete[] state->value.GetData();
126
+ static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
127
+ if (state.is_set && !state.is_null && !state.value.IsInlined()) {
128
+ delete[] state.value.GetData();
130
129
  }
131
130
  }
132
131
  };
@@ -138,14 +137,14 @@ struct FirstStateVector {
138
137
  template <bool LAST, bool SKIP_NULLS>
139
138
  struct FirstVectorFunction {
140
139
  template <class STATE>
141
- static void Initialize(STATE *state) {
142
- state->value = nullptr;
140
+ static void Initialize(STATE &state) {
141
+ state.value = nullptr;
143
142
  }
144
143
 
145
144
  template <class STATE>
146
- static void Destroy(AggregateInputData &aggr_input_data, STATE *state) {
147
- if (state->value) {
148
- delete state->value;
145
+ static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
146
+ if (state.value) {
147
+ delete state.value;
149
148
  }
150
149
  }
151
150
  static bool IgnoreNull() {
@@ -153,14 +152,14 @@ struct FirstVectorFunction {
153
152
  }
154
153
 
155
154
  template <class STATE>
156
- static void SetValue(STATE *state, Vector &input, const idx_t idx) {
157
- if (!state->value) {
158
- state->value = new Vector(input.GetType());
159
- state->value->SetVectorType(VectorType::CONSTANT_VECTOR);
155
+ static void SetValue(STATE &state, Vector &input, const idx_t idx) {
156
+ if (!state.value) {
157
+ state.value = new Vector(input.GetType());
158
+ state.value->SetVectorType(VectorType::CONSTANT_VECTOR);
160
159
  }
161
160
  sel_t selv = idx;
162
161
  SelectionVector sel(&selv);
163
- VectorOperations::Copy(input, *state->value, sel, 1, 0, 0);
162
+ VectorOperations::Copy(input, *state.value, sel, 1, 0, 0);
164
163
  }
165
164
 
166
165
  static void Update(Vector inputs[], AggregateInputData &, idx_t input_count, Vector &state_vector, idx_t count) {
@@ -171,39 +170,32 @@ struct FirstVectorFunction {
171
170
  UnifiedVectorFormat sdata;
172
171
  state_vector.ToUnifiedFormat(count, sdata);
173
172
 
174
- auto states = (FirstStateVector **)sdata.data;
173
+ auto states = UnifiedVectorFormat::GetData<FirstStateVector *>(sdata);
175
174
  for (idx_t i = 0; i < count; i++) {
176
175
  const auto idx = idata.sel->get_index(i);
177
176
  if (SKIP_NULLS && !idata.validity.RowIsValid(idx)) {
178
177
  continue;
179
178
  }
180
- auto state = states[sdata.sel->get_index(i)];
181
- if (LAST || !state->value) {
179
+ auto &state = *states[sdata.sel->get_index(i)];
180
+ if (LAST || !state.value) {
182
181
  SetValue(state, input, i);
183
182
  }
184
183
  }
185
184
  }
186
185
 
187
186
  template <class STATE, class OP>
188
- static void Combine(const STATE &source, STATE *target, AggregateInputData &) {
189
- if (source.value && (LAST || !target->value)) {
187
+ static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
188
+ if (source.value && (LAST || !target.value)) {
190
189
  SetValue(target, *source.value, 0);
191
190
  }
192
191
  }
193
192
 
194
- template <class T, class STATE>
195
- static void Finalize(Vector &result, AggregateInputData &, STATE *state, T *target, ValidityMask &mask, idx_t idx) {
196
- if (!state->value) {
197
- // we need to use FlatVector::SetNull here
198
- // since for STRUCT columns only setting the validity mask of the struct is incorrect
199
- // as for a struct column, we need to also set ALL child columns to NULL
200
- if (result.GetVectorType() == VectorType::CONSTANT_VECTOR) {
201
- ConstantVector::SetNull(result, true);
202
- } else {
203
- FlatVector::SetNull(result, idx, true);
204
- }
193
+ template <class STATE>
194
+ static void Finalize(STATE &state, AggregateFinalizeData &finalize_data) {
195
+ if (!state.value) {
196
+ finalize_data.ReturnNull();
205
197
  } else {
206
- VectorOperations::Copy(*state->value, result, 1, 0, idx);
198
+ VectorOperations::Copy(*state.value, finalize_data.result, 1, 0, finalize_data.result_idx);
207
199
  }
208
200
  }
209
201
 
@@ -289,7 +281,7 @@ static AggregateFunction GetFirstFunction(const LogicalType &type) {
289
281
  return AggregateFunction({type}, type, AggregateFunction::StateSize<FirstStateVector>,
290
282
  AggregateFunction::StateInitialize<FirstStateVector, OP>, OP::Update,
291
283
  AggregateFunction::StateCombine<FirstStateVector, OP>,
292
- AggregateFunction::StateFinalize<FirstStateVector, void, OP>, nullptr, OP::Bind,
284
+ AggregateFunction::StateVoidFinalize<FirstStateVector, OP>, nullptr, OP::Bind,
293
285
  AggregateFunction::StateDestroy<FirstStateVector, OP>, nullptr, nullptr);
294
286
  }
295
287
  }
@@ -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;
@@ -253,13 +253,13 @@ struct SortedAggregateState {
253
253
 
254
254
  struct SortedAggregateFunction {
255
255
  template <typename STATE>
256
- static void Initialize(STATE *state) {
257
- new (state) STATE();
256
+ static void Initialize(STATE &state) {
257
+ new (&state) STATE();
258
258
  }
259
259
 
260
260
  template <typename STATE>
261
- static void Destroy(AggregateInputData &aggr_input_data, STATE *state) {
262
- state->~STATE();
261
+ static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
262
+ state.~STATE();
263
263
  }
264
264
 
265
265
  static void ProjectInputs(Vector inputs[], const SortedAggregateBindData &order_bind, idx_t input_count,
@@ -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];
@@ -345,10 +345,10 @@ struct SortedAggregateFunction {
345
345
  }
346
346
 
347
347
  template <class STATE, class OP>
348
- static void Combine(const STATE &source, STATE *target, AggregateInputData &aggr_input_data) {
349
- const auto order_bind = (SortedAggregateBindData *)aggr_input_data.bind_data;
348
+ static void Combine(const STATE &source, STATE &target, AggregateInputData &aggr_input_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);
@@ -32,7 +32,7 @@ void ListExtractTemplate(idx_t count, UnifiedVectorFormat &list_data, UnifiedVec
32
32
 
33
33
  // this is lifted from ExecuteGenericLoop because we can't push the list child data into this otherwise
34
34
  // should have gone with GetValue perhaps
35
- auto child_data = (T *)child_format.data;
35
+ auto child_data = UnifiedVectorFormat::GetData<T>(child_format);
36
36
  for (idx_t i = 0; i < count; i++) {
37
37
  auto list_index = list_data.sel->get_index(i);
38
38
  auto offsets_index = offsets_data.sel->get_index(i);
@@ -44,8 +44,8 @@ void ListExtractTemplate(idx_t count, UnifiedVectorFormat &list_data, UnifiedVec
44
44
  result_mask.SetInvalid(i);
45
45
  continue;
46
46
  }
47
- auto list_entry = ((list_entry_t *)list_data.data)[list_index];
48
- auto offsets_entry = ((int64_t *)offsets_data.data)[offsets_index];
47
+ auto list_entry = (UnifiedVectorFormat::GetData<list_entry_t>(list_data))[list_index];
48
+ auto offsets_entry = (UnifiedVectorFormat::GetData<int64_t>(offsets_data))[offsets_index];
49
49
 
50
50
  // 1-based indexing
51
51
  if (offsets_entry == 0) {
@@ -249,9 +249,8 @@ unique_ptr<FunctionData> BindDecimalAddSubtract(ClientContext &context, ScalarFu
249
249
 
250
250
  static void SerializeDecimalArithmetic(FieldWriter &writer, const FunctionData *bind_data_p,
251
251
  const ScalarFunction &function) {
252
- D_ASSERT(bind_data_p);
253
- auto bind_data = (DecimalArithmeticBindData *)bind_data_p;
254
- writer.WriteField(bind_data->check_overflow);
252
+ auto &bind_data = bind_data_p->Cast<DecimalArithmeticBindData>();
253
+ writer.WriteField(bind_data.check_overflow);
255
254
  writer.WriteSerializable(function.return_type);
256
255
  writer.WriteRegularSerializableList(function.arguments);
257
256
  }
@@ -31,7 +31,7 @@ static void ConcatFunction(DataChunk &args, ExpressionState &state, Vector &resu
31
31
  UnifiedVectorFormat vdata;
32
32
  input.ToUnifiedFormat(args.size(), vdata);
33
33
 
34
- auto input_data = (string_t *)vdata.data;
34
+ auto input_data = UnifiedVectorFormat::GetData<string_t>(vdata);
35
35
  // now add the length of each vector to the result length
36
36
  for (idx_t i = 0; i < args.size(); i++) {
37
37
  auto idx = vdata.sel->get_index(i);
@@ -77,7 +77,7 @@ static void ConcatFunction(DataChunk &args, ExpressionState &state, Vector &resu
77
77
  UnifiedVectorFormat idata;
78
78
  input.ToUnifiedFormat(args.size(), idata);
79
79
 
80
- auto input_data = (string_t *)idata.data;
80
+ auto input_data = UnifiedVectorFormat::GetData<string_t>(idata);
81
81
  for (idx_t i = 0; i < args.size(); i++) {
82
82
  auto idx = idata.sel->get_index(i);
83
83
  if (!idata.validity.RowIsValid(idx)) {
@@ -114,7 +114,7 @@ static void ConcatOperator(DataChunk &args, ExpressionState &state, Vector &resu
114
114
  });
115
115
  }
116
116
 
117
- static void TemplatedConcatWS(DataChunk &args, string_t *sep_data, const SelectionVector &sep_sel,
117
+ static void TemplatedConcatWS(DataChunk &args, const string_t *sep_data, const SelectionVector &sep_sel,
118
118
  const SelectionVector &rsel, idx_t count, Vector &result) {
119
119
  vector<idx_t> result_lengths(args.size(), 0);
120
120
  vector<bool> has_results(args.size(), false);
@@ -127,7 +127,7 @@ static void TemplatedConcatWS(DataChunk &args, string_t *sep_data, const Selecti
127
127
  for (idx_t col_idx = 1; col_idx < args.ColumnCount(); col_idx++) {
128
128
  auto &idata = orrified_data[col_idx - 1];
129
129
 
130
- auto input_data = (string_t *)idata.data;
130
+ auto input_data = UnifiedVectorFormat::GetData<string_t>(idata);
131
131
  for (idx_t i = 0; i < count; i++) {
132
132
  auto ridx = rsel.get_index(i);
133
133
  auto sep_idx = sep_sel.get_index(ridx);
@@ -157,7 +157,7 @@ static void TemplatedConcatWS(DataChunk &args, string_t *sep_data, const Selecti
157
157
  // now that the empty space for the strings has been allocated, perform the concatenation
158
158
  for (idx_t col_idx = 1; col_idx < args.ColumnCount(); col_idx++) {
159
159
  auto &idata = orrified_data[col_idx - 1];
160
- auto input_data = (string_t *)idata.data;
160
+ auto input_data = UnifiedVectorFormat::GetData<string_t>(idata);
161
161
  for (idx_t i = 0; i < count; i++) {
162
162
  auto ridx = rsel.get_index(i);
163
163
  auto sep_idx = sep_sel.get_index(ridx);
@@ -206,7 +206,7 @@ static void ConcatWSFunction(DataChunk &args, ExpressionState &state, Vector &re
206
206
  }
207
207
  // no null values
208
208
  auto sel = FlatVector::IncrementalSelectionVector();
209
- TemplatedConcatWS(args, (string_t *)vdata.data, *vdata.sel, *sel, args.size(), result);
209
+ TemplatedConcatWS(args, UnifiedVectorFormat::GetData<string_t>(vdata), *vdata.sel, *sel, args.size(), result);
210
210
  return;
211
211
  }
212
212
  default: {
@@ -221,7 +221,8 @@ static void ConcatWSFunction(DataChunk &args, ExpressionState &state, Vector &re
221
221
  not_null_vector.set_index(not_null_count++, i);
222
222
  }
223
223
  }
224
- TemplatedConcatWS(args, (string_t *)vdata.data, *vdata.sel, not_null_vector, not_null_count, result);
224
+ TemplatedConcatWS(args, UnifiedVectorFormat::GetData<string_t>(vdata), *vdata.sel, not_null_vector,
225
+ not_null_count, result);
225
226
  return;
226
227
  }
227
228
  }
@@ -106,9 +106,9 @@ idx_t ContainsFun::Find(const unsigned char *haystack, idx_t haystack_size, cons
106
106
  if (location == nullptr) {
107
107
  return DConstants::INVALID_INDEX;
108
108
  }
109
- idx_t base_offset = (const unsigned char *)location - haystack;
109
+ idx_t base_offset = const_uchar_ptr_cast(location) - haystack;
110
110
  haystack_size -= base_offset;
111
- haystack = (const unsigned char *)location;
111
+ haystack = const_uchar_ptr_cast(location);
112
112
  // switch algorithm depending on needle size
113
113
  switch (needle_size) {
114
114
  case 1:
@@ -133,9 +133,9 @@ idx_t ContainsFun::Find(const unsigned char *haystack, idx_t haystack_size, cons
133
133
  }
134
134
 
135
135
  idx_t ContainsFun::Find(const string_t &haystack_s, const string_t &needle_s) {
136
- auto haystack = (const unsigned char *)haystack_s.GetData();
136
+ auto haystack = const_uchar_ptr_cast(haystack_s.GetData());
137
137
  auto haystack_size = haystack_s.GetSize();
138
- auto needle = (const unsigned char *)needle_s.GetData();
138
+ auto needle = const_uchar_ptr_cast(needle_s.GetData());
139
139
  auto needle_size = needle_s.GetSize();
140
140
  if (needle_size == 0) {
141
141
  // empty needle: always true