duckdb 0.8.1-dev31.0 → 0.8.1-dev341.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.
- package/binding.gyp +8 -8
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/json/buffered_json_reader.cpp +23 -14
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +6 -6
- package/src/duckdb/extension/json/include/json_common.hpp +13 -3
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/include/json_scan.hpp +3 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +16 -16
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +5 -3
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +12 -12
- package/src/duckdb/extension/json/json_functions/read_json.cpp +2 -1
- package/src/duckdb/extension/json/json_functions.cpp +6 -3
- package/src/duckdb/extension/json/json_scan.cpp +40 -25
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
- package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
- package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +25 -1
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
- package/src/duckdb/src/catalog/catalog.cpp +5 -17
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +113 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +301 -106
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -22
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
- package/src/duckdb/src/common/checksum.cpp +1 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
- package/src/duckdb/src/common/crypto/md5.cpp +9 -9
- package/src/duckdb/src/common/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +19 -14
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +15 -2
- package/src/duckdb/src/common/fsst.cpp +11 -6
- package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +11 -11
- package/src/duckdb/src/common/multi_file_reader.cpp +3 -0
- package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
- package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
- package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
- package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
- package/src/duckdb/src/common/serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/comparators.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
- package/src/duckdb/src/common/types/bit.cpp +5 -5
- package/src/duckdb/src/common/types/blob.cpp +8 -8
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +2 -2
- package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
- package/src/duckdb/src/common/types/list_segment.cpp +77 -49
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
- package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +5 -4
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +61 -24
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/timestamp.cpp +37 -1
- package/src/duckdb/src/common/types/value.cpp +3 -2
- package/src/duckdb/src/common/types/vector.cpp +98 -101
- package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
- package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
- package/src/duckdb/src/common/types.cpp +44 -33
- package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
- package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +44 -44
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +115 -133
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/function_list.cpp +1 -0
- package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +45 -45
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +14 -0
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +4 -1
- package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
- package/src/duckdb/src/execution/expression_executor.cpp +28 -28
- package/src/duckdb/src/execution/index/art/art.cpp +110 -39
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +23 -5
- package/src/duckdb/src/execution/index/art/leaf.cpp +10 -11
- package/src/duckdb/src/execution/index/art/leaf_segment.cpp +10 -0
- package/src/duckdb/src/execution/index/art/node.cpp +47 -35
- package/src/duckdb/src/execution/index/art/node16.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node256.cpp +1 -0
- package/src/duckdb/src/execution/index/art/node4.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node48.cpp +2 -0
- package/src/duckdb/src/execution/index/art/prefix.cpp +2 -0
- package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +26 -9
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -2
- package/src/duckdb/src/execution/operator/helper/physical_set.cpp +5 -1
- package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
- package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -3
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
- package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +29 -3
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/list_casts.cpp +2 -4
- package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
- package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +33 -23
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -3
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
- package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
- package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +6 -2
- package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +25 -23
- package/src/duckdb/src/function/scalar_function.cpp +3 -3
- package/src/duckdb/src/function/table/arrow.cpp +6 -6
- package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
- package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/range.cpp +4 -4
- package/src/duckdb/src/function/table/read_csv.cpp +17 -20
- package/src/duckdb/src/function/table/repeat.cpp +5 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +10 -3
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
- package/src/duckdb/src/function/table/table_scan.cpp +2 -2
- package/src/duckdb/src/function/table/unnest.cpp +1 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +6 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +8 -2
- package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +97 -0
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +4 -14
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
- package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +9 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +2 -6
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +16 -36
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +13 -7
- package/src/duckdb/src/include/duckdb/execution/index/art/fixed_size_allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf_segment.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +13 -3
- package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +8 -29
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +3 -1
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +8 -7
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +17 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +9 -0
- package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +106 -92
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +34 -1
- package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +7 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/byte_reader.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/in_memory_block_manager.hpp +13 -13
- package/src/duckdb/src/include/duckdb/storage/index.hpp +6 -4
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +0 -6
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
- package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
- package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/config-c.cpp +3 -6
- package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
- package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
- package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
- package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
- package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
- package/src/duckdb/src/main/capi/result-c.cpp +23 -23
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +3 -3
- package/src/duckdb/src/main/config.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +1 -1
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
- package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +22 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +27 -16
- package/src/duckdb/src/parallel/executor.cpp +1 -1
- package/src/duckdb/src/parser/base_expression.cpp +2 -5
- package/src/duckdb/src/parser/column_definition.cpp +5 -8
- package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
- package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
- package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -3
- package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +4 -4
- package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
- package/src/duckdb/src/parser/query_node.cpp +7 -6
- package/src/duckdb/src/parser/result_modifier.cpp +25 -18
- package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
- package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
- package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
- package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
- package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +12 -3
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
- package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +0 -2
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
- package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -25
- package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
- package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
- package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +30 -27
- package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
- package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
- package/src/duckdb/src/parser/transformer.cpp +45 -47
- package/src/duckdb/src/planner/bind_context.cpp +9 -10
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_positional_reference_expression.cpp +8 -3
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +8 -8
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +1 -28
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +0 -25
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +4 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +5 -2
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
- package/src/duckdb/src/planner/expression.cpp +15 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder.cpp +3 -2
- package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
- package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
- package/src/duckdb/src/planner/logical_operator.cpp +3 -4
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_pivot.cpp +14 -2
- package/src/duckdb/src/planner/planner.cpp +5 -15
- package/src/duckdb/src/planner/table_filter.cpp +1 -1
- package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
- package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
- package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
- package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
- package/src/duckdb/src/storage/compression/rle.cpp +8 -8
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/data_table.cpp +8 -7
- package/src/duckdb/src/storage/index.cpp +14 -3
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +3 -3
- package/src/duckdb/src/storage/table/row_group.cpp +4 -4
- package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
- package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
- package/src/duckdb/src/storage/wal_replay.cpp +5 -6
- package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
- package/src/duckdb/src/transaction/commit_state.cpp +8 -8
- package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
- package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
- package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +0 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +0 -14
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +12828 -12956
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +3 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +4 -0
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
- package/src/duckdb/ub_src_parser_transform_statement.cpp +0 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_database_info.hpp +0 -46
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +0 -28
@@ -97,42 +97,42 @@ private:
|
|
97
97
|
|
98
98
|
private:
|
99
99
|
//! Transforms a Postgres statement into a single SQL statement
|
100
|
-
unique_ptr<SQLStatement> TransformStatement(duckdb_libpgquery::PGNode
|
100
|
+
unique_ptr<SQLStatement> TransformStatement(duckdb_libpgquery::PGNode &stmt);
|
101
101
|
//! Transforms a Postgres statement into a single SQL statement
|
102
|
-
unique_ptr<SQLStatement> TransformStatementInternal(duckdb_libpgquery::PGNode
|
102
|
+
unique_ptr<SQLStatement> TransformStatementInternal(duckdb_libpgquery::PGNode &stmt);
|
103
103
|
//===--------------------------------------------------------------------===//
|
104
104
|
// Statement transformation
|
105
105
|
//===--------------------------------------------------------------------===//
|
106
106
|
//! Transform a Postgres duckdb_libpgquery::T_PGSelectStmt node into a SelectStatement
|
107
|
-
unique_ptr<SelectStatement> TransformSelect(duckdb_libpgquery::PGNode
|
107
|
+
unique_ptr<SelectStatement> TransformSelect(optional_ptr<duckdb_libpgquery::PGNode> node, bool is_select = true);
|
108
|
+
//! Transform a Postgres duckdb_libpgquery::T_PGSelectStmt node into a SelectStatement
|
109
|
+
unique_ptr<SelectStatement> TransformSelect(duckdb_libpgquery::PGSelectStmt &select, bool is_select = true);
|
108
110
|
//! Transform a Postgres T_AlterStmt node into a AlterStatement
|
109
|
-
unique_ptr<AlterStatement> TransformAlter(duckdb_libpgquery::
|
111
|
+
unique_ptr<AlterStatement> TransformAlter(duckdb_libpgquery::PGAlterTableStmt &stmt);
|
110
112
|
//! Transform a Postgres duckdb_libpgquery::T_PGRenameStmt node into a RenameStatement
|
111
|
-
unique_ptr<AlterStatement> TransformRename(duckdb_libpgquery::
|
113
|
+
unique_ptr<AlterStatement> TransformRename(duckdb_libpgquery::PGRenameStmt &stmt);
|
112
114
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateStmt node into a CreateStatement
|
113
|
-
unique_ptr<CreateStatement> TransformCreateTable(duckdb_libpgquery::
|
115
|
+
unique_ptr<CreateStatement> TransformCreateTable(duckdb_libpgquery::PGCreateStmt &node);
|
114
116
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateStmt node into a CreateStatement
|
115
|
-
unique_ptr<CreateStatement> TransformCreateTableAs(duckdb_libpgquery::
|
117
|
+
unique_ptr<CreateStatement> TransformCreateTableAs(duckdb_libpgquery::PGCreateTableAsStmt &stmt);
|
116
118
|
//! Transform a Postgres node into a CreateStatement
|
117
|
-
unique_ptr<CreateStatement> TransformCreateSchema(duckdb_libpgquery::
|
119
|
+
unique_ptr<CreateStatement> TransformCreateSchema(duckdb_libpgquery::PGCreateSchemaStmt &stmt);
|
118
120
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateSeqStmt node into a CreateStatement
|
119
|
-
unique_ptr<CreateStatement> TransformCreateSequence(duckdb_libpgquery::
|
121
|
+
unique_ptr<CreateStatement> TransformCreateSequence(duckdb_libpgquery::PGCreateSeqStmt &node);
|
120
122
|
//! Transform a Postgres duckdb_libpgquery::T_PGViewStmt node into a CreateStatement
|
121
|
-
unique_ptr<CreateStatement> TransformCreateView(duckdb_libpgquery::
|
123
|
+
unique_ptr<CreateStatement> TransformCreateView(duckdb_libpgquery::PGViewStmt &node);
|
122
124
|
//! Transform a Postgres duckdb_libpgquery::T_PGIndexStmt node into CreateStatement
|
123
|
-
unique_ptr<CreateStatement> TransformCreateIndex(duckdb_libpgquery::
|
125
|
+
unique_ptr<CreateStatement> TransformCreateIndex(duckdb_libpgquery::PGIndexStmt &stmt);
|
124
126
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateFunctionStmt node into CreateStatement
|
125
|
-
unique_ptr<CreateStatement> TransformCreateFunction(duckdb_libpgquery::
|
127
|
+
unique_ptr<CreateStatement> TransformCreateFunction(duckdb_libpgquery::PGCreateFunctionStmt &stmt);
|
126
128
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateTypeStmt node into CreateStatement
|
127
|
-
unique_ptr<CreateStatement> TransformCreateType(duckdb_libpgquery::
|
128
|
-
//! Transform a Postgres duckdb_libpgquery::T_PGCreateDatabaseStmt node into a CreateStatement
|
129
|
-
unique_ptr<CreateStatement> TransformCreateDatabase(duckdb_libpgquery::PGNode *node);
|
129
|
+
unique_ptr<CreateStatement> TransformCreateType(duckdb_libpgquery::PGCreateTypeStmt &stmt);
|
130
130
|
//! Transform a Postgres duckdb_libpgquery::T_PGAlterSeqStmt node into CreateStatement
|
131
|
-
unique_ptr<AlterStatement> TransformAlterSequence(duckdb_libpgquery::
|
131
|
+
unique_ptr<AlterStatement> TransformAlterSequence(duckdb_libpgquery::PGAlterSeqStmt &stmt);
|
132
132
|
//! Transform a Postgres duckdb_libpgquery::T_PGDropStmt node into a Drop[Table,Schema]Statement
|
133
|
-
unique_ptr<SQLStatement> TransformDrop(duckdb_libpgquery::
|
133
|
+
unique_ptr<SQLStatement> TransformDrop(duckdb_libpgquery::PGDropStmt &stmt);
|
134
134
|
//! Transform a Postgres duckdb_libpgquery::T_PGInsertStmt node into a InsertStatement
|
135
|
-
unique_ptr<InsertStatement> TransformInsert(duckdb_libpgquery::
|
135
|
+
unique_ptr<InsertStatement> TransformInsert(duckdb_libpgquery::PGInsertStmt &stmt);
|
136
136
|
|
137
137
|
//! Transform a Postgres duckdb_libpgquery::T_PGOnConflictClause node into a OnConflictInfo
|
138
138
|
unique_ptr<OnConflictInfo> TransformOnConflictClause(duckdb_libpgquery::PGOnConflictClause *node,
|
@@ -141,99 +141,100 @@ private:
|
|
141
141
|
unique_ptr<OnConflictInfo> DummyOnConflictClause(duckdb_libpgquery::PGOnConflictActionAlias type,
|
142
142
|
const string &relname);
|
143
143
|
//! Transform a Postgres duckdb_libpgquery::T_PGCopyStmt node into a CopyStatement
|
144
|
-
unique_ptr<CopyStatement> TransformCopy(duckdb_libpgquery::
|
145
|
-
void TransformCopyOptions(CopyInfo &info, duckdb_libpgquery::PGList
|
144
|
+
unique_ptr<CopyStatement> TransformCopy(duckdb_libpgquery::PGCopyStmt &stmt);
|
145
|
+
void TransformCopyOptions(CopyInfo &info, optional_ptr<duckdb_libpgquery::PGList> options);
|
146
146
|
//! Transform a Postgres duckdb_libpgquery::T_PGTransactionStmt node into a TransactionStatement
|
147
|
-
unique_ptr<TransactionStatement> TransformTransaction(duckdb_libpgquery::
|
147
|
+
unique_ptr<TransactionStatement> TransformTransaction(duckdb_libpgquery::PGTransactionStmt &stmt);
|
148
148
|
//! Transform a Postgres T_DeleteStatement node into a DeleteStatement
|
149
|
-
unique_ptr<DeleteStatement> TransformDelete(duckdb_libpgquery::
|
149
|
+
unique_ptr<DeleteStatement> TransformDelete(duckdb_libpgquery::PGDeleteStmt &stmt);
|
150
150
|
//! Transform a Postgres duckdb_libpgquery::T_PGUpdateStmt node into a UpdateStatement
|
151
|
-
unique_ptr<UpdateStatement> TransformUpdate(duckdb_libpgquery::
|
151
|
+
unique_ptr<UpdateStatement> TransformUpdate(duckdb_libpgquery::PGUpdateStmt &stmt);
|
152
152
|
//! Transform a Postgres duckdb_libpgquery::T_PGPragmaStmt node into a PragmaStatement
|
153
|
-
unique_ptr<SQLStatement> TransformPragma(duckdb_libpgquery::
|
153
|
+
unique_ptr<SQLStatement> TransformPragma(duckdb_libpgquery::PGPragmaStmt &stmt);
|
154
154
|
//! Transform a Postgres duckdb_libpgquery::T_PGExportStmt node into a ExportStatement
|
155
|
-
unique_ptr<ExportStatement> TransformExport(duckdb_libpgquery::
|
155
|
+
unique_ptr<ExportStatement> TransformExport(duckdb_libpgquery::PGExportStmt &stmt);
|
156
156
|
//! Transform a Postgres duckdb_libpgquery::T_PGImportStmt node into a PragmaStatement
|
157
|
-
unique_ptr<PragmaStatement> TransformImport(duckdb_libpgquery::
|
158
|
-
unique_ptr<ExplainStatement> TransformExplain(duckdb_libpgquery::
|
159
|
-
unique_ptr<SQLStatement> TransformVacuum(duckdb_libpgquery::
|
160
|
-
unique_ptr<SQLStatement> TransformShow(duckdb_libpgquery::
|
161
|
-
unique_ptr<ShowStatement> TransformShowSelect(duckdb_libpgquery::
|
162
|
-
unique_ptr<AttachStatement> TransformAttach(duckdb_libpgquery::
|
163
|
-
unique_ptr<DetachStatement> TransformDetach(duckdb_libpgquery::
|
164
|
-
unique_ptr<SetStatement> TransformUse(duckdb_libpgquery::
|
165
|
-
|
166
|
-
unique_ptr<PrepareStatement> TransformPrepare(duckdb_libpgquery::
|
167
|
-
unique_ptr<ExecuteStatement> TransformExecute(duckdb_libpgquery::
|
168
|
-
unique_ptr<CallStatement> TransformCall(duckdb_libpgquery::
|
169
|
-
unique_ptr<DropStatement> TransformDeallocate(duckdb_libpgquery::
|
170
|
-
unique_ptr<QueryNode> TransformPivotStatement(duckdb_libpgquery::PGSelectStmt
|
157
|
+
unique_ptr<PragmaStatement> TransformImport(duckdb_libpgquery::PGImportStmt &stmt);
|
158
|
+
unique_ptr<ExplainStatement> TransformExplain(duckdb_libpgquery::PGExplainStmt &stmt);
|
159
|
+
unique_ptr<SQLStatement> TransformVacuum(duckdb_libpgquery::PGVacuumStmt &stmt);
|
160
|
+
unique_ptr<SQLStatement> TransformShow(duckdb_libpgquery::PGVariableShowStmt &stmt);
|
161
|
+
unique_ptr<ShowStatement> TransformShowSelect(duckdb_libpgquery::PGVariableShowSelectStmt &stmt);
|
162
|
+
unique_ptr<AttachStatement> TransformAttach(duckdb_libpgquery::PGAttachStmt &stmt);
|
163
|
+
unique_ptr<DetachStatement> TransformDetach(duckdb_libpgquery::PGDetachStmt &stmt);
|
164
|
+
unique_ptr<SetStatement> TransformUse(duckdb_libpgquery::PGUseStmt &stmt);
|
165
|
+
|
166
|
+
unique_ptr<PrepareStatement> TransformPrepare(duckdb_libpgquery::PGPrepareStmt &stmt);
|
167
|
+
unique_ptr<ExecuteStatement> TransformExecute(duckdb_libpgquery::PGExecuteStmt &stmt);
|
168
|
+
unique_ptr<CallStatement> TransformCall(duckdb_libpgquery::PGCallStmt &stmt);
|
169
|
+
unique_ptr<DropStatement> TransformDeallocate(duckdb_libpgquery::PGDeallocateStmt &stmt);
|
170
|
+
unique_ptr<QueryNode> TransformPivotStatement(duckdb_libpgquery::PGSelectStmt &select);
|
171
171
|
unique_ptr<SQLStatement> CreatePivotStatement(unique_ptr<SQLStatement> statement);
|
172
|
-
PivotColumn TransformPivotColumn(duckdb_libpgquery::PGPivot
|
173
|
-
vector<PivotColumn> TransformPivotList(duckdb_libpgquery::PGList
|
172
|
+
PivotColumn TransformPivotColumn(duckdb_libpgquery::PGPivot &pivot);
|
173
|
+
vector<PivotColumn> TransformPivotList(duckdb_libpgquery::PGList &list);
|
174
174
|
|
175
175
|
//===--------------------------------------------------------------------===//
|
176
176
|
// SetStatement Transform
|
177
177
|
//===--------------------------------------------------------------------===//
|
178
|
-
unique_ptr<SetStatement> TransformSet(duckdb_libpgquery::
|
179
|
-
unique_ptr<SetStatement> TransformSetVariable(duckdb_libpgquery::PGVariableSetStmt
|
180
|
-
unique_ptr<SetStatement> TransformResetVariable(duckdb_libpgquery::PGVariableSetStmt
|
178
|
+
unique_ptr<SetStatement> TransformSet(duckdb_libpgquery::PGVariableSetStmt &set);
|
179
|
+
unique_ptr<SetStatement> TransformSetVariable(duckdb_libpgquery::PGVariableSetStmt &stmt);
|
180
|
+
unique_ptr<SetStatement> TransformResetVariable(duckdb_libpgquery::PGVariableSetStmt &stmt);
|
181
181
|
|
182
|
-
unique_ptr<SQLStatement> TransformCheckpoint(duckdb_libpgquery::
|
183
|
-
unique_ptr<LoadStatement> TransformLoad(duckdb_libpgquery::
|
182
|
+
unique_ptr<SQLStatement> TransformCheckpoint(duckdb_libpgquery::PGCheckPointStmt &stmt);
|
183
|
+
unique_ptr<LoadStatement> TransformLoad(duckdb_libpgquery::PGLoadStmt &stmt);
|
184
184
|
|
185
185
|
//===--------------------------------------------------------------------===//
|
186
186
|
// Query Node Transform
|
187
187
|
//===--------------------------------------------------------------------===//
|
188
188
|
//! Transform a Postgres duckdb_libpgquery::T_PGSelectStmt node into a QueryNode
|
189
|
-
unique_ptr<QueryNode> TransformSelectNode(duckdb_libpgquery::PGSelectStmt
|
190
|
-
unique_ptr<QueryNode> TransformSelectInternal(duckdb_libpgquery::PGSelectStmt
|
189
|
+
unique_ptr<QueryNode> TransformSelectNode(duckdb_libpgquery::PGSelectStmt &select);
|
190
|
+
unique_ptr<QueryNode> TransformSelectInternal(duckdb_libpgquery::PGSelectStmt &select);
|
191
191
|
void TransformModifiers(duckdb_libpgquery::PGSelectStmt &stmt, QueryNode &node);
|
192
192
|
|
193
193
|
//===--------------------------------------------------------------------===//
|
194
194
|
// Expression Transform
|
195
195
|
//===--------------------------------------------------------------------===//
|
196
196
|
//! Transform a Postgres boolean expression into an Expression
|
197
|
-
unique_ptr<ParsedExpression> TransformBoolExpr(duckdb_libpgquery::PGBoolExpr
|
197
|
+
unique_ptr<ParsedExpression> TransformBoolExpr(duckdb_libpgquery::PGBoolExpr &root);
|
198
198
|
//! Transform a Postgres case expression into an Expression
|
199
|
-
unique_ptr<ParsedExpression> TransformCase(duckdb_libpgquery::PGCaseExpr
|
199
|
+
unique_ptr<ParsedExpression> TransformCase(duckdb_libpgquery::PGCaseExpr &root);
|
200
200
|
//! Transform a Postgres type cast into an Expression
|
201
|
-
unique_ptr<ParsedExpression> TransformTypeCast(duckdb_libpgquery::PGTypeCast
|
201
|
+
unique_ptr<ParsedExpression> TransformTypeCast(duckdb_libpgquery::PGTypeCast &root);
|
202
202
|
//! Transform a Postgres coalesce into an Expression
|
203
|
-
unique_ptr<ParsedExpression> TransformCoalesce(duckdb_libpgquery::PGAExpr
|
203
|
+
unique_ptr<ParsedExpression> TransformCoalesce(duckdb_libpgquery::PGAExpr &root);
|
204
204
|
//! Transform a Postgres column reference into an Expression
|
205
|
-
unique_ptr<ParsedExpression> TransformColumnRef(duckdb_libpgquery::PGColumnRef
|
205
|
+
unique_ptr<ParsedExpression> TransformColumnRef(duckdb_libpgquery::PGColumnRef &root);
|
206
206
|
//! Transform a Postgres constant value into an Expression
|
207
207
|
unique_ptr<ConstantExpression> TransformValue(duckdb_libpgquery::PGValue val);
|
208
208
|
//! Transform a Postgres operator into an Expression
|
209
|
-
unique_ptr<ParsedExpression> TransformAExpr(duckdb_libpgquery::PGAExpr
|
210
|
-
unique_ptr<ParsedExpression> TransformAExprInternal(duckdb_libpgquery::PGAExpr
|
209
|
+
unique_ptr<ParsedExpression> TransformAExpr(duckdb_libpgquery::PGAExpr &root);
|
210
|
+
unique_ptr<ParsedExpression> TransformAExprInternal(duckdb_libpgquery::PGAExpr &root);
|
211
211
|
//! Transform a Postgres abstract expression into an Expression
|
212
|
-
unique_ptr<ParsedExpression> TransformExpression(duckdb_libpgquery::PGNode
|
212
|
+
unique_ptr<ParsedExpression> TransformExpression(optional_ptr<duckdb_libpgquery::PGNode> node);
|
213
|
+
unique_ptr<ParsedExpression> TransformExpression(duckdb_libpgquery::PGNode &node);
|
213
214
|
//! Transform a Postgres function call into an Expression
|
214
|
-
unique_ptr<ParsedExpression> TransformFuncCall(duckdb_libpgquery::PGFuncCall
|
215
|
+
unique_ptr<ParsedExpression> TransformFuncCall(duckdb_libpgquery::PGFuncCall &root);
|
215
216
|
//! Transform a Postgres boolean expression into an Expression
|
216
|
-
unique_ptr<ParsedExpression> TransformInterval(duckdb_libpgquery::PGIntervalConstant
|
217
|
+
unique_ptr<ParsedExpression> TransformInterval(duckdb_libpgquery::PGIntervalConstant &root);
|
217
218
|
//! Transform a Postgres lambda node [e.g. (x, y) -> x + y] into a lambda expression
|
218
|
-
unique_ptr<ParsedExpression> TransformLambda(duckdb_libpgquery::PGLambdaFunction
|
219
|
+
unique_ptr<ParsedExpression> TransformLambda(duckdb_libpgquery::PGLambdaFunction &node);
|
219
220
|
//! Transform a Postgres array access node (e.g. x[1] or x[1:3])
|
220
|
-
unique_ptr<ParsedExpression> TransformArrayAccess(duckdb_libpgquery::PGAIndirection
|
221
|
+
unique_ptr<ParsedExpression> TransformArrayAccess(duckdb_libpgquery::PGAIndirection &node);
|
221
222
|
//! Transform a positional reference (e.g. #1)
|
222
|
-
unique_ptr<ParsedExpression> TransformPositionalReference(duckdb_libpgquery::PGPositionalReference
|
223
|
-
unique_ptr<ParsedExpression> TransformStarExpression(duckdb_libpgquery::
|
224
|
-
unique_ptr<ParsedExpression> TransformBooleanTest(duckdb_libpgquery::PGBooleanTest
|
223
|
+
unique_ptr<ParsedExpression> TransformPositionalReference(duckdb_libpgquery::PGPositionalReference &node);
|
224
|
+
unique_ptr<ParsedExpression> TransformStarExpression(duckdb_libpgquery::PGAStar &node);
|
225
|
+
unique_ptr<ParsedExpression> TransformBooleanTest(duckdb_libpgquery::PGBooleanTest &node);
|
225
226
|
|
226
227
|
//! Transform a Postgres constant value into an Expression
|
227
|
-
unique_ptr<ParsedExpression> TransformConstant(duckdb_libpgquery::PGAConst
|
228
|
-
unique_ptr<ParsedExpression> TransformGroupingFunction(duckdb_libpgquery::PGGroupingFunc
|
229
|
-
unique_ptr<ParsedExpression> TransformResTarget(duckdb_libpgquery::PGResTarget
|
230
|
-
unique_ptr<ParsedExpression> TransformNullTest(duckdb_libpgquery::PGNullTest
|
231
|
-
unique_ptr<ParsedExpression> TransformParamRef(duckdb_libpgquery::PGParamRef
|
232
|
-
unique_ptr<ParsedExpression> TransformNamedArg(duckdb_libpgquery::PGNamedArgExpr
|
228
|
+
unique_ptr<ParsedExpression> TransformConstant(duckdb_libpgquery::PGAConst &c);
|
229
|
+
unique_ptr<ParsedExpression> TransformGroupingFunction(duckdb_libpgquery::PGGroupingFunc &n);
|
230
|
+
unique_ptr<ParsedExpression> TransformResTarget(duckdb_libpgquery::PGResTarget &root);
|
231
|
+
unique_ptr<ParsedExpression> TransformNullTest(duckdb_libpgquery::PGNullTest &root);
|
232
|
+
unique_ptr<ParsedExpression> TransformParamRef(duckdb_libpgquery::PGParamRef &node);
|
233
|
+
unique_ptr<ParsedExpression> TransformNamedArg(duckdb_libpgquery::PGNamedArgExpr &root);
|
233
234
|
|
234
|
-
unique_ptr<ParsedExpression> TransformSQLValueFunction(duckdb_libpgquery::PGSQLValueFunction
|
235
|
+
unique_ptr<ParsedExpression> TransformSQLValueFunction(duckdb_libpgquery::PGSQLValueFunction &node);
|
235
236
|
|
236
|
-
unique_ptr<ParsedExpression> TransformSubquery(duckdb_libpgquery::PGSubLink
|
237
|
+
unique_ptr<ParsedExpression> TransformSubquery(duckdb_libpgquery::PGSubLink &root);
|
237
238
|
//===--------------------------------------------------------------------===//
|
238
239
|
// Constraints transform
|
239
240
|
//===--------------------------------------------------------------------===//
|
@@ -251,25 +252,25 @@ private:
|
|
251
252
|
//===--------------------------------------------------------------------===//
|
252
253
|
// Index transform
|
253
254
|
//===--------------------------------------------------------------------===//
|
254
|
-
vector<unique_ptr<ParsedExpression>> TransformIndexParameters(duckdb_libpgquery::PGList
|
255
|
+
vector<unique_ptr<ParsedExpression>> TransformIndexParameters(duckdb_libpgquery::PGList &list,
|
255
256
|
const string &relation_name);
|
256
257
|
|
257
258
|
//===--------------------------------------------------------------------===//
|
258
259
|
// Collation transform
|
259
260
|
//===--------------------------------------------------------------------===//
|
260
|
-
unique_ptr<ParsedExpression> TransformCollateExpr(duckdb_libpgquery::PGCollateClause
|
261
|
+
unique_ptr<ParsedExpression> TransformCollateExpr(duckdb_libpgquery::PGCollateClause &collate);
|
261
262
|
|
262
|
-
string TransformCollation(duckdb_libpgquery::PGCollateClause
|
263
|
+
string TransformCollation(optional_ptr<duckdb_libpgquery::PGCollateClause> collate);
|
263
264
|
|
264
|
-
ColumnDefinition TransformColumnDefinition(duckdb_libpgquery::PGColumnDef
|
265
|
+
ColumnDefinition TransformColumnDefinition(duckdb_libpgquery::PGColumnDef &cdef);
|
265
266
|
//===--------------------------------------------------------------------===//
|
266
267
|
// Helpers
|
267
268
|
//===--------------------------------------------------------------------===//
|
268
269
|
OnCreateConflict TransformOnConflict(duckdb_libpgquery::PGOnCreateConflict conflict);
|
269
270
|
string TransformAlias(duckdb_libpgquery::PGAlias *root, vector<string> &column_name_alias);
|
270
271
|
vector<string> TransformStringList(duckdb_libpgquery::PGList *list);
|
271
|
-
void TransformCTE(duckdb_libpgquery::PGWithClause
|
272
|
-
unique_ptr<SelectStatement> TransformRecursiveCTE(duckdb_libpgquery::PGCommonTableExpr
|
272
|
+
void TransformCTE(duckdb_libpgquery::PGWithClause &de_with_clause, CommonTableExpressionMap &cte_map);
|
273
|
+
unique_ptr<SelectStatement> TransformRecursiveCTE(duckdb_libpgquery::PGCommonTableExpr &cte,
|
273
274
|
CommonTableExpressionInfo &info);
|
274
275
|
|
275
276
|
unique_ptr<ParsedExpression> TransformUnaryOperator(const string &op, unique_ptr<ParsedExpression> child);
|
@@ -279,35 +280,35 @@ private:
|
|
279
280
|
// TableRef transform
|
280
281
|
//===--------------------------------------------------------------------===//
|
281
282
|
//! Transform a Postgres node into a TableRef
|
282
|
-
unique_ptr<TableRef> TransformTableRefNode(duckdb_libpgquery::PGNode
|
283
|
+
unique_ptr<TableRef> TransformTableRefNode(duckdb_libpgquery::PGNode &n);
|
283
284
|
//! Transform a Postgres FROM clause into a TableRef
|
284
|
-
unique_ptr<TableRef> TransformFrom(duckdb_libpgquery::PGList
|
285
|
+
unique_ptr<TableRef> TransformFrom(optional_ptr<duckdb_libpgquery::PGList> root);
|
285
286
|
//! Transform a Postgres table reference into a TableRef
|
286
|
-
unique_ptr<TableRef> TransformRangeVar(duckdb_libpgquery::PGRangeVar
|
287
|
+
unique_ptr<TableRef> TransformRangeVar(duckdb_libpgquery::PGRangeVar &root);
|
287
288
|
//! Transform a Postgres table-producing function into a TableRef
|
288
|
-
unique_ptr<TableRef> TransformRangeFunction(duckdb_libpgquery::PGRangeFunction
|
289
|
+
unique_ptr<TableRef> TransformRangeFunction(duckdb_libpgquery::PGRangeFunction &root);
|
289
290
|
//! Transform a Postgres join node into a TableRef
|
290
|
-
unique_ptr<TableRef> TransformJoin(duckdb_libpgquery::PGJoinExpr
|
291
|
+
unique_ptr<TableRef> TransformJoin(duckdb_libpgquery::PGJoinExpr &root);
|
291
292
|
//! Transform a Postgres pivot node into a TableRef
|
292
|
-
unique_ptr<TableRef> TransformPivot(duckdb_libpgquery::PGPivotExpr
|
293
|
+
unique_ptr<TableRef> TransformPivot(duckdb_libpgquery::PGPivotExpr &root);
|
293
294
|
//! Transform a table producing subquery into a TableRef
|
294
|
-
unique_ptr<TableRef> TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect
|
295
|
+
unique_ptr<TableRef> TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect &root);
|
295
296
|
//! Transform a VALUES list into a set of expressions
|
296
297
|
unique_ptr<TableRef> TransformValuesList(duckdb_libpgquery::PGList *list);
|
297
298
|
|
298
299
|
//! Transform a range var into a (schema) qualified name
|
299
|
-
QualifiedName TransformQualifiedName(duckdb_libpgquery::PGRangeVar
|
300
|
+
QualifiedName TransformQualifiedName(duckdb_libpgquery::PGRangeVar &root);
|
300
301
|
|
301
302
|
//! Transform a Postgres TypeName string into a LogicalType
|
302
|
-
LogicalType TransformTypeName(duckdb_libpgquery::PGTypeName
|
303
|
+
LogicalType TransformTypeName(duckdb_libpgquery::PGTypeName &name);
|
303
304
|
|
304
305
|
//! Transform a Postgres GROUP BY expression into a list of Expression
|
305
|
-
bool TransformGroupBy(duckdb_libpgquery::PGList
|
306
|
-
void TransformGroupByNode(duckdb_libpgquery::PGNode
|
306
|
+
bool TransformGroupBy(optional_ptr<duckdb_libpgquery::PGList> group, SelectNode &result);
|
307
|
+
void TransformGroupByNode(duckdb_libpgquery::PGNode &n, GroupingExpressionMap &map, SelectNode &result,
|
307
308
|
vector<GroupingSet> &result_sets);
|
308
309
|
void AddGroupByExpression(unique_ptr<ParsedExpression> expression, GroupingExpressionMap &map, GroupByNode &result,
|
309
310
|
vector<idx_t> &result_set);
|
310
|
-
void TransformGroupByExpression(duckdb_libpgquery::PGNode
|
311
|
+
void TransformGroupByExpression(duckdb_libpgquery::PGNode &n, GroupingExpressionMap &map, GroupByNode &result,
|
311
312
|
vector<idx_t> &result_set);
|
312
313
|
//! Transform a Postgres ORDER BY expression into an OrderByDescription
|
313
314
|
bool TransformOrderBy(duckdb_libpgquery::PGList *order, vector<OrderByNode> &result);
|
@@ -316,23 +317,36 @@ private:
|
|
316
317
|
void TransformExpressionList(duckdb_libpgquery::PGList &list, vector<unique_ptr<ParsedExpression>> &result);
|
317
318
|
|
318
319
|
//! Transform a Postgres PARTITION BY/ORDER BY specification into lists of expressions
|
319
|
-
void TransformWindowDef(duckdb_libpgquery::PGWindowDef
|
320
|
+
void TransformWindowDef(duckdb_libpgquery::PGWindowDef &window_spec, WindowExpression &expr,
|
320
321
|
const char *window_name = nullptr);
|
321
322
|
//! Transform a Postgres window frame specification into frame expressions
|
322
|
-
void TransformWindowFrame(duckdb_libpgquery::PGWindowDef
|
323
|
+
void TransformWindowFrame(duckdb_libpgquery::PGWindowDef &window_spec, WindowExpression &expr);
|
323
324
|
|
324
|
-
unique_ptr<SampleOptions> TransformSampleOptions(duckdb_libpgquery::PGNode
|
325
|
+
unique_ptr<SampleOptions> TransformSampleOptions(optional_ptr<duckdb_libpgquery::PGNode> options);
|
325
326
|
//! Returns true if an expression is only a star (i.e. "*", without any other decorators)
|
326
327
|
bool ExpressionIsEmptyStar(ParsedExpression &expr);
|
327
328
|
|
328
329
|
OnEntryNotFound TransformOnEntryNotFound(bool missing_ok);
|
329
330
|
|
331
|
+
Vector PGListToVector(optional_ptr<duckdb_libpgquery::PGList> column_list, idx_t &size);
|
332
|
+
vector<string> TransformConflictTarget(duckdb_libpgquery::PGList &list);
|
333
|
+
|
330
334
|
private:
|
331
335
|
//! Current stack depth
|
332
336
|
idx_t stack_depth;
|
333
337
|
|
334
338
|
void InitializeStackCheck();
|
335
339
|
StackChecker StackCheck(idx_t extra_stack = 1);
|
340
|
+
|
341
|
+
public:
|
342
|
+
template <class T>
|
343
|
+
static T &PGCast(duckdb_libpgquery::PGNode &node) {
|
344
|
+
return reinterpret_cast<T &>(node);
|
345
|
+
}
|
346
|
+
template <class T>
|
347
|
+
static optional_ptr<T> PGPointerCast(void *ptr) {
|
348
|
+
return optional_ptr<T>(reinterpret_cast<T *>(ptr));
|
349
|
+
}
|
336
350
|
};
|
337
351
|
|
338
352
|
class StackChecker {
|
@@ -56,7 +56,7 @@ public:
|
|
56
56
|
//! or throws an exception if the column could not be bound.
|
57
57
|
BindResult BindColumn(ColumnRefExpression &colref, idx_t depth);
|
58
58
|
string BindColumn(PositionalReferenceExpression &ref, string &table_name, string &column_name);
|
59
|
-
|
59
|
+
unique_ptr<ColumnRefExpression> PositionToColumn(PositionalReferenceExpression &ref);
|
60
60
|
|
61
61
|
unique_ptr<ParsedExpression> ExpandGeneratedColumn(const string &table_name, const string &column_name);
|
62
62
|
|
@@ -96,7 +96,7 @@ public:
|
|
96
96
|
void AddSubquery(idx_t index, const string &alias, TableFunctionRef &ref, BoundQueryNode &subquery);
|
97
97
|
//! Adds a binding to a catalog entry with a given alias to the BindContext.
|
98
98
|
void AddEntryBinding(idx_t index, const string &alias, const vector<string> &names,
|
99
|
-
const vector<LogicalType> &types, StandardEntry
|
99
|
+
const vector<LogicalType> &types, StandardEntry &entry);
|
100
100
|
//! Adds a base table with the given alias to the BindContext.
|
101
101
|
void AddGenericBinding(idx_t index, const string &alias, const vector<string> &names,
|
102
102
|
const vector<LogicalType> &types);
|
@@ -37,7 +37,7 @@ public:
|
|
37
37
|
if (type != TARGET::TYPE) {
|
38
38
|
throw InternalException("Failed to cast constraint to type - bound constraint type mismatch");
|
39
39
|
}
|
40
|
-
return
|
40
|
+
return reinterpret_cast<TARGET &>(*this);
|
41
41
|
}
|
42
42
|
|
43
43
|
template <class TARGET>
|
@@ -45,7 +45,7 @@ public:
|
|
45
45
|
if (type != TARGET::TYPE) {
|
46
46
|
throw InternalException("Failed to cast constraint to type - bound constraint type mismatch");
|
47
47
|
}
|
48
|
-
return
|
48
|
+
return reinterpret_cast<const TARGET &>(*this);
|
49
49
|
}
|
50
50
|
};
|
51
51
|
} // namespace duckdb
|
@@ -41,7 +41,7 @@ public:
|
|
41
41
|
if (type != TARGET::TYPE) {
|
42
42
|
throw InternalException("Failed to cast bound query node to type - query node type mismatch");
|
43
43
|
}
|
44
|
-
return
|
44
|
+
return reinterpret_cast<TARGET &>(*this);
|
45
45
|
}
|
46
46
|
|
47
47
|
template <class TARGET>
|
@@ -49,7 +49,7 @@ public:
|
|
49
49
|
if (type != TARGET::TYPE) {
|
50
50
|
throw InternalException("Failed to cast bound query node to type - query node type mismatch");
|
51
51
|
}
|
52
|
-
return
|
52
|
+
return reinterpret_cast<const TARGET &>(*this);
|
53
53
|
}
|
54
54
|
};
|
55
55
|
|
@@ -23,9 +23,29 @@ public:
|
|
23
23
|
virtual ~BoundResultModifier();
|
24
24
|
|
25
25
|
ResultModifierType type;
|
26
|
+
|
27
|
+
public:
|
28
|
+
template <class TARGET>
|
29
|
+
TARGET &Cast() {
|
30
|
+
if (type != TARGET::TYPE) {
|
31
|
+
throw InternalException("Failed to cast result modifier to type - result modifier type mismatch");
|
32
|
+
}
|
33
|
+
return reinterpret_cast<TARGET &>(*this);
|
34
|
+
}
|
35
|
+
|
36
|
+
template <class TARGET>
|
37
|
+
const TARGET &Cast() const {
|
38
|
+
if (type != TARGET::TYPE) {
|
39
|
+
throw InternalException("Failed to cast result modifier to type - result modifier type mismatch");
|
40
|
+
}
|
41
|
+
return reinterpret_cast<const TARGET &>(*this);
|
42
|
+
}
|
26
43
|
};
|
27
44
|
|
28
45
|
struct BoundOrderByNode {
|
46
|
+
public:
|
47
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::ORDER_MODIFIER;
|
48
|
+
|
29
49
|
public:
|
30
50
|
BoundOrderByNode(OrderType type, OrderByNullType null_order, unique_ptr<Expression> expression);
|
31
51
|
BoundOrderByNode(OrderType type, OrderByNullType null_order, unique_ptr<Expression> expression,
|
@@ -46,6 +66,9 @@ public:
|
|
46
66
|
};
|
47
67
|
|
48
68
|
class BoundLimitModifier : public BoundResultModifier {
|
69
|
+
public:
|
70
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::LIMIT_MODIFIER;
|
71
|
+
|
49
72
|
public:
|
50
73
|
BoundLimitModifier();
|
51
74
|
|
@@ -60,6 +83,9 @@ public:
|
|
60
83
|
};
|
61
84
|
|
62
85
|
class BoundOrderModifier : public BoundResultModifier {
|
86
|
+
public:
|
87
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::ORDER_MODIFIER;
|
88
|
+
|
63
89
|
public:
|
64
90
|
BoundOrderModifier();
|
65
91
|
|
@@ -67,12 +93,16 @@ public:
|
|
67
93
|
vector<BoundOrderByNode> orders;
|
68
94
|
|
69
95
|
unique_ptr<BoundOrderModifier> Copy() const;
|
70
|
-
static bool Equals(const BoundOrderModifier
|
96
|
+
static bool Equals(const BoundOrderModifier &left, const BoundOrderModifier &right);
|
97
|
+
static bool Equals(const unique_ptr<BoundOrderModifier> &left, const unique_ptr<BoundOrderModifier> &right);
|
71
98
|
};
|
72
99
|
|
73
100
|
enum class DistinctType : uint8_t { DISTINCT = 0, DISTINCT_ON = 1 };
|
74
101
|
|
75
102
|
class BoundDistinctModifier : public BoundResultModifier {
|
103
|
+
public:
|
104
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::DISTINCT_MODIFIER;
|
105
|
+
|
76
106
|
public:
|
77
107
|
BoundDistinctModifier();
|
78
108
|
|
@@ -83,6 +113,9 @@ public:
|
|
83
113
|
};
|
84
114
|
|
85
115
|
class BoundLimitPercentModifier : public BoundResultModifier {
|
116
|
+
public:
|
117
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::LIMIT_PERCENT_MODIFIER;
|
118
|
+
|
86
119
|
public:
|
87
120
|
BoundLimitPercentModifier();
|
88
121
|
|
@@ -32,7 +32,7 @@ public:
|
|
32
32
|
if (type != TARGET::TYPE) {
|
33
33
|
throw InternalException("Failed to cast bound table ref to type - table ref type mismatch");
|
34
34
|
}
|
35
|
-
return
|
35
|
+
return reinterpret_cast<TARGET &>(*this);
|
36
36
|
}
|
37
37
|
|
38
38
|
template <class TARGET>
|
@@ -40,7 +40,7 @@ public:
|
|
40
40
|
if (type != TARGET::TYPE) {
|
41
41
|
throw InternalException("Failed to cast bound table ref to type - table ref type mismatch");
|
42
42
|
}
|
43
|
-
return
|
43
|
+
return reinterpret_cast<const TARGET &>(*this);
|
44
44
|
}
|
45
45
|
};
|
46
46
|
} // namespace duckdb
|
@@ -53,7 +53,7 @@ public:
|
|
53
53
|
string ToString() const override;
|
54
54
|
|
55
55
|
hash_t Hash() const override;
|
56
|
-
bool Equals(const BaseExpression
|
56
|
+
bool Equals(const BaseExpression &other) const override;
|
57
57
|
unique_ptr<Expression> Copy() override;
|
58
58
|
void Serialize(FieldWriter &writer) const override;
|
59
59
|
static unique_ptr<Expression> Deserialize(ExpressionDeserializationState &state, FieldReader &reader);
|
@@ -29,7 +29,7 @@ public:
|
|
29
29
|
public:
|
30
30
|
string ToString() const override;
|
31
31
|
|
32
|
-
bool Equals(const BaseExpression
|
32
|
+
bool Equals(const BaseExpression &other) const override;
|
33
33
|
|
34
34
|
unique_ptr<Expression> Copy() override;
|
35
35
|
void Serialize(FieldWriter &writer) const override;
|
@@ -44,7 +44,7 @@ public:
|
|
44
44
|
string ToString() const override;
|
45
45
|
string GetName() const override;
|
46
46
|
|
47
|
-
bool Equals(const BaseExpression
|
47
|
+
bool Equals(const BaseExpression &other) const override;
|
48
48
|
hash_t Hash() const override;
|
49
49
|
|
50
50
|
unique_ptr<Expression> Copy() override;
|
@@ -25,7 +25,7 @@ public:
|
|
25
25
|
public:
|
26
26
|
string ToString() const override;
|
27
27
|
|
28
|
-
bool Equals(const BaseExpression
|
28
|
+
bool Equals(const BaseExpression &other) const override;
|
29
29
|
|
30
30
|
unique_ptr<Expression> Copy() override;
|
31
31
|
void Serialize(FieldWriter &writer) const override;
|
@@ -39,7 +39,7 @@ public:
|
|
39
39
|
string ToString() const override;
|
40
40
|
bool PropagatesNullValues() const override;
|
41
41
|
hash_t Hash() const override;
|
42
|
-
bool Equals(const BaseExpression
|
42
|
+
bool Equals(const BaseExpression &other) const override;
|
43
43
|
|
44
44
|
unique_ptr<Expression> Copy() override;
|
45
45
|
void Verify() const override;
|