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
@@ -32,25 +32,21 @@ VacuumOptions ParseOptions(int options) {
32
32
  return result;
33
33
  }
34
34
 
35
- unique_ptr<SQLStatement> Transformer::TransformVacuum(duckdb_libpgquery::PGNode *node) {
36
- auto stmt = reinterpret_cast<duckdb_libpgquery::PGVacuumStmt *>(node);
37
- D_ASSERT(stmt);
35
+ unique_ptr<SQLStatement> Transformer::TransformVacuum(duckdb_libpgquery::PGVacuumStmt &stmt) {
36
+ auto result = make_uniq<VacuumStatement>(ParseOptions(stmt.options));
38
37
 
39
- auto result = make_uniq<VacuumStatement>(ParseOptions(stmt->options));
40
-
41
- if (stmt->relation) {
42
- result->info->ref = TransformRangeVar(stmt->relation);
38
+ if (stmt.relation) {
39
+ result->info->ref = TransformRangeVar(*stmt.relation);
43
40
  result->info->has_table = true;
44
41
  }
45
42
 
46
- if (stmt->va_cols) {
43
+ if (stmt.va_cols) {
47
44
  D_ASSERT(result->info->has_table);
48
- for (auto col_node = stmt->va_cols->head; col_node != nullptr; col_node = col_node->next) {
45
+ for (auto col_node = stmt.va_cols->head; col_node != nullptr; col_node = col_node->next) {
49
46
  result->info->columns.emplace_back(
50
47
  reinterpret_cast<duckdb_libpgquery::PGValue *>(col_node->data.ptr_value)->val.str);
51
48
  }
52
49
  }
53
-
54
50
  return std::move(result);
55
51
  }
56
52
 
@@ -3,40 +3,40 @@
3
3
 
4
4
  namespace duckdb {
5
5
 
6
- unique_ptr<TableRef> Transformer::TransformRangeVar(duckdb_libpgquery::PGRangeVar *root) {
6
+ unique_ptr<TableRef> Transformer::TransformRangeVar(duckdb_libpgquery::PGRangeVar &root) {
7
7
  auto result = make_uniq<BaseTableRef>();
8
8
 
9
- result->alias = TransformAlias(root->alias, result->column_name_alias);
10
- if (root->relname) {
11
- result->table_name = root->relname;
9
+ result->alias = TransformAlias(root.alias, result->column_name_alias);
10
+ if (root.relname) {
11
+ result->table_name = root.relname;
12
12
  }
13
- if (root->catalogname) {
14
- result->catalog_name = root->catalogname;
13
+ if (root.catalogname) {
14
+ result->catalog_name = root.catalogname;
15
15
  }
16
- if (root->schemaname) {
17
- result->schema_name = root->schemaname;
16
+ if (root.schemaname) {
17
+ result->schema_name = root.schemaname;
18
18
  }
19
- if (root->sample) {
20
- result->sample = TransformSampleOptions(root->sample);
19
+ if (root.sample) {
20
+ result->sample = TransformSampleOptions(root.sample);
21
21
  }
22
- result->query_location = root->location;
22
+ result->query_location = root.location;
23
23
  return std::move(result);
24
24
  }
25
25
 
26
- QualifiedName Transformer::TransformQualifiedName(duckdb_libpgquery::PGRangeVar *root) {
26
+ QualifiedName Transformer::TransformQualifiedName(duckdb_libpgquery::PGRangeVar &root) {
27
27
  QualifiedName qname;
28
- if (root->catalogname) {
29
- qname.catalog = root->catalogname;
28
+ if (root.catalogname) {
29
+ qname.catalog = root.catalogname;
30
30
  } else {
31
31
  qname.catalog = INVALID_CATALOG;
32
32
  }
33
- if (root->schemaname) {
34
- qname.schema = root->schemaname;
33
+ if (root.schemaname) {
34
+ qname.schema = root.schemaname;
35
35
  } else {
36
36
  qname.schema = INVALID_SCHEMA;
37
37
  }
38
- if (root->relname) {
39
- qname.name = root->relname;
38
+ if (root.relname) {
39
+ qname.name = root.relname;
40
40
  } else {
41
41
  qname.name = string();
42
42
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  namespace duckdb {
6
6
 
7
- unique_ptr<TableRef> Transformer::TransformFrom(duckdb_libpgquery::PGList *root) {
7
+ unique_ptr<TableRef> Transformer::TransformFrom(optional_ptr<duckdb_libpgquery::PGList> root) {
8
8
  if (!root) {
9
9
  return make_uniq<EmptyTableRef>();
10
10
  }
@@ -15,8 +15,8 @@ unique_ptr<TableRef> Transformer::TransformFrom(duckdb_libpgquery::PGList *root)
15
15
  JoinRef *cur_root = result.get();
16
16
  idx_t list_size = 0;
17
17
  for (auto node = root->head; node != nullptr; node = node->next) {
18
- auto n = reinterpret_cast<duckdb_libpgquery::PGNode *>(node->data.ptr_value);
19
- unique_ptr<TableRef> next = TransformTableRefNode(n);
18
+ auto n = PGPointerCast<duckdb_libpgquery::PGNode>(node->data.ptr_value);
19
+ unique_ptr<TableRef> next = TransformTableRefNode(*n);
20
20
  if (!cur_root->left) {
21
21
  cur_root->left = std::move(next);
22
22
  } else if (!cur_root->right) {
@@ -34,8 +34,8 @@ unique_ptr<TableRef> Transformer::TransformFrom(duckdb_libpgquery::PGList *root)
34
34
  return std::move(result);
35
35
  }
36
36
 
37
- auto n = reinterpret_cast<duckdb_libpgquery::PGNode *>(root->head->data.ptr_value);
38
- return TransformTableRefNode(n);
37
+ auto n = PGPointerCast<duckdb_libpgquery::PGNode>(root->head->data.ptr_value);
38
+ return TransformTableRefNode(*n);
39
39
  }
40
40
 
41
41
  } // namespace duckdb
@@ -5,9 +5,9 @@
5
5
 
6
6
  namespace duckdb {
7
7
 
8
- unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *root) {
8
+ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr &root) {
9
9
  auto result = make_uniq<JoinRef>(JoinRefType::REGULAR);
10
- switch (root->jointype) {
10
+ switch (root.jointype) {
11
11
  case duckdb_libpgquery::PG_JOIN_INNER: {
12
12
  result->type = JoinType::INNER;
13
13
  break;
@@ -37,14 +37,14 @@ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *r
37
37
  break;
38
38
  }
39
39
  default: {
40
- throw NotImplementedException("Join type %d not supported\n", root->jointype);
40
+ throw NotImplementedException("Join type %d not supported\n", root.jointype);
41
41
  }
42
42
  }
43
43
 
44
44
  // Check the type of left arg and right arg before transform
45
- result->left = TransformTableRefNode(root->larg);
46
- result->right = TransformTableRefNode(root->rarg);
47
- switch (root->joinreftype) {
45
+ result->left = TransformTableRefNode(*root.larg);
46
+ result->right = TransformTableRefNode(*root.rarg);
47
+ switch (root.joinreftype) {
48
48
  case duckdb_libpgquery::PG_JOIN_NATURAL:
49
49
  result->ref_type = JoinRefType::NATURAL;
50
50
  break;
@@ -54,11 +54,11 @@ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *r
54
54
  default:
55
55
  break;
56
56
  }
57
- result->query_location = root->location;
57
+ result->query_location = root.location;
58
58
 
59
- if (root->usingClause && root->usingClause->length > 0) {
59
+ if (root.usingClause && root.usingClause->length > 0) {
60
60
  // usingClause is a list of strings
61
- for (auto node = root->usingClause->head; node != nullptr; node = node->next) {
61
+ for (auto node = root.usingClause->head; node != nullptr; node = node->next) {
62
62
  auto target = reinterpret_cast<duckdb_libpgquery::PGNode *>(node->data.ptr_value);
63
63
  D_ASSERT(target->type == duckdb_libpgquery::T_PGString);
64
64
  auto column_name = string(reinterpret_cast<duckdb_libpgquery::PGValue *>(target)->val.str);
@@ -67,10 +67,10 @@ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *r
67
67
  return std::move(result);
68
68
  }
69
69
 
70
- if (!root->quals && result->using_columns.empty() && result->ref_type == JoinRefType::REGULAR) { // CROSS PRODUCT
70
+ if (!root.quals && result->using_columns.empty() && result->ref_type == JoinRefType::REGULAR) { // CROSS PRODUCT
71
71
  result->ref_type = JoinRefType::CROSS;
72
72
  }
73
- result->condition = TransformExpression(root->quals);
73
+ result->condition = TransformExpression(root.quals);
74
74
  return std::move(result);
75
75
  }
76
76
 
@@ -32,10 +32,10 @@ static void TransformPivotInList(unique_ptr<ParsedExpression> &expr, PivotColumn
32
32
  }
33
33
  }
34
34
 
35
- PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot *pivot) {
35
+ PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot &pivot) {
36
36
  PivotColumn col;
37
- if (pivot->pivot_columns) {
38
- TransformExpressionList(*pivot->pivot_columns, col.pivot_expressions);
37
+ if (pivot.pivot_columns) {
38
+ TransformExpressionList(*pivot.pivot_columns, col.pivot_expressions);
39
39
  for (auto &expr : col.pivot_expressions) {
40
40
  if (expr->IsScalar()) {
41
41
  throw ParserException("Cannot pivot on constant value \"%s\"", expr->ToString());
@@ -44,14 +44,14 @@ PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot *pivot)
44
44
  throw ParserException("Cannot pivot on subquery \"%s\"", expr->ToString());
45
45
  }
46
46
  }
47
- } else if (pivot->unpivot_columns) {
48
- col.unpivot_names = TransformStringList(pivot->unpivot_columns);
47
+ } else if (pivot.unpivot_columns) {
48
+ col.unpivot_names = TransformStringList(pivot.unpivot_columns);
49
49
  } else {
50
50
  throw InternalException("Either pivot_columns or unpivot_columns must be defined");
51
51
  }
52
- if (pivot->pivot_value) {
53
- for (auto node = pivot->pivot_value->head; node != nullptr; node = node->next) {
54
- auto n = (duckdb_libpgquery::PGNode *)node->data.ptr_value;
52
+ if (pivot.pivot_value) {
53
+ for (auto node = pivot.pivot_value->head; node != nullptr; node = node->next) {
54
+ auto n = PGPointerCast<duckdb_libpgquery::PGNode>(node->data.ptr_value);
55
55
  auto expr = TransformExpression(n);
56
56
  PivotColumnEntry entry;
57
57
  entry.alias = expr->alias;
@@ -59,36 +59,36 @@ PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot *pivot)
59
59
  col.entries.push_back(std::move(entry));
60
60
  }
61
61
  }
62
- if (pivot->subquery) {
63
- col.subquery = TransformSelectNode(reinterpret_cast<duckdb_libpgquery::PGSelectStmt *>(pivot->subquery));
62
+ if (pivot.subquery) {
63
+ col.subquery = TransformSelectNode(*PGPointerCast<duckdb_libpgquery::PGSelectStmt>(pivot.subquery));
64
64
  }
65
- if (pivot->pivot_enum) {
66
- col.pivot_enum = pivot->pivot_enum;
65
+ if (pivot.pivot_enum) {
66
+ col.pivot_enum = pivot.pivot_enum;
67
67
  }
68
68
  return col;
69
69
  }
70
70
 
71
- vector<PivotColumn> Transformer::TransformPivotList(duckdb_libpgquery::PGList *list) {
71
+ vector<PivotColumn> Transformer::TransformPivotList(duckdb_libpgquery::PGList &list) {
72
72
  vector<PivotColumn> result;
73
- for (auto node = list->head; node != nullptr; node = node->next) {
74
- auto pivot = (duckdb_libpgquery::PGPivot *)node->data.ptr_value;
75
- result.push_back(TransformPivotColumn(pivot));
73
+ for (auto node = list.head; node != nullptr; node = node->next) {
74
+ auto pivot = PGPointerCast<duckdb_libpgquery::PGPivot>(node->data.ptr_value);
75
+ result.push_back(TransformPivotColumn(*pivot));
76
76
  }
77
77
  return result;
78
78
  }
79
79
 
80
- unique_ptr<TableRef> Transformer::TransformPivot(duckdb_libpgquery::PGPivotExpr *root) {
80
+ unique_ptr<TableRef> Transformer::TransformPivot(duckdb_libpgquery::PGPivotExpr &root) {
81
81
  auto result = make_uniq<PivotRef>();
82
- result->source = TransformTableRefNode(root->source);
83
- if (root->aggrs) {
84
- TransformExpressionList(*root->aggrs, result->aggregates);
82
+ result->source = TransformTableRefNode(*root.source);
83
+ if (root.aggrs) {
84
+ TransformExpressionList(*root.aggrs, result->aggregates);
85
85
  }
86
- if (root->unpivots) {
87
- result->unpivot_names = TransformStringList(root->unpivots);
86
+ if (root.unpivots) {
87
+ result->unpivot_names = TransformStringList(root.unpivots);
88
88
  }
89
- result->pivots = TransformPivotList(root->pivots);
90
- if (root->groups) {
91
- result->groups = TransformStringList(root->groups);
89
+ result->pivots = TransformPivotList(*root.pivots);
90
+ if (root.groups) {
91
+ result->groups = TransformStringList(root.groups);
92
92
  }
93
93
  for (auto &pivot : result->pivots) {
94
94
  idx_t expected_size;
@@ -116,8 +116,8 @@ unique_ptr<TableRef> Transformer::TransformPivot(duckdb_libpgquery::PGPivotExpr
116
116
  }
117
117
  }
118
118
  }
119
- result->include_nulls = root->include_nulls;
120
- result->alias = TransformAlias(root->alias, result->column_name_alias);
119
+ result->include_nulls = root.include_nulls;
120
+ result->alias = TransformAlias(root.alias, result->column_name_alias);
121
121
  return std::move(result);
122
122
  }
123
123
 
@@ -3,16 +3,16 @@
3
3
 
4
4
  namespace duckdb {
5
5
 
6
- unique_ptr<TableRef> Transformer::TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect *root) {
6
+ unique_ptr<TableRef> Transformer::TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect &root) {
7
7
  Transformer subquery_transformer(*this);
8
- auto subquery = subquery_transformer.TransformSelect(root->subquery);
8
+ auto subquery = subquery_transformer.TransformSelect(root.subquery);
9
9
  if (!subquery) {
10
10
  return nullptr;
11
11
  }
12
12
  auto result = make_uniq<SubqueryRef>(std::move(subquery));
13
- result->alias = TransformAlias(root->alias, result->column_name_alias);
14
- if (root->sample) {
15
- result->sample = TransformSampleOptions(root->sample);
13
+ result->alias = TransformAlias(root.alias, result->column_name_alias);
14
+ if (root.sample) {
15
+ result->sample = TransformSampleOptions(root.sample);
16
16
  }
17
17
  return std::move(result);
18
18
  }
@@ -4,19 +4,19 @@
4
4
 
5
5
  namespace duckdb {
6
6
 
7
- unique_ptr<TableRef> Transformer::TransformRangeFunction(duckdb_libpgquery::PGRangeFunction *root) {
8
- if (root->ordinality) {
7
+ unique_ptr<TableRef> Transformer::TransformRangeFunction(duckdb_libpgquery::PGRangeFunction &root) {
8
+ if (root.ordinality) {
9
9
  throw NotImplementedException("WITH ORDINALITY not implemented");
10
10
  }
11
- if (root->is_rowsfrom) {
11
+ if (root.is_rowsfrom) {
12
12
  throw NotImplementedException("ROWS FROM() not implemented");
13
13
  }
14
- if (root->functions->length != 1) {
14
+ if (root.functions->length != 1) {
15
15
  throw NotImplementedException("Need exactly one function");
16
16
  }
17
- auto function_sublist = (duckdb_libpgquery::PGList *)root->functions->head->data.ptr_value;
17
+ auto function_sublist = PGPointerCast<duckdb_libpgquery::PGList>(root.functions->head->data.ptr_value);
18
18
  D_ASSERT(function_sublist->length == 2);
19
- auto call_tree = (duckdb_libpgquery::PGNode *)function_sublist->head->data.ptr_value;
19
+ auto call_tree = PGPointerCast<duckdb_libpgquery::PGNode>(function_sublist->head->data.ptr_value);
20
20
  auto coldef = function_sublist->head->next->data.ptr_value;
21
21
 
22
22
  if (coldef) {
@@ -26,20 +26,21 @@ unique_ptr<TableRef> Transformer::TransformRangeFunction(duckdb_libpgquery::PGRa
26
26
  auto result = make_uniq<TableFunctionRef>();
27
27
  switch (call_tree->type) {
28
28
  case duckdb_libpgquery::T_PGFuncCall: {
29
- auto func_call = (duckdb_libpgquery::PGFuncCall *)call_tree;
30
- result->function = TransformFuncCall(func_call);
29
+ auto func_call = PGPointerCast<duckdb_libpgquery::PGFuncCall>(call_tree.get());
30
+ result->function = TransformFuncCall(*func_call);
31
31
  result->query_location = func_call->location;
32
32
  break;
33
33
  }
34
34
  case duckdb_libpgquery::T_PGSQLValueFunction:
35
- result->function = TransformSQLValueFunction((duckdb_libpgquery::PGSQLValueFunction *)call_tree);
35
+ result->function =
36
+ TransformSQLValueFunction(*PGPointerCast<duckdb_libpgquery::PGSQLValueFunction>(call_tree.get()));
36
37
  break;
37
38
  default:
38
39
  throw ParserException("Not a function call or value function");
39
40
  }
40
- result->alias = TransformAlias(root->alias, result->column_name_alias);
41
- if (root->sample) {
42
- result->sample = TransformSampleOptions(root->sample);
41
+ result->alias = TransformAlias(root.alias, result->column_name_alias);
42
+ if (root.sample) {
43
+ result->sample = TransformSampleOptions(root.sample);
43
44
  }
44
45
  return std::move(result);
45
46
  }
@@ -4,22 +4,22 @@
4
4
 
5
5
  namespace duckdb {
6
6
 
7
- unique_ptr<TableRef> Transformer::TransformTableRefNode(duckdb_libpgquery::PGNode *n) {
7
+ unique_ptr<TableRef> Transformer::TransformTableRefNode(duckdb_libpgquery::PGNode &n) {
8
8
  auto stack_checker = StackCheck();
9
9
 
10
- switch (n->type) {
10
+ switch (n.type) {
11
11
  case duckdb_libpgquery::T_PGRangeVar:
12
- return TransformRangeVar(reinterpret_cast<duckdb_libpgquery::PGRangeVar *>(n));
12
+ return TransformRangeVar(PGCast<duckdb_libpgquery::PGRangeVar>(n));
13
13
  case duckdb_libpgquery::T_PGJoinExpr:
14
- return TransformJoin(reinterpret_cast<duckdb_libpgquery::PGJoinExpr *>(n));
14
+ return TransformJoin(PGCast<duckdb_libpgquery::PGJoinExpr>(n));
15
15
  case duckdb_libpgquery::T_PGRangeSubselect:
16
- return TransformRangeSubselect(reinterpret_cast<duckdb_libpgquery::PGRangeSubselect *>(n));
16
+ return TransformRangeSubselect(PGCast<duckdb_libpgquery::PGRangeSubselect>(n));
17
17
  case duckdb_libpgquery::T_PGRangeFunction:
18
- return TransformRangeFunction(reinterpret_cast<duckdb_libpgquery::PGRangeFunction *>(n));
18
+ return TransformRangeFunction(PGCast<duckdb_libpgquery::PGRangeFunction>(n));
19
19
  case duckdb_libpgquery::T_PGPivotExpr:
20
- return TransformPivot(reinterpret_cast<duckdb_libpgquery::PGPivotExpr *>(n));
20
+ return TransformPivot(PGCast<duckdb_libpgquery::PGPivotExpr>(n));
21
21
  default:
22
- throw NotImplementedException("From Type %d not supported", n->type);
22
+ throw NotImplementedException("From Type %d not supported", n.type);
23
23
  }
24
24
  }
25
25
 
@@ -42,8 +42,8 @@ bool Transformer::TransformParseTree(duckdb_libpgquery::PGList *tree, vector<uni
42
42
  InitializeStackCheck();
43
43
  for (auto entry = tree->head; entry != nullptr; entry = entry->next) {
44
44
  Clear();
45
- auto n = (duckdb_libpgquery::PGNode *)entry->data.ptr_value;
46
- auto stmt = TransformStatement(n);
45
+ auto n = PGPointerCast<duckdb_libpgquery::PGNode>(entry->data.ptr_value);
46
+ auto stmt = TransformStatement(*n);
47
47
  D_ASSERT(stmt);
48
48
  if (HasPivotEntries()) {
49
49
  stmt = CreatePivotStatement(std::move(stmt));
@@ -69,7 +69,7 @@ StackChecker Transformer::StackCheck(idx_t extra_stack) {
69
69
  return StackChecker(root, extra_stack);
70
70
  }
71
71
 
72
- unique_ptr<SQLStatement> Transformer::TransformStatement(duckdb_libpgquery::PGNode *stmt) {
72
+ unique_ptr<SQLStatement> Transformer::TransformStatement(duckdb_libpgquery::PGNode &stmt) {
73
73
  auto result = TransformStatementInternal(stmt);
74
74
  result->n_param = ParamCount();
75
75
  if (!named_param_map.empty()) {
@@ -123,91 +123,91 @@ bool Transformer::HasNamedParameters() const {
123
123
  return !root.named_param_map.empty();
124
124
  }
125
125
 
126
- unique_ptr<SQLStatement> Transformer::TransformStatementInternal(duckdb_libpgquery::PGNode *stmt) {
127
- switch (stmt->type) {
126
+ unique_ptr<SQLStatement> Transformer::TransformStatementInternal(duckdb_libpgquery::PGNode &stmt) {
127
+ switch (stmt.type) {
128
128
  case duckdb_libpgquery::T_PGRawStmt: {
129
- auto raw_stmt = (duckdb_libpgquery::PGRawStmt *)stmt;
130
- auto result = TransformStatement(raw_stmt->stmt);
129
+ auto &raw_stmt = PGCast<duckdb_libpgquery::PGRawStmt>(stmt);
130
+ auto result = TransformStatement(*raw_stmt.stmt);
131
131
  if (result) {
132
- result->stmt_location = raw_stmt->stmt_location;
133
- result->stmt_length = raw_stmt->stmt_len;
132
+ result->stmt_location = raw_stmt.stmt_location;
133
+ result->stmt_length = raw_stmt.stmt_len;
134
134
  }
135
135
  return result;
136
136
  }
137
137
  case duckdb_libpgquery::T_PGSelectStmt:
138
- return TransformSelect(stmt);
138
+ return TransformSelect(PGCast<duckdb_libpgquery::PGSelectStmt>(stmt));
139
139
  case duckdb_libpgquery::T_PGCreateStmt:
140
- return TransformCreateTable(stmt);
140
+ return TransformCreateTable(PGCast<duckdb_libpgquery::PGCreateStmt>(stmt));
141
141
  case duckdb_libpgquery::T_PGCreateSchemaStmt:
142
- return TransformCreateSchema(stmt);
142
+ return TransformCreateSchema(PGCast<duckdb_libpgquery::PGCreateSchemaStmt>(stmt));
143
143
  case duckdb_libpgquery::T_PGViewStmt:
144
- return TransformCreateView(stmt);
144
+ return TransformCreateView(PGCast<duckdb_libpgquery::PGViewStmt>(stmt));
145
145
  case duckdb_libpgquery::T_PGCreateSeqStmt:
146
- return TransformCreateSequence(stmt);
146
+ return TransformCreateSequence(PGCast<duckdb_libpgquery::PGCreateSeqStmt>(stmt));
147
147
  case duckdb_libpgquery::T_PGCreateFunctionStmt:
148
- return TransformCreateFunction(stmt);
148
+ return TransformCreateFunction(PGCast<duckdb_libpgquery::PGCreateFunctionStmt>(stmt));
149
149
  case duckdb_libpgquery::T_PGDropStmt:
150
- return TransformDrop(stmt);
150
+ return TransformDrop(PGCast<duckdb_libpgquery::PGDropStmt>(stmt));
151
151
  case duckdb_libpgquery::T_PGInsertStmt:
152
- return TransformInsert(stmt);
152
+ return TransformInsert(PGCast<duckdb_libpgquery::PGInsertStmt>(stmt));
153
153
  case duckdb_libpgquery::T_PGCopyStmt:
154
- return TransformCopy(stmt);
154
+ return TransformCopy(PGCast<duckdb_libpgquery::PGCopyStmt>(stmt));
155
155
  case duckdb_libpgquery::T_PGTransactionStmt:
156
- return TransformTransaction(stmt);
156
+ return TransformTransaction(PGCast<duckdb_libpgquery::PGTransactionStmt>(stmt));
157
157
  case duckdb_libpgquery::T_PGDeleteStmt:
158
- return TransformDelete(stmt);
158
+ return TransformDelete(PGCast<duckdb_libpgquery::PGDeleteStmt>(stmt));
159
159
  case duckdb_libpgquery::T_PGUpdateStmt:
160
- return TransformUpdate(stmt);
160
+ return TransformUpdate(PGCast<duckdb_libpgquery::PGUpdateStmt>(stmt));
161
161
  case duckdb_libpgquery::T_PGIndexStmt:
162
- return TransformCreateIndex(stmt);
162
+ return TransformCreateIndex(PGCast<duckdb_libpgquery::PGIndexStmt>(stmt));
163
163
  case duckdb_libpgquery::T_PGAlterTableStmt:
164
- return TransformAlter(stmt);
164
+ return TransformAlter(PGCast<duckdb_libpgquery::PGAlterTableStmt>(stmt));
165
165
  case duckdb_libpgquery::T_PGRenameStmt:
166
- return TransformRename(stmt);
166
+ return TransformRename(PGCast<duckdb_libpgquery::PGRenameStmt>(stmt));
167
167
  case duckdb_libpgquery::T_PGPrepareStmt:
168
- return TransformPrepare(stmt);
168
+ return TransformPrepare(PGCast<duckdb_libpgquery::PGPrepareStmt>(stmt));
169
169
  case duckdb_libpgquery::T_PGExecuteStmt:
170
- return TransformExecute(stmt);
170
+ return TransformExecute(PGCast<duckdb_libpgquery::PGExecuteStmt>(stmt));
171
171
  case duckdb_libpgquery::T_PGDeallocateStmt:
172
- return TransformDeallocate(stmt);
172
+ return TransformDeallocate(PGCast<duckdb_libpgquery::PGDeallocateStmt>(stmt));
173
173
  case duckdb_libpgquery::T_PGCreateTableAsStmt:
174
- return TransformCreateTableAs(stmt);
174
+ return TransformCreateTableAs(PGCast<duckdb_libpgquery::PGCreateTableAsStmt>(stmt));
175
175
  case duckdb_libpgquery::T_PGPragmaStmt:
176
- return TransformPragma(stmt);
176
+ return TransformPragma(PGCast<duckdb_libpgquery::PGPragmaStmt>(stmt));
177
177
  case duckdb_libpgquery::T_PGExportStmt:
178
- return TransformExport(stmt);
178
+ return TransformExport(PGCast<duckdb_libpgquery::PGExportStmt>(stmt));
179
179
  case duckdb_libpgquery::T_PGImportStmt:
180
- return TransformImport(stmt);
180
+ return TransformImport(PGCast<duckdb_libpgquery::PGImportStmt>(stmt));
181
181
  case duckdb_libpgquery::T_PGExplainStmt:
182
- return TransformExplain(stmt);
182
+ return TransformExplain(PGCast<duckdb_libpgquery::PGExplainStmt>(stmt));
183
183
  case duckdb_libpgquery::T_PGVacuumStmt:
184
- return TransformVacuum(stmt);
184
+ return TransformVacuum(PGCast<duckdb_libpgquery::PGVacuumStmt>(stmt));
185
185
  case duckdb_libpgquery::T_PGVariableShowStmt:
186
- return TransformShow(stmt);
186
+ return TransformShow(PGCast<duckdb_libpgquery::PGVariableShowStmt>(stmt));
187
187
  case duckdb_libpgquery::T_PGVariableShowSelectStmt:
188
- return TransformShowSelect(stmt);
188
+ return TransformShowSelect(PGCast<duckdb_libpgquery::PGVariableShowSelectStmt>(stmt));
189
189
  case duckdb_libpgquery::T_PGCallStmt:
190
- return TransformCall(stmt);
190
+ return TransformCall(PGCast<duckdb_libpgquery::PGCallStmt>(stmt));
191
191
  case duckdb_libpgquery::T_PGVariableSetStmt:
192
- return TransformSet(stmt);
192
+ return TransformSet(PGCast<duckdb_libpgquery::PGVariableSetStmt>(stmt));
193
193
  case duckdb_libpgquery::T_PGCheckPointStmt:
194
- return TransformCheckpoint(stmt);
194
+ return TransformCheckpoint(PGCast<duckdb_libpgquery::PGCheckPointStmt>(stmt));
195
195
  case duckdb_libpgquery::T_PGLoadStmt:
196
- return TransformLoad(stmt);
196
+ return TransformLoad(PGCast<duckdb_libpgquery::PGLoadStmt>(stmt));
197
197
  case duckdb_libpgquery::T_PGCreateTypeStmt:
198
- return TransformCreateType(stmt);
198
+ return TransformCreateType(PGCast<duckdb_libpgquery::PGCreateTypeStmt>(stmt));
199
199
  case duckdb_libpgquery::T_PGAlterSeqStmt:
200
- return TransformAlterSequence(stmt);
200
+ return TransformAlterSequence(PGCast<duckdb_libpgquery::PGAlterSeqStmt>(stmt));
201
201
  case duckdb_libpgquery::T_PGAttachStmt:
202
- return TransformAttach(stmt);
202
+ return TransformAttach(PGCast<duckdb_libpgquery::PGAttachStmt>(stmt));
203
203
  case duckdb_libpgquery::T_PGDetachStmt:
204
- return TransformDetach(stmt);
204
+ return TransformDetach(PGCast<duckdb_libpgquery::PGDetachStmt>(stmt));
205
205
  case duckdb_libpgquery::T_PGUseStmt:
206
- return TransformUse(stmt);
206
+ return TransformUse(PGCast<duckdb_libpgquery::PGUseStmt>(stmt));
207
207
  case duckdb_libpgquery::T_PGCreateDatabaseStmt:
208
- return TransformCreateDatabase(stmt);
208
+ return TransformCreateDatabase(PGCast<duckdb_libpgquery::PGCreateDatabaseStmt>(stmt));
209
209
  default:
210
- throw NotImplementedException(NodetypeToString(stmt->type));
210
+ throw NotImplementedException(NodetypeToString(stmt.type));
211
211
  }
212
212
  }
213
213
 
@@ -12,6 +12,7 @@
12
12
  #include "duckdb/parser/tableref/table_function_ref.hpp"
13
13
  #include "duckdb/planner/bound_query_node.hpp"
14
14
  #include "duckdb/planner/expression/bound_columnref_expression.hpp"
15
+ #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp"
15
16
  #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp"
16
17
  #include "duckdb/planner/expression_binder/constant_binder.hpp"
17
18
 
@@ -161,7 +162,7 @@ unique_ptr<ParsedExpression> BindContext::ExpandGeneratedColumn(const string &ta
161
162
 
162
163
  auto binding = GetBinding(table_name, error_message);
163
164
  D_ASSERT(binding);
164
- auto &table_binding = (TableBinding &)*binding;
165
+ auto &table_binding = binding->Cast<TableBinding>();
165
166
  auto result = table_binding.ExpandGeneratedColumn(column_name);
166
167
  result->alias = column_name;
167
168
  return result;
@@ -176,7 +177,7 @@ static bool ColumnIsGenerated(Binding &binding, column_t index) {
176
177
  if (binding.binding_type != BindingType::TABLE) {
177
178
  return false;
178
179
  }
179
- auto &table_binding = (TableBinding &)binding;
180
+ auto &table_binding = binding.Cast<TableBinding>();
180
181
  auto catalog_entry = table_binding.GetStandardEntry();
181
182
  if (!catalog_entry) {
182
183
  return false;
@@ -483,15 +484,14 @@ void BindContext::AddSubquery(idx_t index, const string &alias, SubqueryRef &ref
483
484
  }
484
485
 
485
486
  void BindContext::AddEntryBinding(idx_t index, const string &alias, const vector<string> &names,
486
- const vector<LogicalType> &types, StandardEntry *entry) {
487
- D_ASSERT(entry);
488
- AddBinding(alias, make_uniq<EntryBinding>(alias, types, names, index, *entry));
487
+ const vector<LogicalType> &types, StandardEntry &entry) {
488
+ AddBinding(alias, make_uniq<EntryBinding>(alias, types, names, index, entry));
489
489
  }
490
490
 
491
491
  void BindContext::AddView(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery,
492
492
  ViewCatalogEntry *view) {
493
493
  auto names = AliasColumnNames(alias, subquery.names, ref.column_name_alias);
494
- AddEntryBinding(index, alias, names, subquery.types, (StandardEntry *)view);
494
+ AddEntryBinding(index, alias, names, subquery.types, view->Cast<StandardEntry>());
495
495
  }
496
496
 
497
497
  void BindContext::AddSubquery(idx_t index, const string &alias, TableFunctionRef &ref, BoundQueryNode &subquery) {
@@ -189,7 +189,7 @@ BindResult ExpressionBinder::BindLambdaFunction(FunctionExpression &function, Sc
189
189
  }
190
190
 
191
191
  // capture the (lambda) columns
192
- auto &bound_lambda_expr = (BoundLambdaExpression &)*children.back();
192
+ auto &bound_lambda_expr = children.back()->Cast<BoundLambdaExpression>();
193
193
  CaptureLambdaColumns(bound_lambda_expr.captures, list_child_type, bound_lambda_expr.lambda_expr);
194
194
 
195
195
  FunctionBinder function_binder(context);
@@ -110,7 +110,7 @@ void ExpressionBinder::TransformCapturedLambdaColumn(unique_ptr<Expression> &ori
110
110
  if (original->expression_class == ExpressionClass::BOUND_LAMBDA_REF) {
111
111
 
112
112
  // determine if this is the lambda parameter
113
- auto &bound_lambda_ref = (BoundLambdaRefExpression &)*original;
113
+ auto &bound_lambda_ref = original->Cast<BoundLambdaRefExpression>();
114
114
  auto alias = bound_lambda_ref.alias;
115
115
 
116
116
  if (lambda_bindings && bound_lambda_ref.lambda_index != lambda_bindings->size()) {
@@ -55,7 +55,7 @@ bool Binder::FindStarExpression(unique_ptr<ParsedExpression> &expr, StarExpressi
55
55
  in_columns = true;
56
56
  if (*star) {
57
57
  // we can have multiple
58
- if (!StarExpression::Equal(*star, &current_star)) {
58
+ if (!(*star)->Equals(current_star)) {
59
59
  throw BinderException(
60
60
  FormatError(*expr, "Multiple different STAR/COLUMNS in the same expression are not supported"));
61
61
  }
@@ -8,6 +8,9 @@
8
8
  namespace duckdb {
9
9
 
10
10
  class BoundSubqueryNode : public QueryNode {
11
+ public:
12
+ static constexpr const QueryNodeType TYPE = QueryNodeType::BOUND_SUBQUERY_NODE;
13
+
11
14
  public:
12
15
  BoundSubqueryNode(shared_ptr<Binder> subquery_binder, unique_ptr<BoundQueryNode> bound_node,
13
16
  unique_ptr<SelectStatement> subquery)
@@ -74,9 +77,9 @@ BindResult ExpressionBinder::BindExpression(SubqueryExpression &expr, idx_t dept
74
77
  }
75
78
  // both binding the child and binding the subquery was successful
76
79
  D_ASSERT(expr.subquery->node->type == QueryNodeType::BOUND_SUBQUERY_NODE);
77
- auto bound_subquery = (BoundSubqueryNode *)expr.subquery->node.get();
78
- auto subquery_binder = std::move(bound_subquery->subquery_binder);
79
- auto bound_node = std::move(bound_subquery->bound_node);
80
+ auto &bound_subquery = expr.subquery->node->Cast<BoundSubqueryNode>();
81
+ auto subquery_binder = std::move(bound_subquery.subquery_binder);
82
+ auto bound_node = std::move(bound_subquery.bound_node);
80
83
  LogicalType return_type =
81
84
  expr.subquery_type == SubqueryType::SCALAR ? bound_node->types[0] : LogicalType(LogicalTypeId::BOOLEAN);
82
85
  if (return_type.id() == LogicalTypeId::UNKNOWN) {