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
@@ -42,6 +42,18 @@ public:
42
42
 
43
43
  virtual void FlushSegment(unique_ptr<ColumnSegment> segment, idx_t segment_size);
44
44
  virtual void WriteDataPointers(RowGroupWriter &writer);
45
+
46
+ public:
47
+ template <class TARGET>
48
+ TARGET &Cast() {
49
+ D_ASSERT(dynamic_cast<TARGET *>(this));
50
+ return reinterpret_cast<TARGET &>(*this);
51
+ }
52
+ template <class TARGET>
53
+ const TARGET &Cast() const {
54
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
55
+ return reinterpret_cast<const TARGET &>(*this);
56
+ }
45
57
  };
46
58
 
47
59
  struct PartialBlockForCheckpoint : public PartialBlock {
@@ -35,11 +35,33 @@ class RowGroupSegmentTree;
35
35
  struct SegmentScanState {
36
36
  virtual ~SegmentScanState() {
37
37
  }
38
+
39
+ template <class TARGET>
40
+ TARGET &Cast() {
41
+ D_ASSERT(dynamic_cast<TARGET *>(this));
42
+ return reinterpret_cast<TARGET &>(*this);
43
+ }
44
+ template <class TARGET>
45
+ const TARGET &Cast() const {
46
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
47
+ return reinterpret_cast<const TARGET &>(*this);
48
+ }
38
49
  };
39
50
 
40
51
  struct IndexScanState {
41
52
  virtual ~IndexScanState() {
42
53
  }
54
+
55
+ template <class TARGET>
56
+ TARGET &Cast() {
57
+ D_ASSERT(dynamic_cast<TARGET *>(this));
58
+ return reinterpret_cast<TARGET &>(*this);
59
+ }
60
+ template <class TARGET>
61
+ const TARGET &Cast() const {
62
+ D_ASSERT(dynamic_cast<const TARGET *>(this));
63
+ return reinterpret_cast<const TARGET &>(*this);
64
+ }
43
65
  };
44
66
 
45
67
  typedef unordered_map<block_id_t, BufferHandle> buffer_handle_set_t;
@@ -46,9 +46,9 @@ public:
46
46
  }
47
47
 
48
48
  private:
49
- bool CanCheckpoint(DuckTransaction *current = nullptr);
49
+ bool CanCheckpoint(optional_ptr<DuckTransaction> current = nullptr);
50
50
  //! Remove the given transaction from the list of active transactions
51
- void RemoveTransaction(DuckTransaction *transaction) noexcept;
51
+ void RemoveTransaction(DuckTransaction &transaction) noexcept;
52
52
  void LockClients(vector<ClientLockWrapper> &client_locks, ClientContext &context);
53
53
 
54
54
  private:
@@ -62,12 +62,12 @@ public:
62
62
  template <class TARGET>
63
63
  TARGET &Cast() {
64
64
  D_ASSERT(dynamic_cast<TARGET *>(this));
65
- return (TARGET &)*this;
65
+ return reinterpret_cast<TARGET &>(*this);
66
66
  }
67
67
  template <class TARGET>
68
68
  const TARGET &Cast() const {
69
69
  D_ASSERT(dynamic_cast<const TARGET *>(this));
70
- return (const TARGET &)*this;
70
+ return reinterpret_cast<const TARGET &>(*this);
71
71
  }
72
72
  };
73
73
 
@@ -12,7 +12,7 @@ using duckdb::timestamp_t;
12
12
 
