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
@@ -4,27 +4,32 @@
4
4
  #include "fsst.h"
5
5
 
6
6
  namespace duckdb {
7
- string_t FSSTPrimitives::DecompressValue(void *duckdb_fsst_decoder, Vector &result, unsigned char *compressed_string,
7
+
8
+ string_t FSSTPrimitives::DecompressValue(void *duckdb_fsst_decoder, Vector &result, const char *compressed_string,
8
9
  idx_t compressed_string_len) {
9
10
  D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR);
10
11
  unsigned char decompress_buffer[StringUncompressed::STRING_BLOCK_LIMIT + 1];
12
+ auto fsst_decoder = reinterpret_cast<duckdb_fsst_decoder_t *>(duckdb_fsst_decoder);
13
+ auto compressed_string_ptr = (unsigned char *)compressed_string; // NOLINT
11
14
  auto decompressed_string_size =
12
- duckdb_fsst_decompress((duckdb_fsst_decoder_t *)duckdb_fsst_decoder, compressed_string_len, compressed_string,
15
+ duckdb_fsst_decompress(fsst_decoder, compressed_string_len, compressed_string_ptr,
13
16
  StringUncompressed::STRING_BLOCK_LIMIT + 1, &decompress_buffer[0]);
14
17
  D_ASSERT(decompressed_string_size <= StringUncompressed::STRING_BLOCK_LIMIT);
15
18
 
16
- return StringVector::AddStringOrBlob(result, (const char *)decompress_buffer, decompressed_string_size);
19
+ return StringVector::AddStringOrBlob(result, const_char_ptr_cast(decompress_buffer), decompressed_string_size);
17
20
  }
18
21
 
19
- Value FSSTPrimitives::DecompressValue(void *duckdb_fsst_decoder, unsigned char *compressed_string,
22
+ Value FSSTPrimitives::DecompressValue(void *duckdb_fsst_decoder, const char *compressed_string,
20
23
  idx_t compressed_string_len) {
21
24
  unsigned char decompress_buffer[StringUncompressed::STRING_BLOCK_LIMIT + 1];
25
+ auto compressed_string_ptr = (unsigned char *)compressed_string; // NOLINT
26
+ auto fsst_decoder = reinterpret_cast<duckdb_fsst_decoder_t *>(duckdb_fsst_decoder);
22
27
  auto decompressed_string_size =
23
- duckdb_fsst_decompress((duckdb_fsst_decoder_t *)duckdb_fsst_decoder, compressed_string_len, compressed_string,
28
+ duckdb_fsst_decompress(fsst_decoder, compressed_string_len, compressed_string_ptr,
24
29
  StringUncompressed::STRING_BLOCK_LIMIT + 1, &decompress_buffer[0]);
25
30
  D_ASSERT(decompressed_string_size <= StringUncompressed::STRING_BLOCK_LIMIT);
26
31
 
27
- return Value(string((char *)decompress_buffer, decompressed_string_size));
32
+ return Value(string(char_ptr_cast(decompress_buffer), decompressed_string_size));
28
33
  }
29
34
 
30
35
  } // namespace duckdb
@@ -183,19 +183,19 @@ bool MiniZStreamWrapper::Read(StreamData &sd) {
183
183
  }
184
184
 
185
185
  // actually decompress
186
- mz_stream_ptr->next_in = (data_ptr_t)sd.in_buff_start;
186
+ mz_stream_ptr->next_in = sd.in_buff_start;
187
187
  D_ASSERT(sd.in_buff_end - sd.in_buff_start < NumericLimits<int32_t>::Maximum());
188
188
  mz_stream_ptr->avail_in = (uint32_t)(sd.in_buff_end - sd.in_buff_start);
189
- mz_stream_ptr->next_out = (data_ptr_t)sd.out_buff_end;
189
+ mz_stream_ptr->next_out = data_ptr_cast(sd.out_buff_end);
190
190
  mz_stream_ptr->avail_out = (uint32_t)((sd.out_buff.get() + sd.out_buf_size) - sd.out_buff_end);
191
191
  auto ret = duckdb_miniz::mz_inflate(mz_stream_ptr, duckdb_miniz::MZ_NO_FLUSH);
192
192
  if (ret != duckdb_miniz::MZ_OK && ret != duckdb_miniz::MZ_STREAM_END) {
193
193
  throw IOException("Failed to decode gzip stream: %s", duckdb_miniz::mz_error(ret));
194
194
  }
195
195
  // update pointers following inflate()
196
- sd.in_buff_start = (data_ptr_t)mz_stream_ptr->next_in;
196
+ sd.in_buff_start = (data_ptr_t)mz_stream_ptr->next_in; // NOLINT
197
197
  sd.in_buff_end = sd.in_buff_start + mz_stream_ptr->avail_in;
198
- sd.out_buff_end = (data_ptr_t)mz_stream_ptr->next_out;
198
+ sd.out_buff_end = data_ptr_cast(mz_stream_ptr->next_out);
199
199
  D_ASSERT(sd.out_buff_end + mz_stream_ptr->avail_out == sd.out_buff.get() + sd.out_buf_size);
200
200
 
201
201
  // if stream ended, deallocate inflator
@@ -221,14 +221,14 @@ bool MiniZStreamWrapper::Read(StreamData &sd) {
221
221
  void MiniZStreamWrapper::Write(CompressedFile &file, StreamData &sd, data_ptr_t uncompressed_data,
222
222
  int64_t uncompressed_size) {
223
223
  // update the src and the total size
224
- crc = duckdb_miniz::mz_crc32(crc, (const unsigned char *)uncompressed_data, uncompressed_size);
224
+ crc = duckdb_miniz::mz_crc32(crc, reinterpret_cast<const unsigned char *>(uncompressed_data), uncompressed_size);
225
225
  total_size += uncompressed_size;
226
226
 
227
227
  auto remaining = uncompressed_size;
228
228
  while (remaining > 0) {
229
229
  idx_t output_remaining = (sd.out_buff.get() + sd.out_buf_size) - sd.out_buff_start;
230
230
 
231
- mz_stream_ptr->next_in = (const unsigned char *)uncompressed_data;
231
+ mz_stream_ptr->next_in = reinterpret_cast<const unsigned char *>(uncompressed_data);
232
232
  mz_stream_ptr->avail_in = remaining;
233
233
  mz_stream_ptr->next_out = sd.out_buff_start;
234
234
  mz_stream_ptr->avail_out = output_remaining;
@@ -360,7 +360,7 @@ string GZipFileSystem::UncompressGZIPString(const string &in) {
360
360
  }
361
361
 
362
362
  auto bytes_remaining = in.size() - (body_ptr - in.data());
363
- mz_stream_ptr->next_in = (unsigned char *)body_ptr;
363
+ mz_stream_ptr->next_in = const_uchar_ptr_cast(body_ptr);
364
364
  mz_stream_ptr->avail_in = bytes_remaining;
365
365
 
366
366
  unsigned char decompress_buffer[BUFSIZ];
@@ -373,7 +373,7 @@ string GZipFileSystem::UncompressGZIPString(const string &in) {
373
373
  if (status != duckdb_miniz::MZ_STREAM_END && status != duckdb_miniz::MZ_OK) {
374
374
  throw IOException("Failed to uncompress");
375
375
  }
376
- decompressed.append((char *)decompress_buffer, mz_stream_ptr->total_out - decompressed.size());
376
+ decompressed.append(char_ptr_cast(decompress_buffer), mz_stream_ptr->total_out - decompressed.size());
377
377
  }
378
378
  duckdb_miniz::mz_inflateEnd(mz_stream_ptr);
379
379
  if (decompressed.empty()) {
@@ -183,7 +183,7 @@ static void TemplatedGetHivePartitionValues(Vector &input, vector<HivePartitionK
183
183
  input.ToUnifiedFormat(count, format);
184
184
 
185
185
  const auto &sel = *format.sel;
186
- const auto data = (T *)format.data;
186
+ const auto data = UnifiedVectorFormat::GetData<T>(format);
187
187
  const auto &validity = format.validity;
188
188
 
189
189
  const auto &type = input.GetType();
@@ -242,7 +242,7 @@ unique_ptr<FileHandle> LocalFileSystem::OpenFile(const string &path_p, uint8_t f
242
242
  }
243
243
 
244
244
  void LocalFileSystem::SetFilePointer(FileHandle &handle, idx_t location) {
245
- int fd = ((UnixFileHandle &)handle).fd;
245
+ int fd = handle.Cast<UnixFileHandle>().fd;
246
246
  off_t offset = lseek(fd, location, SEEK_SET);
247
247
  if (offset == (off_t)-1) {
248
248
  throw IOException("Could not seek to location %lld for file \"%s\": %s", location, handle.path,
@@ -251,7 +251,7 @@ void LocalFileSystem::SetFilePointer(FileHandle &handle, idx_t location) {
251
251
  }
252
252
 
253
253
  idx_t LocalFileSystem::GetFilePointer(FileHandle &handle) {
254
- int fd = ((UnixFileHandle &)handle).fd;
254
+ int fd = handle.Cast<UnixFileHandle>().fd;
255
255
  off_t position = lseek(fd, 0, SEEK_CUR);
256
256
  if (position == (off_t)-1) {
257
257
  throw IOException("Could not get file position file \"%s\": %s", handle.path, strerror(errno));
@@ -260,7 +260,7 @@ idx_t LocalFileSystem::GetFilePointer(FileHandle &handle) {
260
260
  }
261
261
 
262
262
  void LocalFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) {
263
- int fd = ((UnixFileHandle &)handle).fd;
263
+ int fd = handle.Cast<UnixFileHandle>().fd;
264
264
  int64_t bytes_read = pread(fd, buffer, nr_bytes, location);
265
265
  if (bytes_read == -1) {
266
266
  throw IOException("Could not read from file \"%s\": %s", handle.path, strerror(errno));
@@ -272,7 +272,7 @@ void LocalFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes, i
272
272
  }
273
273
 
274
274
  int64_t LocalFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes) {
275
- int fd = ((UnixFileHandle &)handle).fd;
275
+ int fd = handle.Cast<UnixFileHandle>().fd;
276
276
  int64_t bytes_read = read(fd, buffer, nr_bytes);
277
277
  if (bytes_read == -1) {
278
278
  throw IOException("Could not read from file \"%s\": %s", handle.path, strerror(errno));
@@ -281,7 +281,7 @@ int64_t LocalFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes
281
281
  }
282
282
 
283
283
  void LocalFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) {
284
- int fd = ((UnixFileHandle &)handle).fd;
284
+ int fd = handle.Cast<UnixFileHandle>().fd;
285
285
  int64_t bytes_written = pwrite(fd, buffer, nr_bytes, location);
286
286
  if (bytes_written == -1) {
287
287
  throw IOException("Could not write file \"%s\": %s", handle.path, strerror(errno));
@@ -293,7 +293,7 @@ void LocalFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes,
293
293
  }
294
294
 
295
295
  int64_t LocalFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes) {
296
- int fd = ((UnixFileHandle &)handle).fd;
296
+ int fd = handle.Cast<UnixFileHandle>().fd;
297
297
  int64_t bytes_written = write(fd, buffer, nr_bytes);
298
298
  if (bytes_written == -1) {
299
299
  throw IOException("Could not write file \"%s\": %s", handle.path, strerror(errno));
@@ -302,7 +302,7 @@ int64_t LocalFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_byte
302
302
  }
303
303
 
304
304
  int64_t LocalFileSystem::GetFileSize(FileHandle &handle) {
305
- int fd = ((UnixFileHandle &)handle).fd;
305
+ int fd = handle.Cast<UnixFileHandle>().fd;
306
306
  struct stat s;
307
307
  if (fstat(fd, &s) == -1) {
308
308
  return -1;
@@ -311,7 +311,7 @@ int64_t LocalFileSystem::GetFileSize(FileHandle &handle) {
311
311
  }
312
312
 
313
313
  time_t LocalFileSystem::GetLastModifiedTime(FileHandle &handle) {
314
- int fd = ((UnixFileHandle &)handle).fd;
314
+ int fd = handle.Cast<UnixFileHandle>().fd;
315
315
  struct stat s;
316
316
  if (fstat(fd, &s) == -1) {
317
317
  return -1;
@@ -320,12 +320,12 @@ time_t LocalFileSystem::GetLastModifiedTime(FileHandle &handle) {
320
320
  }
321
321
 
322
322
  FileType LocalFileSystem::GetFileType(FileHandle &handle) {
323
- int fd = ((UnixFileHandle &)handle).fd;
323
+ int fd = handle.Cast<UnixFileHandle>().fd;
324
324
  return GetFileTypeInternal(fd);
325
325
  }
326
326
 
327
327
  void LocalFileSystem::Truncate(FileHandle &handle, int64_t new_size) {
328
- int fd = ((UnixFileHandle &)handle).fd;
328
+ int fd = handle.Cast<UnixFileHandle>().fd;
329
329
  if (ftruncate(fd, new_size) != 0) {
330
330
  throw IOException("Could not truncate file \"%s\": %s", handle.path, strerror(errno));
331
331
  }
@@ -444,7 +444,7 @@ bool LocalFileSystem::ListFiles(const string &directory, const std::function<voi
444
444
  }
445
445
 
446
446
  void LocalFileSystem::FileSync(FileHandle &handle) {
447
- int fd = ((UnixFileHandle &)handle).fd;
447
+ int fd = handle.Cast<UnixFileHandle>().fd;
448
448
  if (fsync(fd) != 0) {
449
449
  throw FatalException("fsync failed!");
450
450
  }
@@ -1460,7 +1460,7 @@ bool TryCastToBlob::Operation(string_t input, string_t &result, Vector &result_v
1460
1460
  }
1461
1461
 
1462
1462
  result = StringVector::EmptyString(result_vector, result_size);
1463
- Blob::ToBlob(input, (data_ptr_t)result.GetDataWriteable());
1463
+ Blob::ToBlob(input, data_ptr_cast(result.GetDataWriteable()));
1464
1464
  result.Finalize();
1465
1465
  return true;
1466
1466
  }
@@ -33,12 +33,12 @@ void PipeFileSystem::Reset(FileHandle &handle) {
33
33
  }
34
34
 
35
35
  int64_t PipeFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes) {
36
- auto &pipe = (PipeFile &)handle;
36
+ auto &pipe = handle.Cast<PipeFile>();
37
37
  return pipe.ReadChunk(buffer, nr_bytes);
38
38
  }
39
39
 
40
40
  int64_t PipeFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes) {
41
- auto &pipe = (PipeFile &)handle;
41
+ auto &pipe = handle.Cast<PipeFile>();
42
42
  return pipe.WriteChunk(buffer, nr_bytes);
43
43
  }
44
44
 
@@ -219,8 +219,8 @@ void RadixPartitionedTupleData::RepartitionFinalizeStates(PartitionedTupleData &
219
219
  idx_t finished_partition_idx) const {
220
220
  D_ASSERT(old_partitioned_data.GetType() == PartitionedTupleDataType::RADIX &&
221
221
  new_partitioned_data.GetType() == PartitionedTupleDataType::RADIX);
222
- const auto &old_radix_partitions = (RadixPartitionedTupleData &)old_partitioned_data;
223
- const auto &new_radix_partitions = (RadixPartitionedTupleData &)new_partitioned_data;
222
+ const auto &old_radix_partitions = old_partitioned_data.Cast<RadixPartitionedTupleData>();
223
+ const auto &new_radix_partitions = new_partitioned_data.Cast<RadixPartitionedTupleData>();
224
224
  const auto old_radix_bits = old_radix_partitions.GetRadixBits();
225
225
  const auto new_radix_bits = new_radix_partitions.GetRadixBits();
226
226
  D_ASSERT(new_radix_bits > old_radix_bits);
@@ -29,7 +29,7 @@ static void HeapGatherStringVector(Vector &v, const idx_t vcount, const Selectio
29
29
  }
30
30
  auto len = Load<uint32_t>(key_locations[i]);
31
31
  key_locations[i] += sizeof(uint32_t);
32
- target[col_idx] = StringVector::AddStringOrBlob(v, string_t((const char *)key_locations[i], len));
32
+ target[col_idx] = StringVector::AddStringOrBlob(v, string_t(const_char_ptr_cast(key_locations[i]), len));
33
33
  key_locations[i] += len;
34
34
  }
35
35
  }
@@ -8,7 +8,7 @@ using ValidityBytes = TemplatedValidityMask<uint8_t>;
8
8
 
9
9
  static void ComputeStringEntrySizes(UnifiedVectorFormat &vdata, idx_t entry_sizes[], const idx_t ser_count,
10
10
  const SelectionVector &sel, const idx_t offset) {
11
- auto strings = (string_t *)vdata.data;
11
+ auto strings = UnifiedVectorFormat::GetData<string_t>(vdata);
12
12
  for (idx_t i = 0; i < ser_count; i++) {
13
13
  auto idx = sel.get_index(i);
14
14
  auto str_idx = vdata.sel->get_index(idx + offset);
@@ -116,14 +116,14 @@ void RowOperations::ComputeEntrySizes(Vector &v, idx_t entry_sizes[], idx_t vcou
116
116
  template <class T>
117
117
  static void TemplatedHeapScatter(UnifiedVectorFormat &vdata, const SelectionVector &sel, idx_t count, idx_t col_idx,
118
118
  data_ptr_t *key_locations, data_ptr_t *validitymask_locations, idx_t offset) {
119
- auto source = (T *)vdata.data;
119
+ auto source = UnifiedVectorFormat::GetData<T>(vdata);
120
120
  if (!validitymask_locations) {
121
121
  for (idx_t i = 0; i < count; i++) {
122
122
  auto idx = sel.get_index(i);
123
123
  auto source_idx = vdata.sel->get_index(idx + offset);
124
124
 
125
125
  auto target = (T *)key_locations[i];
126
- Store<T>(source[source_idx], (data_ptr_t)target);
126
+ Store<T>(source[source_idx], data_ptr_cast(target));
127
127
  key_locations[i] += sizeof(T);
128
128
  }
129
129
  } else {
@@ -136,7 +136,7 @@ static void TemplatedHeapScatter(UnifiedVectorFormat &vdata, const SelectionVect
136
136
  auto source_idx = vdata.sel->get_index(idx + offset);
137
137
 
138
138
  auto target = (T *)key_locations[i];
139
- Store<T>(source[source_idx], (data_ptr_t)target);
139
+ Store<T>(source[source_idx], data_ptr_cast(target));
140
140
  key_locations[i] += sizeof(T);
141
141
 
142
142
  // set the validitymask
@@ -152,7 +152,7 @@ static void HeapScatterStringVector(Vector &v, idx_t vcount, const SelectionVect
152
152
  UnifiedVectorFormat vdata;
153
153
  v.ToUnifiedFormat(vcount, vdata);
154
154
 
155
- auto strings = (string_t *)vdata.data;
155
+ auto strings = UnifiedVectorFormat::GetData<string_t>(vdata);
156
156
  if (!validitymask_locations) {
157
157
  for (idx_t i = 0; i < ser_count; i++) {
158
158
  auto idx = sel.get_index(i);
@@ -64,7 +64,7 @@ static void TemplatedMatchType(UnifiedVectorFormat &col, Vector &rows, Selection
64
64
  idx_t idx_in_entry;
65
65
  ValidityBytes::GetEntryIndex(col_no, entry_idx, idx_in_entry);
66
66
 
67
- auto data = (T *)col.data;
67
+ auto data = UnifiedVectorFormat::GetData<T>(col);
68
68
  auto ptrs = FlatVector::GetData<data_ptr_t>(rows);
69
69
  idx_t match_count = 0;
70
70
  if (!col.validity.AllValid()) {
@@ -9,7 +9,7 @@ template <class T>
9
9
  void TemplatedRadixScatter(UnifiedVectorFormat &vdata, const SelectionVector &sel, idx_t add_count,
10
10
  data_ptr_t *key_locations, const bool desc, const bool has_null, const bool nulls_first,
11
11
  const idx_t offset) {
12
- auto source = (T *)vdata.data;
12
+ auto source = UnifiedVectorFormat::GetData<T>(vdata);
13
13
  if (has_null) {
14
14
  auto &validity = vdata.validity;
15
15
  const data_t valid = nulls_first ? 1 : 0;
@@ -54,7 +54,7 @@ void TemplatedRadixScatter(UnifiedVectorFormat &vdata, const SelectionVector &se
54
54
  void RadixScatterStringVector(UnifiedVectorFormat &vdata, const SelectionVector &sel, idx_t add_count,
55
55
  data_ptr_t *key_locations, const bool desc, const bool has_null, const bool nulls_first,
56
56
  const idx_t prefix_len, idx_t offset) {
57
- auto source = (string_t *)vdata.data;
57
+ auto source = UnifiedVectorFormat::GetData<string_t>(vdata);
58
58
  if (has_null) {
59
59
  auto &validity = vdata.validity;
60
60
  const data_t valid = nulls_first ? 1 : 0;
@@ -20,7 +20,7 @@ using ValidityBytes = RowLayout::ValidityBytes;
20
20
  template <class T>
21
21
  static void TemplatedScatter(UnifiedVectorFormat &col, Vector &rows, const SelectionVector &sel, const idx_t count,
22
22
  const idx_t col_offset, const idx_t col_no) {
23
- auto data = (T *)col.data;
23
+ auto data = UnifiedVectorFormat::GetData<T>(col);
24
24
  auto ptrs = FlatVector::GetData<data_ptr_t>(rows);
25
25
 
26
26
  if (!col.validity.AllValid()) {
@@ -50,7 +50,7 @@ static void TemplatedScatter(UnifiedVectorFormat &col, Vector &rows, const Selec
50
50
 
51
51
  static void ComputeStringEntrySizes(const UnifiedVectorFormat &col, idx_t entry_sizes[], const SelectionVector &sel,
52
52
  const idx_t count, const idx_t offset = 0) {
53
- auto data = (const string_t *)col.data;
53
+ auto data = UnifiedVectorFormat::GetData<string_t>(col);
54
54
  for (idx_t i = 0; i < count; i++) {
55
55
  auto idx = sel.get_index(i);
56
56
  auto col_idx = col.sel->get_index(idx) + offset;
@@ -64,7 +64,7 @@ static void ComputeStringEntrySizes(const UnifiedVectorFormat &col, idx_t entry_
64
64
  static void ScatterStringVector(UnifiedVectorFormat &col, Vector &rows, data_ptr_t str_locations[],
65
65
  const SelectionVector &sel, const idx_t count, const idx_t col_offset,
66
66
  const idx_t col_no) {
67
- auto string_data = (string_t *)col.data;
67
+ auto string_data = UnifiedVectorFormat::GetData<string_t>(col);
68
68
  auto ptrs = FlatVector::GetData<data_ptr_t>(rows);
69
69
 
70
70
  // Write out zero length to avoid swizzling problems.
@@ -81,7 +81,7 @@ static void ScatterStringVector(UnifiedVectorFormat &col, Vector &rows, data_ptr
81
81
  Store<string_t>(string_data[col_idx], row + col_offset);
82
82
  } else {
83
83
  const auto &str = string_data[col_idx];
84
- string_t inserted((const char *)str_locations[i], str.GetSize());
84
+ string_t inserted(const_char_ptr_cast(str_locations[i]), str.GetSize());
85
85
  memcpy(inserted.GetDataWriteable(), str.GetData(), str.GetSize());
86
86
  str_locations[i] += str.GetSize();
87
87
  inserted.Finalize();
@@ -125,7 +125,7 @@ string BinaryDeserializer::ReadString() {
125
125
  }
126
126
  auto buffer = make_unsafe_uniq_array<data_t>(size);
127
127
  ReadData(buffer.get(), size);
128
- return string((char *)buffer.get(), size);
128
+ return string(const_char_ptr_cast(buffer.get()), size);
129
129
  }
130
130
 
131
131
  interval_t BinaryDeserializer::ReadInterval() {
@@ -129,7 +129,7 @@ void BinarySerializer::WriteValue(const string &value) {
129
129
  auto len = value.length();
130
130
  Write<uint32_t>((uint32_t)len);
131
131
  if (len > 0) {
132
- WriteData((const_data_ptr_t)value.c_str(), len);
132
+ WriteData(value.c_str(), len);
133
133
  }
134
134
  }
135
135
 
@@ -137,7 +137,7 @@ void BinarySerializer::WriteValue(const string_t value) {
137
137
  auto len = value.GetSize();
138
138
  Write<uint32_t>((uint32_t)len);
139
139
  if (len > 0) {
140
- WriteData((const_data_ptr_t)value.GetDataUnsafe(), len);
140
+ WriteData(value.GetDataUnsafe(), len);
141
141
  }
142
142
  }
143
143
 
@@ -145,7 +145,7 @@ void BinarySerializer::WriteValue(const char *value) {
145
145
  auto len = strlen(value);
146
146
  Write<uint32_t>((uint32_t)len);
147
147
  if (len > 0) {
148
- WriteData((const_data_ptr_t)value, len);
148
+ WriteData(value, len);
149
149
  }
150
150
  }
151
151
 
@@ -10,7 +10,7 @@ string Deserializer::Read() {
10
10
  }
11
11
  auto buffer = make_unsafe_uniq_array<data_t>(size);
12
12
  ReadData(buffer.get(), size);
13
- return string((char *)buffer.get(), size);
13
+ return string(const_char_ptr_cast(buffer.get()), size);
14
14
  }
15
15
 
16
16
  void Deserializer::ReadStringVector(vector<string> &list) {
@@ -167,7 +167,7 @@ int Comparators::CompareStringAndAdvance(data_ptr_t &left_ptr, data_ptr_t &right
167
167
  uint32_t right_string_size = Load<uint32_t>(right_ptr);
168
168
  left_ptr += sizeof(uint32_t);
169
169
  right_ptr += sizeof(uint32_t);
170
- auto memcmp_res = memcmp((const char *)left_ptr, (const char *)right_ptr,
170
+ auto memcmp_res = memcmp(const_char_ptr_cast(left_ptr), const_char_ptr_cast(right_ptr),
171
171
  std::min<uint32_t>(left_string_size, right_string_size));
172
172
 
173
173
  left_ptr += left_string_size;
@@ -544,7 +544,9 @@ void MergeSorter::MergeData(SortedData &result_data, SortedData &l_data, SortedD
544
544
  const bool &l_smaller = left_smaller[copied + i];
545
545
  const bool r_smaller = !l_smaller;
546
546
  const auto &entry_size = next_entry_sizes[copied + i];
547
- memcpy(result_heap_ptr, (data_ptr_t)(l_smaller * (idx_t)l_heap_ptr + r_smaller * (idx_t)r_heap_ptr),
547
+ memcpy(result_heap_ptr,
548
+ reinterpret_cast<data_ptr_t>(l_smaller * CastPointerToValue(l_heap_ptr) +
549
+ r_smaller * CastPointerToValue(r_heap_ptr)),
548
550
  entry_size);
549
551
  D_ASSERT(Load<uint32_t>(result_heap_ptr) == entry_size);
550
552
  result_heap_ptr += entry_size;
@@ -585,7 +587,10 @@ void MergeSorter::MergeRows(data_ptr_t &l_ptr, idx_t &l_entry_idx, const idx_t &
585
587
  const bool &l_smaller = left_smaller[copied + i];
586
588
  const bool r_smaller = !l_smaller;
587
589
  // Use comparison bool (0 or 1) to copy an entry from either side
588
- FastMemcpy(target_ptr, (data_ptr_t)(l_smaller * (idx_t)l_ptr + r_smaller * (idx_t)r_ptr), entry_size);
590
+ FastMemcpy(
591
+ target_ptr,
592
+ reinterpret_cast<data_ptr_t>(l_smaller * CastPointerToValue(l_ptr) + r_smaller * CastPointerToValue(r_ptr)),
593
+ entry_size);
589
594
  target_ptr += entry_size;
590
595
  // Use the comparison bool to increment entries and pointers
591
596
  l_entry_idx += l_smaller;
@@ -124,8 +124,8 @@ void PartitionGlobalSinkState::ResizeGroupingData(idx_t cardinality) {
124
124
 
125
125
  void PartitionGlobalSinkState::SyncLocalPartition(GroupingPartition &local_partition, GroupingAppend &local_append) {
126
126
  // We are done if the local_partition is right sized.
127
- auto local_radix = (RadixPartitionedColumnData *)local_partition.get();
128
- if (local_radix->GetRadixBits() == grouping_data->GetRadixBits()) {
127
+ auto &local_radix = local_partition->Cast<RadixPartitionedColumnData>();
128
+ if (local_radix.GetRadixBits() == grouping_data->GetRadixBits()) {
129
129
  return;
130
130
  }
131
131
 
@@ -20,7 +20,7 @@ idx_t Bit::ComputeBitstringLen(idx_t len) {
20
20
  }
21
21
 
22
22
  static inline idx_t GetBitPadding(const string_t &bit_string) {
23
- auto data = (const_data_ptr_t)bit_string.GetData();
23
+ auto data = const_data_ptr_cast(bit_string.GetData());
24
24
  D_ASSERT(idx_t(data[0]) <= 8);
25
25
  return data[0];
26
26
  }
@@ -61,7 +61,7 @@ void Bit::SetEmptyBitString(string_t &target, idx_t len) {
61
61
 
62
62
  // **** casting functions ****
63
63
  void Bit::ToString(string_t bits, char *output) {
64
- auto data = (const_data_ptr_t)bits.GetData();
64
+ auto data = const_data_ptr_cast(bits.GetData());
65
65
  auto len = bits.GetSize();
66
66
 
67
67
  idx_t padding = GetBitPadding(bits);
@@ -84,7 +84,7 @@ string Bit::ToString(string_t str) {
84
84
  }
85
85
 
86
86
  bool Bit::TryGetBitStringSize(string_t str, idx_t &str_len, string *error_message) {
87
- auto data = (const_data_ptr_t)str.GetData();
87
+ auto data = const_data_ptr_cast(str.GetData());
88
88
  auto len = str.GetSize();
89
89
  str_len = 0;
90
90
  for (idx_t i = 0; i < len; i++) {
@@ -92,7 +92,7 @@ bool Bit::TryGetBitStringSize(string_t str, idx_t &str_len, string *error_messag
92
92
  str_len++;
93
93
  } else {
94
94
  string error = StringUtil::Format("Invalid character encountered in string -> bit conversion: '%s'",
95
- string((char *)data + i, 1));
95
+ string(const_char_ptr_cast(data) + i, 1));
96
96
  HandleCastError::AssignError(error, error_message);
97
97
  return false;
98
98
  }
@@ -107,7 +107,7 @@ bool Bit::TryGetBitStringSize(string_t str, idx_t &str_len, string *error_messag
107
107
  }
108
108
 
109
109
  void Bit::ToBit(string_t str, string_t &output_str) {
110
- auto data = (const_data_ptr_t)str.GetData();
110
+ auto data = const_data_ptr_cast(str.GetData());
111
111
  auto len = str.GetSize();
112
112
  auto output = output_str.GetDataWriteable();
113
113
 
@@ -24,7 +24,7 @@ bool IsRegularCharacter(data_t c) {
24
24
  }
25
25
 
26
26
  idx_t Blob::GetStringSize(string_t blob) {
27
- auto data = (const_data_ptr_t)blob.GetData();
27
+ auto data = const_data_ptr_cast(blob.GetData());
28
28
  auto len = blob.GetSize();
29
29
  idx_t str_len = 0;
30
30
  for (idx_t i = 0; i < len; i++) {
@@ -40,7 +40,7 @@ idx_t Blob::GetStringSize(string_t blob) {
40
40
  }
41
41
 
42
42
  void Blob::ToString(string_t blob, char *output) {
43
- auto data = (const_data_ptr_t)blob.GetData();
43
+ auto data = const_data_ptr_cast(blob.GetData());
44
44
  auto len = blob.GetSize();
45
45
  idx_t str_idx = 0;
46
46
  for (idx_t i = 0; i < len; i++) {
@@ -70,7 +70,7 @@ string Blob::ToString(string_t blob) {
70
70
  }
71
71
 
72
72
  bool Blob::TryGetBlobSize(string_t str, idx_t &str_len, string *error_message) {
73
- auto data = (const_data_ptr_t)str.GetData();
73
+ auto data = const_data_ptr_cast(str.GetData());
74
74
  auto len = str.GetSize();
75
75
  str_len = 0;
76
76
  for (idx_t i = 0; i < len; i++) {
@@ -84,7 +84,7 @@ bool Blob::TryGetBlobSize(string_t str, idx_t &str_len, string *error_message) {
84
84
  if (data[i + 1] != 'x' || Blob::HEX_MAP[data[i + 2]] < 0 || Blob::HEX_MAP[data[i + 3]] < 0) {
85
85
  string error =
86
86
  StringUtil::Format("Invalid hex escape code encountered in string -> blob conversion: %s",
87
- string((char *)data + i, 4));
87
+ string(const_char_ptr_cast(data) + i, 4));
88
88
  HandleCastError::AssignError(error, error_message);
89
89
  return false;
90
90
  }
@@ -112,7 +112,7 @@ idx_t Blob::GetBlobSize(string_t str) {
112
112
  }
113
113
 
114
114
  void Blob::ToBlob(string_t str, data_ptr_t output) {
115
- auto data = (const_data_ptr_t)str.GetData();
115
+ auto data = const_data_ptr_cast(str.GetData());
116
116
  auto len = str.GetSize();
117
117
  idx_t blob_idx = 0;
118
118
  for (idx_t i = 0; i < len; i++) {
@@ -137,7 +137,7 @@ void Blob::ToBlob(string_t str, data_ptr_t output) {
137
137
  string Blob::ToBlob(string_t str) {
138
138
  auto blob_len = GetBlobSize(str);
139
139
  auto buffer = make_unsafe_uniq_array<char>(blob_len);
140
- Blob::ToBlob(str, (data_ptr_t)buffer.get());
140
+ Blob::ToBlob(str, data_ptr_cast(buffer.get()));
141
141
  return string(buffer.get(), blob_len);
142
142
  }
143
143
 
@@ -149,7 +149,7 @@ idx_t Blob::ToBase64Size(string_t blob) {
149
149
  }
150
150
 
151
151
  void Blob::ToBase64(string_t blob, char *output) {
152
- auto input_data = (const_data_ptr_t)blob.GetData();
152
+ auto input_data = const_data_ptr_cast(blob.GetData());
153
153
  auto input_size = blob.GetSize();
154
154
  idx_t out_idx = 0;
155
155
  idx_t i;
@@ -239,7 +239,7 @@ uint32_t DecodeBase64Bytes(const string_t &str, const_data_ptr_t input_data, idx
239
239
 
240
240
  void Blob::FromBase64(string_t str, data_ptr_t output, idx_t output_size) {
241
241
  D_ASSERT(output_size == FromBase64Size(str));
242
- auto input_data = (const_data_ptr_t)str.GetData();
242
+ auto input_data = const_data_ptr_cast(str.GetData());
243
243
  auto input_size = str.GetSize();
244
244
  if (input_size == 0) {
245
245
  return;
@@ -71,7 +71,7 @@ BufferHandle ColumnDataAllocator::AllocateBlock(idx_t size) {
71
71
  void ColumnDataAllocator::AllocateEmptyBlock(idx_t size) {
72
72
  auto allocation_amount = MaxValue<idx_t>(NextPowerOfTwo(size), 4096);
73
73
  if (!blocks.empty()) {
74
- auto last_capacity = blocks.back().capacity;
74
+ idx_t last_capacity = blocks.back().capacity;
75
75
  auto next_capacity = MinValue<idx_t>(last_capacity * 2, last_capacity + Storage::BLOCK_SIZE);
76
76
  allocation_amount = MaxValue<idx_t>(next_capacity, allocation_amount);
77
77
  }
@@ -162,10 +162,10 @@ data_ptr_t ColumnDataAllocator::GetDataPointer(ChunkManagementState &state, uint
162
162
  // in-memory allocator: construct pointer from block_id and offset
163
163
  if (sizeof(uintptr_t) == sizeof(uint32_t)) {
164
164
  uintptr_t pointer_value = uintptr_t(block_id);
165
- return (data_ptr_t)pointer_value;
165
+ return (data_ptr_t)pointer_value; // NOLINT - convert from pointer value back to pointer
166
166
  } else if (sizeof(uintptr_t) == sizeof(uint64_t)) {
167
167
  uintptr_t pointer_value = (uintptr_t(offset) << 32) | uintptr_t(block_id);
168
- return (data_ptr_t)pointer_value;
168
+ return (data_ptr_t)pointer_value; // NOLINT - convert from pointer value back to pointer
169
169
  } else {
170
170
  throw InternalException("ColumnDataCollection: Architecture not supported!?");
171
171
  }
@@ -196,7 +196,7 @@ void ColumnDataAllocator::UnswizzlePointers(ChunkManagementState &state, Vector
196
196
  // at least one string must be non-inlined, otherwise this function should not be called
197
197
  D_ASSERT(i < end);
198
198
 
199
- auto base_ptr = (char *)GetDataPointer(state, block_id, offset);
199
+ auto base_ptr = char_ptr_cast(GetDataPointer(state, block_id, offset));
200
200
  if (strings[i].GetData() == base_ptr) {
201
201
  // pointers are still valid
202
202
  return;
@@ -454,7 +454,7 @@ void ColumnDataCopy<string_t>(ColumnDataMetaData &meta_data, const UnifiedVector
454
454
  // 'append_count' is less if we cannot fit that amount of non-inlined strings on one buffer-managed block
455
455
  idx_t append_count;
456
456
  idx_t heap_size = 0;
457
- const auto source_entries = (string_t *)source_data.data;
457
+ const auto source_entries = UnifiedVectorFormat::GetData<string_t>(source_data);
458
458
  for (append_count = 0; append_count < vector_remaining; append_count++) {
459
459
  auto source_idx = source_data.sel->get_index(offset + append_count);
460
460
  if (!source_data.validity.RowIsValid(source_idx)) {
@@ -505,7 +505,7 @@ void ColumnDataCopy<string_t>(ColumnDataMetaData &meta_data, const UnifiedVector
505
505
  target_validity.SetAllValid(STANDARD_VECTOR_SIZE);
506
506
  }
507
507
 
508
- auto target_entries = (string_t *)base_ptr;
508
+ auto target_entries = reinterpret_cast<string_t *>(base_ptr);
509
509
  for (idx_t i = 0; i < append_count; i++) {
510
510
  auto source_idx = source_data.sel->get_index(offset + i);
511
511
  auto target_idx = current_segment.count + i;
@@ -520,7 +520,7 @@ void ColumnDataCopy<string_t>(ColumnDataMetaData &meta_data, const UnifiedVector
520
520
  } else {
521
521
  D_ASSERT(heap_ptr != nullptr);
522
522
  memcpy(heap_ptr, source_entry.GetData(), source_entry.GetSize());
523
- target_entry = string_t((const char *)heap_ptr, source_entry.GetSize());
523
+ target_entry = string_t(const_char_ptr_cast(heap_ptr), source_entry.GetSize());
524
524
  heap_ptr += source_entry.GetSize();
525
525
  }
526
526
  }
@@ -14,7 +14,7 @@ idx_t ColumnDataCollectionSegment::GetDataSize(idx_t type_size) {
14
14
  }
15
15
 
16
16
  validity_t *ColumnDataCollectionSegment::GetValidityPointer(data_ptr_t base_ptr, idx_t type_size) {
17
- return (validity_t *)(base_ptr + GetDataSize(type_size));
17
+ return reinterpret_cast<validity_t *>(base_ptr + GetDataSize(type_size));
18
18
  }
19
19
 
20
20
  VectorDataIndex ColumnDataCollectionSegment::AllocateVectorInternal(const LogicalType &type, ChunkMetaData &chunk_meta,