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
@@ -58,7 +58,7 @@ static shared_ptr<ParquetFileMetadataCache> LoadMetadata(Allocator &allocator, F
58
58
  auto current_time = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
59
59
 
60
60
  auto proto = CreateThriftProtocol(allocator, file_handle, false);
61
- auto &transport = ((ThriftFileTransport &)*proto->getTransport());
61
+ auto &transport = reinterpret_cast<ThriftFileTransport &>(*proto->getTransport());
62
62
  auto file_size = transport.GetSize();
63
63
  if (file_size < 12) {
64
64
  throw InvalidInputException("File '%s' too small to be a Parquet file", file_handle.path);
@@ -71,11 +71,11 @@ static shared_ptr<ParquetFileMetadataCache> LoadMetadata(Allocator &allocator, F
71
71
  transport.SetLocation(file_size - 8);
72
72
  transport.read((uint8_t *)buf.ptr, 8);
73
73
 
74
- if (strncmp(buf.ptr + 4, "PAR1", 4) != 0) {
74
+ if (memcmp(buf.ptr + 4, "PAR1", 4) != 0) {
75
75
  throw InvalidInputException("No magic bytes found at end of file '%s'", file_handle.path);
76
76
  }
77
77
  // read four-byte footer length from just before the end magic bytes
78
- auto footer_len = *(uint32_t *)buf.ptr;
78
+ auto footer_len = *reinterpret_cast<uint32_t *>(buf.ptr);
79
79
  if (footer_len <= 0 || file_size < 12 + footer_len) {
80
80
  throw InvalidInputException("Footer length error in file '%s'", file_handle.path);
81
81
  }
@@ -484,7 +484,7 @@ unique_ptr<BaseStatistics> ParquetReader::ReadStatistics(const string &name) {
484
484
  unique_ptr<BaseStatistics> column_stats;
485
485
  auto file_meta_data = GetFileMetadata();
486
486
  auto root_reader = CreateReader();
487
- auto column_reader = ((StructColumnReader *)root_reader.get())->GetChildReader(file_col_idx);
487
+ auto column_reader = root_reader->Cast<StructColumnReader>().GetChildReader(file_col_idx);
488
488
 
489
489
  for (idx_t row_group_idx = 0; row_group_idx < file_meta_data->row_groups.size(); row_group_idx++) {
490
490
  auto &row_group = file_meta_data->row_groups[row_group_idx];
@@ -573,7 +573,7 @@ idx_t ParquetReader::GetGroupOffset(ParquetReaderScanState &state) {
573
573
  void ParquetReader::PrepareRowGroupBuffer(ParquetReaderScanState &state, idx_t col_idx) {
574
574
  auto &group = GetGroup(state);
575
575
  auto column_id = reader_data.column_ids[col_idx];
576
- auto column_reader = ((StructColumnReader *)state.root_reader.get())->GetChildReader(column_id);
576
+ auto column_reader = state.root_reader->Cast<StructColumnReader>().GetChildReader(column_id);
577
577
 
578
578
  // TODO move this to columnreader too
579
579
  if (reader_data.filters) {
@@ -760,14 +760,14 @@ static void FilterOperationSwitch(Vector &v, Value &constant, parquet_filter_t &
760
760
  static void ApplyFilter(Vector &v, TableFilter &filter, parquet_filter_t &filter_mask, idx_t count) {
761
761
  switch (filter.filter_type) {
762
762
  case TableFilterType::CONJUNCTION_AND: {
763
- auto &conjunction = (ConjunctionAndFilter &)filter;
763
+ auto &conjunction = filter.Cast<ConjunctionAndFilter>();
764
764
  for (auto &child_filter : conjunction.child_filters) {
765
765
  ApplyFilter(v, *child_filter, filter_mask, count);
766
766
  }
767
767
  break;
768
768
  }
769
769
  case TableFilterType::CONJUNCTION_OR: {
770
- auto &conjunction = (ConjunctionOrFilter &)filter;
770
+ auto &conjunction = filter.Cast<ConjunctionOrFilter>();
771
771
  parquet_filter_t or_mask;
772
772
  for (auto &child_filter : conjunction.child_filters) {
773
773
  parquet_filter_t child_mask = filter_mask;
@@ -778,7 +778,7 @@ static void ApplyFilter(Vector &v, TableFilter &filter, parquet_filter_t &filter
778
778
  break;
779
779
  }
780
780
  case TableFilterType::CONSTANT_COMPARISON: {
781
- auto &constant_filter = (ConstantFilter &)filter;
781
+ auto &constant_filter = filter.Cast<ConstantFilter>();
782
782
  switch (constant_filter.comparison_type) {
783
783
  case ExpressionType::COMPARE_EQUAL:
784
784
  FilterOperationSwitch<Equals>(v, constant_filter.constant, filter_mask, count);
@@ -831,7 +831,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
831
831
  state.current_group++;
832
832
  state.group_offset = 0;
833
833
 
834
- auto &trans = (ThriftFileTransport &)*state.thrift_file_proto->getTransport();
834
+ auto &trans = reinterpret_cast<ThriftFileTransport &>(*state.thrift_file_proto->getTransport());
835
835
  trans.ClearPrefetch();
836
836
  state.current_group_prefetched = false;
837
837
 
@@ -846,8 +846,8 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
846
846
 
847
847
  auto file_col_idx = reader_data.column_ids[col_idx];
848
848
 
849
- auto root_reader = ((StructColumnReader *)state.root_reader.get());
850
- to_scan_compressed_bytes += root_reader->GetChildReader(file_col_idx)->TotalCompressedSize();
849
+ auto &root_reader = state.root_reader->Cast<StructColumnReader>();
850
+ to_scan_compressed_bytes += root_reader.GetChildReader(file_col_idx)->TotalCompressedSize();
851
851
  }
852
852
 
853
853
  auto &group = GetGroup(state);
@@ -880,14 +880,14 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
880
880
  // Prefetch column-wise
881
881
  for (idx_t col_idx = 0; col_idx < reader_data.column_ids.size(); col_idx++) {
882
882
  auto file_col_idx = reader_data.column_ids[col_idx];
883
- auto root_reader = ((StructColumnReader *)state.root_reader.get());
883
+ auto &root_reader = state.root_reader->Cast<StructColumnReader>();
884
884
 
885
885
  bool has_filter = false;
886
886
  if (reader_data.filters) {
887
887
  auto entry = reader_data.filters->filters.find(reader_data.column_mapping[col_idx]);
888
888
  has_filter = entry != reader_data.filters->filters.end();
889
889
  }
890
- root_reader->GetChildReader(file_col_idx)->RegisterPrefetch(trans, !(lazy_fetch && !has_filter));
890
+ root_reader.GetChildReader(file_col_idx)->RegisterPrefetch(trans, !(lazy_fetch && !has_filter));
891
891
  }
892
892
 
893
893
  trans.FinalizeRegistration();
@@ -924,7 +924,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
924
924
  auto define_ptr = (uint8_t *)state.define_buf.ptr;
925
925
  auto repeat_ptr = (uint8_t *)state.repeat_buf.ptr;
926
926
 
927
- auto root_reader = ((StructColumnReader *)state.root_reader.get());
927
+ auto &root_reader = state.root_reader->Cast<StructColumnReader>();
928
928
 
929
929
  if (reader_data.filters) {
930
930
  vector<bool> need_to_read(reader_data.column_ids.size(), true);
@@ -947,7 +947,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
947
947
  auto result_idx = reader_data.column_mapping[id];
948
948
 
949
949
  auto &result_vector = result.data[result_idx];
950
- auto child_reader = root_reader->GetChildReader(file_col_idx);
950
+ auto child_reader = root_reader.GetChildReader(file_col_idx);
951
951
  child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
952
952
  need_to_read[id] = false;
953
953
 
@@ -962,11 +962,11 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
962
962
  }
963
963
  auto file_col_idx = reader_data.column_ids[col_idx];
964
964
  if (filter_mask.none()) {
965
- root_reader->GetChildReader(file_col_idx)->Skip(result.size());
965
+ root_reader.GetChildReader(file_col_idx)->Skip(result.size());
966
966
  continue;
967
967
  }
968
968
  auto &result_vector = result.data[reader_data.column_mapping[col_idx]];
969
- auto child_reader = root_reader->GetChildReader(file_col_idx);
969
+ auto child_reader = root_reader.GetChildReader(file_col_idx);
970
970
  child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
971
971
  }
972
972
 
@@ -982,7 +982,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
982
982
  for (idx_t col_idx = 0; col_idx < reader_data.column_ids.size(); col_idx++) {
983
983
  auto file_col_idx = reader_data.column_ids[col_idx];
984
984
  auto &result_vector = result.data[reader_data.column_mapping[col_idx]];
985
- auto child_reader = root_reader->GetChildReader(file_col_idx);
985
+ auto child_reader = root_reader.GetChildReader(file_col_idx);
986
986
  auto rows_read = child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
987
987
  if (rows_read != result.size()) {
988
988
  throw InvalidInputException("Mismatch in parquet read for column %llu, expected %llu rows, got %llu",
@@ -48,12 +48,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
48
48
  if (stats.empty()) {
49
49
  return Value();
50
50
  }
51
+ auto stats_data = const_data_ptr_cast(stats.c_str());
51
52
  switch (type.id()) {
52
53
  case LogicalTypeId::BOOLEAN: {
53
54
  if (stats.size() != sizeof(bool)) {
54
55
  throw InternalException("Incorrect stats size for type BOOLEAN");
55
56
  }
56
- return Value::BOOLEAN(Load<bool>((data_ptr_t)stats.c_str()));
57
+ return Value::BOOLEAN(Load<bool>(stats_data));
57
58
  }
58
59
  case LogicalTypeId::UTINYINT:
59
60
  case LogicalTypeId::USMALLINT:
@@ -61,29 +62,29 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
61
62
  if (stats.size() != sizeof(uint32_t)) {
62
63
  throw InternalException("Incorrect stats size for type UINTEGER");
63
64
  }
64
- return Value::UINTEGER(Load<uint32_t>((data_ptr_t)stats.c_str()));
65
+ return Value::UINTEGER(Load<uint32_t>(stats_data));
65
66
  case LogicalTypeId::UBIGINT:
66
67
  if (stats.size() != sizeof(uint64_t)) {
67
68
  throw InternalException("Incorrect stats size for type UBIGINT");
68
69
  }
69
- return Value::UBIGINT(Load<uint64_t>((data_ptr_t)stats.c_str()));
70
+ return Value::UBIGINT(Load<uint64_t>(stats_data));
70
71
  case LogicalTypeId::TINYINT:
71
72
  case LogicalTypeId::SMALLINT:
72
73
  case LogicalTypeId::INTEGER:
73
74
  if (stats.size() != sizeof(int32_t)) {
74
75
  throw InternalException("Incorrect stats size for type INTEGER");
75
76
  }
76
- return Value::INTEGER(Load<int32_t>((data_ptr_t)stats.c_str()));
77
+ return Value::INTEGER(Load<int32_t>(stats_data));
77
78
  case LogicalTypeId::BIGINT:
78
79
  if (stats.size() != sizeof(int64_t)) {
79
80
  throw InternalException("Incorrect stats size for type BIGINT");
80
81
  }
81
- return Value::BIGINT(Load<int64_t>((data_ptr_t)stats.c_str()));
82
+ return Value::BIGINT(Load<int64_t>(stats_data));
82
83
  case LogicalTypeId::FLOAT: {
83
84
  if (stats.size() != sizeof(float)) {
84
85
  throw InternalException("Incorrect stats size for type FLOAT");
85
86
  }
86
- auto val = Load<float>((data_ptr_t)stats.c_str());
87
+ auto val = Load<float>(stats_data);
87
88
  if (!Value::FloatIsFinite(val)) {
88
89
  return Value();
89
90
  }
@@ -93,7 +94,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
93
94
  if (stats.size() != sizeof(double)) {
94
95
  throw InternalException("Incorrect stats size for type DOUBLE");
95
96
  }
96
- auto val = Load<double>((data_ptr_t)stats.c_str());
97
+ auto val = Load<double>(stats_data);
97
98
  if (!Value::DoubleIsFinite(val)) {
98
99
  return Value();
99
100
  }
@@ -107,13 +108,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
107
108
  if (stats.size() != sizeof(int32_t)) {
108
109
  throw InternalException("Incorrect stats size for type %s", type.ToString());
109
110
  }
110
- return Value::DECIMAL(Load<int32_t>((data_ptr_t)stats.c_str()), width, scale);
111
+ return Value::DECIMAL(Load<int32_t>(stats_data), width, scale);
111
112
  }
112
113
  case Type::INT64: {
113
114
  if (stats.size() != sizeof(int64_t)) {
114
115
  throw InternalException("Incorrect stats size for type %s", type.ToString());
115
116
  }
116
- return Value::DECIMAL(Load<int64_t>((data_ptr_t)stats.c_str()), width, scale);
117
+ return Value::DECIMAL(Load<int64_t>(stats_data), width, scale);
117
118
  }
118
119
  case Type::BYTE_ARRAY:
119
120
  case Type::FIXED_LEN_BYTE_ARRAY:
@@ -122,21 +123,17 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
122
123
  }
123
124
  switch (type.InternalType()) {
124
125
  case PhysicalType::INT16:
125
- return Value::DECIMAL(
126
- ParquetDecimalUtils::ReadDecimalValue<int16_t>((const_data_ptr_t)stats.c_str(), stats.size()),
127
- width, scale);
126
+ return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<int16_t>(stats_data, stats.size()), width,
127
+ scale);
128
128
  case PhysicalType::INT32:
129
- return Value::DECIMAL(
130
- ParquetDecimalUtils::ReadDecimalValue<int32_t>((const_data_ptr_t)stats.c_str(), stats.size()),
131
- width, scale);
129
+ return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<int32_t>(stats_data, stats.size()), width,
130
+ scale);
132
131
  case PhysicalType::INT64:
133
- return Value::DECIMAL(
134
- ParquetDecimalUtils::ReadDecimalValue<int64_t>((const_data_ptr_t)stats.c_str(), stats.size()),
135
- width, scale);
132
+ return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<int64_t>(stats_data, stats.size()), width,
133
+ scale);
136
134
  case PhysicalType::INT128:
137
- return Value::DECIMAL(
138
- ParquetDecimalUtils::ReadDecimalValue<hugeint_t>((const_data_ptr_t)stats.c_str(), stats.size()),
139
- width, scale);
135
+ return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<hugeint_t>(stats_data, stats.size()), width,
136
+ scale);
140
137
  default:
141
138
  throw InternalException("Unsupported internal type for decimal");
142
139
  }
@@ -155,14 +152,14 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
155
152
  if (stats.size() != sizeof(int32_t)) {
156
153
  throw InternalException("Incorrect stats size for type DATE");
157
154
  }
158
- return Value::DATE(date_t(Load<int32_t>((data_ptr_t)stats.c_str())));
155
+ return Value::DATE(date_t(Load<int32_t>(stats_data)));
159
156
  case LogicalTypeId::TIME:
160
157
  case LogicalTypeId::TIME_TZ: {
161
158
  int64_t val;
162
159
  if (stats.size() == sizeof(int32_t)) {
163
- val = Load<int32_t>((data_ptr_t)stats.c_str());
160
+ val = Load<int32_t>(stats_data);
164
161
  } else if (stats.size() == sizeof(int64_t)) {
165
- val = Load<int64_t>((data_ptr_t)stats.c_str());
162
+ val = Load<int64_t>(stats_data);
166
163
  } else {
167
164
  throw InternalException("Incorrect stats size for type TIME");
168
165
  }
@@ -190,13 +187,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
190
187
  if (stats.size() != sizeof(Int96)) {
191
188
  throw InternalException("Incorrect stats size for type TIMESTAMP");
192
189
  }
193
- return Value::TIMESTAMP(ImpalaTimestampToTimestamp(Load<Int96>((data_ptr_t)stats.c_str())));
190
+ return Value::TIMESTAMP(ImpalaTimestampToTimestamp(Load<Int96>(stats_data)));
194
191
  } else {
195
192
  D_ASSERT(schema_ele.type == Type::INT64);
196
193
  if (stats.size() != sizeof(int64_t)) {
197
194
  throw InternalException("Incorrect stats size for type TIMESTAMP");
198
195
  }
199
- auto val = Load<int64_t>((data_ptr_t)stats.c_str());
196
+ auto val = Load<int64_t>(stats_data);
200
197
  if (schema_ele.__isset.logicalType && schema_ele.logicalType.__isset.TIMESTAMP) {
201
198
  // logical type
202
199
  if (schema_ele.logicalType.TIMESTAMP.unit.__isset.MILLIS) {
@@ -17,7 +17,7 @@ static constexpr int64_t NANOSECONDS_PER_MICRO = 1000LL;
17
17
 
18
18
  static int64_t ImpalaTimestampToMicroseconds(const Int96 &impala_timestamp) {
19
19
  int64_t days_since_epoch = impala_timestamp.value[2] - JULIAN_TO_UNIX_EPOCH_DAYS;
20
- auto nanoseconds = Load<int64_t>((data_ptr_t)impala_timestamp.value);
20
+ auto nanoseconds = Load<int64_t>(const_data_ptr_cast(impala_timestamp.value));
21
21
  auto microseconds = nanoseconds / NANOSECONDS_PER_MICRO;
22
22
  return days_since_epoch * MICROSECONDS_PER_DAY + microseconds;
23
23
  }
@@ -35,7 +35,7 @@ Int96 TimestampToImpalaTimestamp(timestamp_t &ts) {
35
35
  // first two uint32 in Int96 are nanoseconds since midnights
36
36
  // last uint32 is number of days since year 4713 BC ("Julian date")
37
37
  Int96 impala_ts;
38
- Store<uint64_t>(ms_since_midnight * 1000000, (data_ptr_t)impala_ts.value);
38
+ Store<uint64_t>(ms_since_midnight * 1000000, data_ptr_cast(impala_ts.value));
39
39
  impala_ts.value[2] = days_since_epoch + JULIAN_TO_UNIX_EPOCH_DAYS;
40
40
  return impala_ts;
41
41
  }
@@ -45,7 +45,7 @@ public:
45
45
  }
46
46
 
47
47
  void write_virt(const uint8_t *buf, uint32_t len) override {
48
- serializer.WriteData((const_data_ptr_t)buf, len);
48
+ serializer.WriteData(const_data_ptr_cast(buf), len);
49
49
  }
50
50
 
51
51
  private:
@@ -232,7 +232,7 @@ ParquetWriter::ParquetWriter(FileSystem &fs, string file_name_p, vector<LogicalT
232
232
  writer = make_uniq<BufferedFileWriter>(fs, file_name.c_str(),
233
233
  FileFlags::FILE_FLAGS_WRITE | FileFlags::FILE_FLAGS_FILE_CREATE_NEW);
234
234
  // parquet files start with the string "PAR1"
235
- writer->WriteData((const_data_ptr_t) "PAR1", 4);
235
+ writer->WriteData(const_data_ptr_cast("PAR1"), 4);
236
236
  TCompactProtocolFactoryT<MyTransport> tproto_factory;
237
237
  protocol = tproto_factory.getProtocol(make_shared<MyTransport>(*writer));
238
238
 
@@ -327,7 +327,7 @@ void ParquetWriter::Finalize() {
327
327
  writer->Write<uint32_t>(writer->GetTotalWritten() - start_offset);
328
328
 
329
329
  // parquet files also end with the string "PAR1"
330
- writer->WriteData((const_data_ptr_t) "PAR1", 4);
330
+ writer->WriteData(const_data_ptr_cast("PAR1"), 4);
331
331
 
332
332
  // flush to disk
333
333
  writer->Sync();
@@ -61,9 +61,9 @@ bool ZstdStreamWrapper::Read(StreamData &sd) {
61
61
  throw IOException(duckdb_zstd::ZSTD_getErrorName(res));
62
62
  }
63
63
 
64
- sd.in_buff_start = (data_ptr_t)in_buffer.src + in_buffer.pos;
65
- sd.in_buff_end = (data_ptr_t)in_buffer.src + in_buffer.size;
66
- sd.out_buff_end = (data_ptr_t)out_buffer.dst + out_buffer.pos;
64
+ sd.in_buff_start = (data_ptr_t)in_buffer.src + in_buffer.pos; // NOLINT
65
+ sd.in_buff_end = (data_ptr_t)in_buffer.src + in_buffer.size; // NOLINT
66
+ sd.out_buff_end = (data_ptr_t)out_buffer.dst + out_buffer.pos; // NOLINT
67
67
  return false;
68
68
  }
69
69
 
@@ -42,7 +42,7 @@ private:
42
42
  };
43
43
 
44
44
  CatalogSet::CatalogSet(Catalog &catalog_p, unique_ptr<DefaultGenerator> defaults)
45
- : catalog((DuckCatalog &)catalog_p), defaults(std::move(defaults)) {
45
+ : catalog(catalog_p.Cast<DuckCatalog>()), defaults(std::move(defaults)) {
46
46
  D_ASSERT(catalog_p.IsDuckCatalog());
47
47
  }
48
48
  CatalogSet::~CatalogSet() {
@@ -220,8 +220,8 @@ void DependencyManager::AddOwnership(CatalogTransaction transaction, CatalogEntr
220
220
  // Emplace guarantees that the same object cannot be inserted twice in the unordered_set
221
221
  // In the case AddOwnership is called twice, because of emplace, the object will not be repeated in the set.
222
222
  // We use an automatic dependency because if the Owner gets deleted, then the owned objects are also deleted
223
- dependents_map[owner].emplace(Dependency(entry, DependencyType::DEPENDENCY_OWNS));
224
- dependents_map[entry].emplace(Dependency(owner, DependencyType::DEPENDENCY_OWNED_BY));
223
+ dependents_map[owner].emplace(entry, DependencyType::DEPENDENCY_OWNS);
224
+ dependents_map[entry].emplace(owner, DependencyType::DEPENDENCY_OWNED_BY);
225
225
  dependencies_map[owner].emplace(entry);
226
226
  }
227
227
 
@@ -162,8 +162,8 @@ struct ArrowScalarBaseData {
162
162
 
163
163
  // append the main data
164
164
  append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(TGT) * size);
165
- auto data = (SRC *)format.data;
166
- auto result_data = (TGT *)append_data.main_buffer.data();
165
+ auto data = UnifiedVectorFormat::GetData<SRC>(format);
166
+ auto result_data = append_data.main_buffer.GetData<TGT>();
167
167
 
168
168
  for (idx_t i = from; i < to; i++) {
169
169
  auto source_idx = format.sel->get_index(i);
@@ -210,8 +210,8 @@ struct ArrowEnumData : public ArrowScalarBaseData<TGT> {
210
210
 
211
211
  // resize the offset buffer - the offset buffer holds the offsets into the child array
212
212
  append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(uint32_t) * (size + 1));
213
- auto data = (string_t *)FlatVector::GetData<string_t>(input);
214
- auto offset_data = (uint32_t *)append_data.main_buffer.data();
213
+ auto data = FlatVector::GetData<string_t>(input);
214
+ auto offset_data = append_data.main_buffer.GetData<uint32_t>();
215
215
  if (append_data.row_count == 0) {
216
216
  // first entry
217
217
  offset_data[0] = 0;
@@ -269,10 +269,10 @@ struct ArrowBoolData {
269
269
  // we initialize both the validity and the bit set to 1's
270
270
  ResizeValidity(append_data.validity, append_data.row_count + size);
271
271
  ResizeValidity(append_data.main_buffer, append_data.row_count + size);
272
- auto data = (bool *)format.data;
272
+ auto data = UnifiedVectorFormat::GetData<bool>(format);
273
273
 
274
- auto result_data = (uint8_t *)append_data.main_buffer.data();
275
- auto validity_data = (uint8_t *)append_data.validity.data();
274
+ auto result_data = append_data.main_buffer.GetData<uint8_t>();
275
+ auto validity_data = append_data.validity.GetData<uint8_t>();
276
276
  uint8_t current_bit;
277
277
  idx_t current_byte;
278
278
  GetBitPosition(append_data.row_count, current_byte, current_bit);
@@ -318,7 +318,7 @@ struct ArrowUUIDConverter {
318
318
 
319
319
  template <class SRC>
320
320
  static void WriteData(data_ptr_t target, SRC input) {
321
- UUID::ToString(input, (char *)target);
321
+ UUID::ToString(input, char_ptr_cast(target));
322
322
  }
323
323
  };
324
324
 
@@ -341,8 +341,8 @@ struct ArrowVarcharData {
341
341
 
342
342
  // resize the offset buffer - the offset buffer holds the offsets into the child array
343
343
  append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(BUFTYPE) * (size + 1));
344
- auto data = (SRC *)format.data;
345
- auto offset_data = (BUFTYPE *)append_data.main_buffer.data();
344
+ auto data = UnifiedVectorFormat::GetData<SRC>(format);
345
+ auto offset_data = append_data.main_buffer.GetData<BUFTYPE>();
346
346
  if (append_data.row_count == 0) {
347
347
  // first entry
348
348
  offset_data[0] = 0;
@@ -441,8 +441,8 @@ void AppendListOffsets(ArrowAppendData &append_data, UnifiedVectorFormat &format
441
441
  // resize the offset buffer - the offset buffer holds the offsets into the child array
442
442
  idx_t size = to - from;
443
443
  append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(uint32_t) * (size + 1));
444
- auto data = (list_entry_t *)format.data;
445
- auto offset_data = (uint32_t *)append_data.main_buffer.data();
444
+ auto data = UnifiedVectorFormat::GetData<list_entry_t>(format);
445
+ auto offset_data = append_data.main_buffer.GetData<uint32_t>();
446
446
  if (append_data.row_count == 0) {
447
447
  // first entry
448
448
  offset_data[0] = 0;
@@ -77,7 +77,7 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
77
77
  if (!stream->release) {
78
78
  return -1;
79
79
  }
80
- auto my_stream = (ResultArrowArrayStreamWrapper *)stream->private_data;
80
+ auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
81
81
  if (!my_stream->column_types.empty()) {
82
82
  ArrowConverter::ToArrowSchema(out, my_stream->column_types, my_stream->column_names,
83
83
  my_stream->timezone_config);
@@ -90,7 +90,7 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
90
90
  return -1;
91
91
  }
92
92
  if (result.type == QueryResultType::STREAM_RESULT) {
93
- auto &stream_result = (StreamQueryResult &)result;
93
+ auto &stream_result = result.Cast<StreamQueryResult>();
94
94
  if (!stream_result.IsOpen()) {
95
95
  my_stream->last_error = PreservedError("Query Stream is closed");
96
96
  return -1;
@@ -108,14 +108,14 @@ int ResultArrowArrayStreamWrapper::MyStreamGetNext(struct ArrowArrayStream *stre
108
108
  if (!stream->release) {
109
109
  return -1;
110
110
  }
111
- auto my_stream = (ResultArrowArrayStreamWrapper *)stream->private_data;
111
+ auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
112
112
  auto &result = *my_stream->result;
113
113
  if (result.HasError()) {
114
114
  my_stream->last_error = result.GetErrorObject();
115
115
  return -1;
116
116
  }
117
117
  if (result.type == QueryResultType::STREAM_RESULT) {
118
- auto &stream_result = (StreamQueryResult &)result;
118
+ auto &stream_result = result.Cast<StreamQueryResult>();
119
119
  if (!stream_result.IsOpen()) {
120
120
  // Nothing to output
121
121
  out->release = nullptr;
@@ -145,7 +145,7 @@ void ResultArrowArrayStreamWrapper::MyStreamRelease(struct ArrowArrayStream *str
145
145
  return;
146
146
  }
147
147
  stream->release = nullptr;
148
- delete (ResultArrowArrayStreamWrapper *)stream->private_data;
148
+ delete reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
149
149
  }
150
150
 
151
151
  const char *ResultArrowArrayStreamWrapper::MyStreamGetLastError(struct ArrowArrayStream *stream) {
@@ -153,7 +153,7 @@ const char *ResultArrowArrayStreamWrapper::MyStreamGetLastError(struct ArrowArra
153
153
  return "stream was released";
154
154
  }
155
155
  D_ASSERT(stream->private_data);
156
- auto my_stream = (ResultArrowArrayStreamWrapper *)stream->private_data;
156
+ auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
157
157
  return my_stream->last_error.Message().c_str();
158
158
  }
159
159
 
@@ -175,7 +175,7 @@ ResultArrowArrayStreamWrapper::ResultArrowArrayStreamWrapper(unique_ptr<QueryRes
175
175
 
176
176
  bool ArrowUtil::TryFetchNext(QueryResult &result, unique_ptr<DataChunk> &chunk, PreservedError &error) {
177
177
  if (result.type == QueryResultType::STREAM_RESULT) {
178
- auto &stream_result = (StreamQueryResult &)result;
178
+ auto &stream_result = result.Cast<StreamQueryResult>();
179
179
  if (!stream_result.IsOpen()) {
180
180
  return true;
181
181
  }
@@ -9,7 +9,7 @@ hash_t Checksum(uint64_t x) {
9
9
 
10
10
  uint64_t Checksum(uint8_t *buffer, size_t size) {
11
11
  uint64_t result = 5381;
12
- uint64_t *ptr = (uint64_t *)buffer;
12
+ uint64_t *ptr = reinterpret_cast<uint64_t *>(buffer);
13
13
  size_t i;
14
14
  // for efficiency, we first checksum uint64_t values
15
15
  for (i = 0; i < size / 8; i++) {
@@ -115,28 +115,28 @@ void CompressedFile::Close() {
115
115
  }
116
116
 
117
117
  int64_t CompressedFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes) {
118
- auto &compressed_file = (CompressedFile &)handle;
118
+ auto &compressed_file = handle.Cast<CompressedFile>();
119
119
  return compressed_file.ReadData(buffer, nr_bytes);
120
120
  }
121
121
 
122
122
  int64_t CompressedFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes) {
123
- auto &compressed_file = (CompressedFile &)handle;
124
- return compressed_file.WriteData((data_ptr_t)buffer, nr_bytes);
123
+ auto &compressed_file = handle.Cast<CompressedFile>();
124
+ return compressed_file.WriteData(data_ptr_cast(buffer), nr_bytes);
125
125
  }
126
126
 
127
127
  void CompressedFileSystem::Reset(FileHandle &handle) {
128
- auto &compressed_file = (CompressedFile &)handle;
128
+ auto &compressed_file = handle.Cast<CompressedFile>();
129
129
  compressed_file.child_handle->Reset();
130
130
  compressed_file.Initialize(compressed_file.write);
131
131
  }
132
132
 
133
133
  int64_t CompressedFileSystem::GetFileSize(FileHandle &handle) {
134
- auto &compressed_file = (CompressedFile &)handle;
134
+ auto &compressed_file = handle.Cast<CompressedFile>();
135
135
  return compressed_file.child_handle->GetFileSize();
136
136
  }
137
137
 
138
138
  bool CompressedFileSystem::OnDiskFile(FileHandle &handle) {
139
- auto &compressed_file = (CompressedFile &)handle;
139
+ auto &compressed_file = handle.Cast<CompressedFile>();
140
140
  return compressed_file.child_handle->OnDiskFile();
141
141
  }
142
142
 
@@ -30,7 +30,7 @@ static void ByteReverse(unsigned char *buf, unsigned longs) {
30
30
  uint32_t t;
31
31
  do {
32
32
  t = (uint32_t)((unsigned)buf[3] << 8 | buf[2]) << 16 | ((unsigned)buf[1] << 8 | buf[0]);
33
- *(uint32_t *)buf = t;
33
+ *reinterpret_cast<uint32_t *>(buf) = t;
34
34
  buf += 4;
35
35
  } while (--longs);
36
36
  }
@@ -174,7 +174,7 @@ void MD5Context::MD5Update(const_data_ptr_t input, idx_t len) {
174
174
  }
175
175
  memcpy(p, input, t);
176
176
  ByteReverse(in, 16);
177
- MD5Transform(buf, (uint32_t *)in);
177
+ MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
178
178
  input += t;
179
179
  len -= t;
180
180
  }
@@ -184,7 +184,7 @@ void MD5Context::MD5Update(const_data_ptr_t input, idx_t len) {
184
184
  while (len >= 64) {
185
185
  memcpy(in, input, 64);
186
186
  ByteReverse(in, 16);
187
- MD5Transform(buf, (uint32_t *)in);
187
+ MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
188
188
  input += 64;
189
189
  len -= 64;
190
190
  }
@@ -217,7 +217,7 @@ void MD5Context::Finish(data_ptr_t out_digest) {
217
217
  /* Two lots of padding: Pad the first block to 64 bytes */
218
218
  memset(p, 0, count);
219
219
  ByteReverse(in, 16);
220
- MD5Transform(buf, (uint32_t *)in);
220
+ MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
221
221
 
222
222
  /* Now fill the next block with 56 bytes */
223
223
  memset(in, 0, 56);
@@ -228,11 +228,11 @@ void MD5Context::Finish(data_ptr_t out_digest) {
228
228
  ByteReverse(in, 14);
229
229
 
230
230
  /* Append length in bits and transform */
231
- ((uint32_t *)in)[14] = bits[0];
232
- ((uint32_t *)in)[15] = bits[1];
231
+ (reinterpret_cast<uint32_t *>(in))[14] = bits[0];
232
+ (reinterpret_cast<uint32_t *>(in))[15] = bits[1];
233
233
 
234
- MD5Transform(buf, (uint32_t *)in);
235
- ByteReverse((unsigned char *)buf, 4);
234
+ MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
235
+ ByteReverse(reinterpret_cast<unsigned char *>(buf), 4);
236
236
  memcpy(out_digest, buf, 16);
237
237
  }
238
238
 
@@ -260,7 +260,7 @@ string MD5Context::FinishHex() {
260
260
  }
261
261
 
262
262
  void MD5Context::Add(const char *data) {
263
- MD5Update((const_data_ptr_t)data, strlen(data));
263
+ MD5Update(const_data_ptr_cast(data), strlen(data));
264
264
  }
265
265
 
266
266
  } // namespace duckdb
@@ -29,7 +29,7 @@ template <>
29
29
  void FieldWriter::Write(const string &val) {
30
30
  Write<uint32_t>((uint32_t)val.size());
31
31
  if (!val.empty()) {
32
- WriteData((const_data_ptr_t)val.c_str(), val.size());
32
+ WriteData(const_data_ptr_cast(val.c_str()), val.size());
33
33
  }
34
34
  }
35
35
 
@@ -114,9 +114,22 @@ string FileSystem::GetEnvVariable(const string &env) {
114
114
  return WindowsUtil::UnicodeToUTF8(res_w);
115
115
  }
116
116
 
117
+ static bool StartsWithSingleBackslash(const string &path) {
118
+ if (path.size() < 2) {
119
+ return false;
120
+ }
121
+ if (path[0] != '/' && path[0] != '\\') {
122
+ return false;
123
+ }
124
+ if (path[1] == '/' || path[1] == '\\') {
125
+ return false;
126
+ }
127
+ return true;
128
+ }
129
+
117
130
  bool FileSystem::IsPathAbsolute(const string &path) {
118
131
  // 1) A single backslash or forward-slash
119
- if (PathMatched(path, "\\") || PathMatched(path, "/")) {
132
+ if (StartsWithSingleBackslash(path)) {
120
133
  return true;
121
134
  }
122
135
  // 2) A disk designator with a backslash (e.g., C:\ or C:/)
@@ -131,7 +144,7 @@ bool FileSystem::IsPathAbsolute(const string &path) {
131
144
  string FileSystem::NormalizeAbsolutePath(const string &path) {
132
145
  D_ASSERT(IsPathAbsolute(path));
133
146
  auto result = StringUtil::Lower(FileSystem::ConvertSeparators(path));
134
- if (PathMatched(result, "\\")) {
147
+ if (StartsWithSingleBackslash(result)) {
135
148
  // Path starts with a single backslash or forward slash
136
149
  // prepend drive letter
137
150
  return GetWorkingDirectory().substr(0, 2) + result;