13
13
  duckdb_state duckdb_appender_create(duckdb_connection connection, const char *schema, const char *table,
14
14
  duckdb_appender *out_appender) {
15
- Connection *conn = (Connection *)connection;
15
+ Connection *conn = reinterpret_cast<Connection *>(connection);
16
16
 
17
17
  if (!connection || !table || !out_appender) {
18
18
  return DuckDBError;
@@ -39,7 +39,7 @@ duckdb_state duckdb_appender_destroy(duckdb_appender *appender) {
39
39
  return DuckDBError;
40
40
  }
41
41
  duckdb_appender_close(*appender);
42
- auto wrapper = (AppenderWrapper *)*appender;
42
+ auto wrapper = reinterpret_cast<AppenderWrapper *>(*appender);
43
43
  if (wrapper) {
44
44
  delete wrapper;
45
45
  }
@@ -52,7 +52,7 @@ duckdb_state duckdb_appender_run_function(duckdb_appender appender, FUN &&functi
52
52
  if (!appender) {
53
53
  return DuckDBError;
54
54
  }
55
- auto wrapper = (AppenderWrapper *)appender;
55
+ auto wrapper = reinterpret_cast<AppenderWrapper *>(appender);
56
56
  if (!wrapper->appender) {
57
57
  return DuckDBError;
58
58
  }
@@ -72,7 +72,7 @@ const char *duckdb_appender_error(duckdb_appender appender) {
72
72
  if (!appender) {
73
73
  return nullptr;
74
74
  }
75
- auto wrapper = (AppenderWrapper *)appender;
75
+ auto wrapper = reinterpret_cast<AppenderWrapper *>(appender);
76
76
  if (wrapper->error.empty()) {
77
77
  return nullptr;
78
78
  }
@@ -92,7 +92,7 @@ duckdb_state duckdb_append_internal(duckdb_appender appender, T value) {
92
92
  if (!appender) {
93
93
  return DuckDBError;
94
94
  }
95
- auto *appender_instance = (AppenderWrapper *)appender;
95
+ auto *appender_instance = reinterpret_cast<AppenderWrapper *>(appender);
96
96
  try {
97
97
  appender_instance->appender->Append<T>(value);
98
98
  } catch (std::exception &ex) {
@@ -23,7 +23,7 @@ duckdb_state duckdb_query_arrow_schema(duckdb_arrow result, duckdb_arrow_schema
23
23
  if (!out_schema) {
24
24
  return DuckDBSuccess;
25
25
  }
26
- auto wrapper = (ArrowResultWrapper *)result;
26
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
27
27
  ArrowConverter::ToArrowSchema((ArrowSchema *)*out_schema, wrapper->result->types, wrapper->result->names,
28
28
  wrapper->timezone_config);
29
29
  return DuckDBSuccess;
@@ -33,7 +33,7 @@ duckdb_state duckdb_query_arrow_array(duckdb_arrow result, duckdb_arrow_array *o
33
33
  if (!out_array) {
34
34
  return DuckDBSuccess;
35
35
  }
36
- auto wrapper = (ArrowResultWrapper *)result;
36
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
37
37
  auto success = wrapper->result->TryFetch(wrapper->current_chunk, wrapper->result->GetErrorObject());
38
38
  if (!success) { // LCOV_EXCL_START
39
39
  return DuckDBError;
@@ -41,12 +41,12 @@ duckdb_state duckdb_query_arrow_array(duckdb_arrow result, duckdb_arrow_array *o
41
41
  if (!wrapper->current_chunk || wrapper->current_chunk->size() == 0) {
42
42
  return DuckDBSuccess;
43
43
  }
44
- ArrowConverter::ToArrowArray(*wrapper->current_chunk, (ArrowArray *)*out_array);
44
+ ArrowConverter::ToArrowArray(*wrapper->current_chunk, reinterpret_cast<ArrowArray *>(*out_array));
45
45
  return DuckDBSuccess;
46
46
  }
47
47
 
48
48
  idx_t duckdb_arrow_row_count(duckdb_arrow result) {
49
- auto wrapper = (ArrowResultWrapper *)result;
49
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
50
50
  if (wrapper->result->HasError()) {
51
51
  return 0;
52
52
  }
@@ -54,12 +54,12 @@ idx_t duckdb_arrow_row_count(duckdb_arrow result) {
54
54
  }
55
55
 
56
56
  idx_t duckdb_arrow_column_count(duckdb_arrow result) {
57
- auto wrapper = (ArrowResultWrapper *)result;
57
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
58
58
  return wrapper->result->ColumnCount();
59
59
  }
60
60
 
61
61
  idx_t duckdb_arrow_rows_changed(duckdb_arrow result) {
62
- auto wrapper = (ArrowResultWrapper *)result;
62
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
63
63
  if (wrapper->result->HasError()) {
64
64
  return 0;
65
65
  }
@@ -76,20 +76,20 @@ idx_t duckdb_arrow_rows_changed(duckdb_arrow result) {
76
76
  }
77
77
 
78
78
  const char *duckdb_query_arrow_error(duckdb_arrow result) {
79
- auto wrapper = (ArrowResultWrapper *)result;
79
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
80
80
  return wrapper->result->GetError().c_str();
81
81
  }
82
82
 
83
83
  void duckdb_destroy_arrow(duckdb_arrow *result) {
84
84
  if (*result) {
85
- auto wrapper = (ArrowResultWrapper *)*result;
85
+ auto wrapper = reinterpret_cast<ArrowResultWrapper *>(*result);
86
86
  delete wrapper;
87
87
  *result = nullptr;
88
88
  }
89
89
  }
90
90
 
91
91
  duckdb_state duckdb_execute_prepared_arrow(duckdb_prepared_statement prepared_statement, duckdb_arrow *out_result) {
92
- auto wrapper = (PreparedStatementWrapper *)prepared_statement;
92
+ auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
93
93
  if (!wrapper || !wrapper->statement || wrapper->statement->HasError() || !out_result) {
94
94
  return DuckDBError;
95
95
  }
@@ -105,6 +105,6 @@ duckdb_state duckdb_execute_prepared_arrow(duckdb_prepared_statement prepared_st
105
105
  auto result = wrapper->statement->Execute(wrapper->values, false);
106
106
  D_ASSERT(result->type == QueryResultType::MATERIALIZED_RESULT);
107
107
  arrow_wrapper->result = duckdb::unique_ptr_cast<QueryResult, MaterializedQueryResult>(std::move(result));
108
- *out_result = (duckdb_arrow)arrow_wrapper;
108
+ *out_result = reinterpret_cast<duckdb_arrow>(arrow_wrapper);
109
109
  return !arrow_wrapper->result->HasError() ? DuckDBSuccess : DuckDBError;
110
110
  }
@@ -34,7 +34,7 @@ bool CastDecimalCInternal(duckdb_result *source, duckdb_string &result, idx_t co
34
34
  default:
35
35
  throw duckdb::InternalException("Unimplemented internal type for decimal");
36
36
  }
37
- result.data = (char *)duckdb_malloc(sizeof(char) * (result_string.GetSize() + 1));
37
+ result.data = reinterpret_cast<char *>(duckdb_malloc(sizeof(char) * (result_string.GetSize() + 1)));
38
38
  memcpy(result.data, result_string.GetData(), result_string.GetSize());
39
39
  result.data[result_string.GetSize()] = '\0';
40
40
  result.size = result_string.GetSize();
@@ -68,7 +68,7 @@ duckdb_blob FetchDefaultValue::Operation() {
68
68
 
69
69
  template <>
70
70
  bool FromCBlobCastWrapper::Operation(duckdb_blob input, duckdb_string &result) {
71
- string_t input_str((const char *)input.data, input.size);
71
+ string_t input_str(const_char_ptr_cast(input.data), input.size);
72
72
  return ToCStringCastWrapper<duckdb::CastFromBlob>::template Operation<string_t, duckdb_string>(input_str, result);
73
73
  }
74
74
 
@@ -16,7 +16,7 @@ duckdb_state duckdb_create_config(duckdb_config *out_config) {
16
16
  } catch (...) { // LCOV_EXCL_START
17
17
  return DuckDBError;
18
18
  } // LCOV_EXCL_STOP
19
- *out_config = (duckdb_config)config;
19
+ *out_config = reinterpret_cast<duckdb_config>(config);
20
20
  return DuckDBSuccess;
21
21
  }
22
22
 
@@ -10,7 +10,7 @@ duckdb_data_chunk duckdb_create_data_chunk(duckdb_logical_type *ctypes, idx_t co
10
10
  }
11
11
  duckdb::vector<duckdb::LogicalType> types;
12
12
  for (idx_t i = 0; i < column_count; i++) {
13
- auto ltype = (duckdb::LogicalType *)ctypes[i];
13
+ auto ltype = reinterpret_cast<duckdb::LogicalType *>(ctypes[i]);
14
14
  types.push_back(*ltype);
15
15
  }
16
16
 
@@ -21,7 +21,7 @@ duckdb_data_chunk duckdb_create_data_chunk(duckdb_logical_type *ctypes, idx_t co
21
21
 
22
22
  void duckdb_destroy_data_chunk(duckdb_data_chunk *chunk) {
23
23
  if (chunk && *chunk) {
24
- auto dchunk = (duckdb::DataChunk *)*chunk;
24
+ auto dchunk = reinterpret_cast<duckdb::DataChunk *>(*chunk);
25
25
  delete dchunk;
26
26
  *chunk = nullptr;
27
27
  }
@@ -31,7 +31,7 @@ void duckdb_data_chunk_reset(duckdb_data_chunk chunk) {
31
31
  if (!chunk) {
32
32
  return;
33
33
  }
34
- auto dchunk = (duckdb::DataChunk *)chunk;
34
+ auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
35
35
  dchunk->Reset();
36
36
  }
37
37
 
@@ -39,7 +39,7 @@ idx_t duckdb_data_chunk_get_column_count(duckdb_data_chunk chunk) {
39
39
  if (!chunk) {
40
40
  return 0;
41
41
  }
42
- auto dchunk = (duckdb::DataChunk *)chunk;
42
+ auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
43
43
  return dchunk->ColumnCount();
44
44
  }
45
45
 
@@ -47,7 +47,7 @@ duckdb_vector duckdb_data_chunk_get_vector(duckdb_data_chunk chunk, idx_t col_id
47
47
  if (!chunk || col_idx >= duckdb_data_chunk_get_column_count(chunk)) {
48
48
  return nullptr;
49
49
  }
50
- auto dchunk = (duckdb::DataChunk *)chunk;
50
+ auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
51
51
  return reinterpret_cast<duckdb_vector>(&dchunk->data[col_idx]);
52
52
  }
53
53
 
@@ -55,7 +55,7 @@ idx_t duckdb_data_chunk_get_size(duckdb_data_chunk chunk) {
55
55
  if (!chunk) {
56
56
  return 0;
57
57
  }
58
- auto dchunk = (duckdb::DataChunk *)chunk;
58
+ auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
59
59
  return dchunk->size();
60
60
  }
61
61
 
@@ -63,7 +63,7 @@ void duckdb_data_chunk_set_size(duckdb_data_chunk chunk, idx_t size) {
63
63
  if (!chunk) {
64
64
  return;
65
65
  }
66
- auto dchunk = (duckdb::DataChunk *)chunk;
66
+ auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
67
67
  dchunk->SetCardinality(size);
68
68
  }
69
69
 
@@ -71,7 +71,7 @@ duckdb_logical_type duckdb_vector_get_column_type(duckdb_vector vector) {
71
71
  if (!vector) {
72
72
  return nullptr;
73
73
  }
74
- auto v = (duckdb::Vector *)vector;
74
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
75
75
  return reinterpret_cast<duckdb_logical_type>(new duckdb::LogicalType(v->GetType()));
76
76
  }
77
77
 
@@ -79,7 +79,7 @@ void *duckdb_vector_get_data(duckdb_vector vector) {
79
79
  if (!vector) {
80
80
  return nullptr;
81
81
  }
82
- auto v = (duckdb::Vector *)vector;
82
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
83
83
  return duckdb::FlatVector::GetData(*v);
84
84
  }
85
85
 
@@ -87,7 +87,7 @@ uint64_t *duckdb_vector_get_validity(duckdb_vector vector) {
87
87
  if (!vector) {
88
88
  return nullptr;
89
89
  }
90
- auto v = (duckdb::Vector *)vector;
90
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
91
91
  return duckdb::FlatVector::Validity(*v).GetData();
92
92
  }
93
93
 
@@ -95,7 +95,7 @@ void duckdb_vector_ensure_validity_writable(duckdb_vector vector) {
95
95
  if (!vector) {
96
96
  return;
97
97
  }
98
- auto v = (duckdb::Vector *)vector;
98
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
99
99
  auto &validity = duckdb::FlatVector::Validity(*v);
100
100
  validity.EnsureWritable();
101
101
  }
@@ -108,7 +108,7 @@ void duckdb_vector_assign_string_element_len(duckdb_vector vector, idx_t index,
108
108
  if (!vector) {
109
109
  return;
110
110
  }
111
- auto v = (duckdb::Vector *)vector;
111
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
112
112
  auto data = duckdb::FlatVector::GetData<duckdb::string_t>(*v);
113
113
  data[index] = duckdb::StringVector::AddString(*v, str, str_len);
114
114
  }
@@ -117,7 +117,7 @@ duckdb_vector duckdb_list_vector_get_child(duckdb_vector vector) {
117
117
  if (!vector) {
118
118
  return nullptr;
119
119
  }
120
- auto v = (duckdb::Vector *)vector;
120
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
121
121
  return reinterpret_cast<duckdb_vector>(&duckdb::ListVector::GetEntry(*v));
122
122
  }
123
123
 
@@ -125,7 +125,7 @@ idx_t duckdb_list_vector_get_size(duckdb_vector vector) {
125
125
  if (!vector) {
126
126
  return 0;
127
127
  }
128
- auto v = (duckdb::Vector *)vector;
128
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
129
129
  return duckdb::ListVector::GetListSize(*v);
130
130
  }
131
131
 
@@ -133,7 +133,7 @@ duckdb_state duckdb_list_vector_set_size(duckdb_vector vector, idx_t size) {
133
133
  if (!vector) {
134
134
  return duckdb_state::DuckDBError;
135
135
  }
136
- auto v = (duckdb::Vector *)vector;
136
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
137
137
  duckdb::ListVector::SetListSize(*v, size);
138
138
  return duckdb_state::DuckDBSuccess;
139
139
  }
@@ -142,7 +142,7 @@ duckdb_state duckdb_list_vector_reserve(duckdb_vector vector, idx_t required_cap
142
142
  if (!vector) {
143
143
  return duckdb_state::DuckDBError;
144
144
  }
145
- auto v = (duckdb::Vector *)vector;
145
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
146
146
  duckdb::ListVector::Reserve(*v, required_capacity);
147
147
  return duckdb_state::DuckDBSuccess;
148
148
  }
@@ -151,7 +151,7 @@ duckdb_vector duckdb_struct_vector_get_child(duckdb_vector vector, idx_t index)
151
151
  if (!vector) {
152
152
  return nullptr;
153
153
  }
154
- auto v = (duckdb::Vector *)vector;
154
+ auto v = reinterpret_cast<duckdb::Vector *>(vector);
155
155
  return reinterpret_cast<duckdb_vector>(duckdb::StructVector::GetEntries(*v)[index].get());
156
156
  }
157
157
 
@@ -33,7 +33,7 @@ duckdb_state duckdb_open(const char *path, duckdb_database *out) {
33
33
 
34
34
  void duckdb_close(duckdb_database *database) {
35
35
  if (database && *database) {
36
- auto wrapper = (DatabaseData *)*database;
36
+ auto wrapper = reinterpret_cast<DatabaseData *>(*database);
37
37
  delete wrapper;
38
38
  *database = nullptr;
39
39
  }
@@ -43,7 +43,7 @@ duckdb_state duckdb_connect(duckdb_database database, duckdb_connection *out) {
43
43
  if (!database || !out) {
44
44
  return DuckDBError;
45
45
  }
46
- auto wrapper = (DatabaseData *)database;
46
+ auto wrapper = reinterpret_cast<DatabaseData *>(database);
47
47
  Connection *connection;
48
48
  try {
49
49
  connection = new Connection(*wrapper->database);
@@ -56,14 +56,14 @@ duckdb_state duckdb_connect(duckdb_database database, duckdb_connection *out) {
56
56
 
57
57
  void duckdb_disconnect(duckdb_connection *connection) {
58
58
  if (connection && *connection) {
59
- Connection *conn = (Connection *)*connection;
59
+ Connection *conn = reinterpret_cast<Connection *>(*connection);
60
60
  delete conn;
61
61
  *connection = nullptr;
62
62
  }
63
63
  }
64
64
 
65
65
  duckdb_state duckdb_query(duckdb_connection connection, const char *query, duckdb_result *out) {
66
- Connection *conn = (Connection *)connection;
66
+ Connection *conn = reinterpret_cast<Connection *>(connection);
67
67
  auto result = conn->Query(query);
68
68
  return duckdb_translate_result(std::move(result), out);
69
69
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  void duckdb_destroy_value(duckdb_value *value) {
4
4
  if (value && *value) {
5
- auto val = (duckdb::Value *)*value;
5
+ auto val = reinterpret_cast<duckdb::Value *>(*value);
6
6
  delete val;
7
7
  *value = nullptr;
8
8
  }
@@ -22,18 +22,18 @@ duckdb_value duckdb_create_int64(int64_t input) {
22
22
  }
23
23
 
24
24
  char *duckdb_get_varchar(duckdb_value value) {
25
- auto val = (duckdb::Value *)value;
25
+ auto val = reinterpret_cast<duckdb::Value *>(value);
26
26
  auto str_val = val->DefaultCastAs(duckdb::LogicalType::VARCHAR);
27
27
  auto &str = duckdb::StringValue::Get(str_val);
28
28
 
29
- auto result = (char *)malloc(sizeof(char *) * (str.size() + 1));
29
+ auto result = reinterpret_cast<char *>(malloc(sizeof(char *) * (str.size() + 1)));
30
30
  memcpy(result, str.c_str(), str.size());
31
31
  result[str.size()] = '\0';
32
32
  return result;
33
33
  }
34
34
 
35
35
  int64_t duckdb_get_int64(duckdb_value value) {
36
- auto val = (duckdb::Value *)value;
36
+ auto val = reinterpret_cast<duckdb::Value *>(value);
37
37
  if (!val->DefaultTryCastAs(duckdb::LogicalType::BIGINT)) {
38
38
  return 0;
39
39
  }
@@ -4,7 +4,7 @@ static bool AssertLogicalTypeId(duckdb_logical_type type, duckdb::LogicalTypeId
4
4
  if (!type) {
5
5
  return false;
6
6
  }
7
- auto &ltype = *((duckdb::LogicalType *)type);
7
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
8
8
  if (ltype.id() != type_id) {
9
9
  return false;
10
10
  }
@@ -15,7 +15,7 @@ static bool AssertInternalType(duckdb_logical_type type, duckdb::PhysicalType ph
15
15
  if (!type) {
16
16
  return false;
17
17
  }
18
- auto &ltype = *((duckdb::LogicalType *)type);
18
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
19
19
  if (ltype.InternalType() != physical_type) {
20
20
  return false;
21
21
  }
@@ -31,7 +31,7 @@ duckdb_logical_type duckdb_create_list_type(duckdb_logical_type type) {
31
31
  return nullptr;
32
32
  }
33
33
  duckdb::LogicalType *ltype = new duckdb::LogicalType;
34
- *ltype = duckdb::LogicalType::LIST(*(duckdb::LogicalType *)type);
34
+ *ltype = duckdb::LogicalType::LIST(*reinterpret_cast<duckdb::LogicalType *>(type));
35
35
  return reinterpret_cast<duckdb_logical_type>(ltype);
36
36
  }
37
37
 
@@ -40,7 +40,7 @@ duckdb_logical_type duckdb_create_union_type(duckdb_logical_type member_types_p,
40
40
  if (!member_types_p || !member_names) {
41
41
  return nullptr;
42
42
  }
43
- duckdb::LogicalType *member_types = (duckdb::LogicalType *)member_types_p;
43
+ duckdb::LogicalType *member_types = reinterpret_cast<duckdb::LogicalType *>(member_types_p);
44
44
  duckdb::LogicalType *mtype = new duckdb::LogicalType;
45
45
  duckdb::child_list_t<duckdb::LogicalType> members;
46
46
 
@@ -56,7 +56,8 @@ duckdb_logical_type duckdb_create_map_type(duckdb_logical_type key_type, duckdb_
56
56
  return nullptr;
57
57
  }
58
58
  duckdb::LogicalType *mtype = new duckdb::LogicalType;
59
- *mtype = duckdb::LogicalType::MAP(*(duckdb::LogicalType *)key_type, *(duckdb::LogicalType *)value_type);
59
+ *mtype = duckdb::LogicalType::MAP(*reinterpret_cast<duckdb::LogicalType *>(key_type),
60
+ *reinterpret_cast<duckdb::LogicalType *>(value_type));
60
61
  return reinterpret_cast<duckdb_logical_type>(mtype);
61
62
  }
62
63
 
@@ -68,13 +69,13 @@ duckdb_type duckdb_get_type_id(duckdb_logical_type type) {
68
69
  if (!type) {
69
70
  return DUCKDB_TYPE_INVALID;
70
71
  }
71
- auto ltype = (duckdb::LogicalType *)type;
72
+ auto ltype = reinterpret_cast<duckdb::LogicalType *>(type);
72
73
  return duckdb::ConvertCPPTypeToC(*ltype);
73
74
  }
74
75
 
75
76
  void duckdb_destroy_logical_type(duckdb_logical_type *type) {
76
77
  if (type && *type) {
77
- auto ltype = (duckdb::LogicalType *)*type;
78
+ auto ltype = reinterpret_cast<duckdb::LogicalType *>(*type);
78
79
  delete ltype;
79
80
  *type = nullptr;
80
81
  }
@@ -84,7 +85,7 @@ uint8_t duckdb_decimal_width(duckdb_logical_type type) {
84
85
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::DECIMAL)) {
85
86
  return 0;
86
87
  }
87
- auto &ltype = *((duckdb::LogicalType *)type);
88
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
88
89
  return duckdb::DecimalType::GetWidth(ltype);
89
90
  }
90
91
 
@@ -92,7 +93,7 @@ uint8_t duckdb_decimal_scale(duckdb_logical_type type) {
92
93
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::DECIMAL)) {
93
94
  return 0;
94
95
  }
95
- auto &ltype = *((duckdb::LogicalType *)type);
96
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
96
97
  return duckdb::DecimalType::GetScale(ltype);
97
98
  }
98
99
 
@@ -100,7 +101,7 @@ duckdb_type duckdb_decimal_internal_type(duckdb_logical_type type) {
100
101
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::DECIMAL)) {
101
102
  return DUCKDB_TYPE_INVALID;
102
103
  }
103
- auto &ltype = *((duckdb::LogicalType *)type);
104
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
104
105
  switch (ltype.InternalType()) {
105
106
  case duckdb::PhysicalType::INT16:
106
107
  return DUCKDB_TYPE_SMALLINT;
@@ -119,7 +120,7 @@ duckdb_type duckdb_enum_internal_type(duckdb_logical_type type) {
119
120
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::ENUM)) {
120
121
  return DUCKDB_TYPE_INVALID;
121
122
  }
122
- auto &ltype = *((duckdb::LogicalType *)type);
123
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
123
124
  switch (ltype.InternalType()) {
124
125
  case duckdb::PhysicalType::UINT8:
125
126
  return DUCKDB_TYPE_UTINYINT;
@@ -136,7 +137,7 @@ uint32_t duckdb_enum_dictionary_size(duckdb_logical_type type) {
136
137
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::ENUM)) {
137
138
  return 0;
138
139
  }
139
- auto &ltype = *((duckdb::LogicalType *)type);
140
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
140
141
  return duckdb::EnumType::GetSize(ltype);
141
142
  }
142
143
 
@@ -144,7 +145,7 @@ char *duckdb_enum_dictionary_value(duckdb_logical_type type, idx_t index) {
144
145
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::ENUM)) {
145
146
  return nullptr;
146
147
  }
147
- auto &ltype = *((duckdb::LogicalType *)type);
148
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
148
149
  auto &vector = duckdb::EnumType::GetValuesInsertOrder(ltype);
149
150
  auto value = vector.GetValue(index);
150
151
  return strdup(duckdb::StringValue::Get(value).c_str());
@@ -155,7 +156,7 @@ duckdb_logical_type duckdb_list_type_child_type(duckdb_logical_type type) {
155
156
  !AssertLogicalTypeId(type, duckdb::LogicalTypeId::MAP)) {
156
157
  return nullptr;
157
158
  }
158
- auto &ltype = *((duckdb::LogicalType *)type);
159
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
159
160
  if (ltype.id() != duckdb::LogicalTypeId::LIST && ltype.id() != duckdb::LogicalTypeId::MAP) {
160
161
  return nullptr;
161
162
  }
@@ -166,7 +167,7 @@ duckdb_logical_type duckdb_map_type_key_type(duckdb_logical_type type) {
166
167
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::MAP)) {
167
168
  return nullptr;
168
169
  }
169
- auto &mtype = *((duckdb::LogicalType *)type);
170
+ auto &mtype = *(reinterpret_cast<duckdb::LogicalType *>(type));
170
171
  if (mtype.id() != duckdb::LogicalTypeId::MAP) {
171
172
  return nullptr;
172
173
  }
@@ -177,7 +178,7 @@ duckdb_logical_type duckdb_map_type_value_type(duckdb_logical_type type) {
177
178
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::MAP)) {
178
179
  return nullptr;
179
180
  }
180
- auto &mtype = *((duckdb::LogicalType *)type);
181
+ auto &mtype = *(reinterpret_cast<duckdb::LogicalType *>(type));
181
182
  if (mtype.id() != duckdb::LogicalTypeId::MAP) {
182
183
  return nullptr;
183
184
  }
@@ -188,7 +189,7 @@ idx_t duckdb_struct_type_child_count(duckdb_logical_type type) {
188
189
  if (!AssertInternalType(type, duckdb::PhysicalType::STRUCT)) {
189
190
  return 0;
190
191
  }
191
- auto &ltype = *((duckdb::LogicalType *)type);
192
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
192
193
  return duckdb::StructType::GetChildCount(ltype);
193
194
  }
194
195
 
@@ -210,7 +211,7 @@ char *duckdb_union_type_member_name(duckdb_logical_type type, idx_t index) {
210
211
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::UNION)) {
211
212
  return nullptr;
212
213
  }
213
- auto &ltype = *((duckdb::LogicalType *)type);
214
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
214
215
  return strdup(duckdb::UnionType::GetMemberName(ltype, index).c_str());
215
216
  }
216
217
 
@@ -221,7 +222,7 @@ duckdb_logical_type duckdb_union_type_member_type(duckdb_logical_type type, idx_
221
222
  if (!AssertLogicalTypeId(type, duckdb::LogicalTypeId::UNION)) {
222
223
  return nullptr;
223
224
  }
224
- auto &ltype = *((duckdb::LogicalType *)type);
225
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
225
226
  return reinterpret_cast<duckdb_logical_type>(
226
227
  new duckdb::LogicalType(duckdb::UnionType::GetMemberType(ltype, index)));
227
228
  }
@@ -230,7 +231,7 @@ char *duckdb_struct_type_child_name(duckdb_logical_type type, idx_t index) {
230
231
  if (!AssertInternalType(type, duckdb::PhysicalType::STRUCT)) {
231
232
  return nullptr;
232
233
  }
233
- auto &ltype = *((duckdb::LogicalType *)type);
234
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
234
235
  return strdup(duckdb::StructType::GetChildName(ltype, index).c_str());
235
236
  }
236
237
 
@@ -238,7 +239,7 @@ duckdb_logical_type duckdb_struct_type_child_type(duckdb_logical_type type, idx_
238
239
  if (!AssertInternalType(type, duckdb::PhysicalType::STRUCT)) {
239
240
  return nullptr;
240
241
  }
241
- auto &ltype = *((duckdb::LogicalType *)type);
242
+ auto &ltype = *(reinterpret_cast<duckdb::LogicalType *>(type));
242
243
  if (ltype.InternalType() != duckdb::PhysicalType::STRUCT) {
243
244
  return nullptr;
244
245
  }