duckdb 0.8.1-dev26.0 → 0.8.1-dev276.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 +1 -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/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 +97 -121
- 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 +30 -32
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
- 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 +7 -5
- 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_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 +15 -20
- package/src/duckdb/src/function/table/repeat.cpp +2 -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/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 +3 -3
- 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/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 +107 -91
- 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/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/index.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- 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 +1 -1
- 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/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_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/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_database.cpp +3 -4
- 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 -22
- 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 +46 -46
- 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 -1
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- 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 +17 -7
- 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/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 +1 -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/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
@@ -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
|
35
|
+
PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot &pivot) {
|
36
36
|
PivotColumn col;
|
37
|
-
if (pivot
|
38
|
-
TransformExpressionList(*pivot
|
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
|
48
|
-
col.unpivot_names = TransformStringList(pivot
|
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
|
53
|
-
for (auto node = pivot
|
54
|
-
auto n =
|
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,39 @@ PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot *pivot)
|
|
59
59
|
col.entries.push_back(std::move(entry));
|
60
60
|
}
|
61
61
|
}
|
62
|
-
if (pivot
|
63
|
-
col.subquery = TransformSelectNode(
|
62
|
+
if (pivot.subquery) {
|
63
|
+
col.subquery = TransformSelectNode(*PGPointerCast<duckdb_libpgquery::PGSelectStmt>(pivot.subquery));
|
64
64
|
}
|
65
|
-
if (pivot
|
66
|
-
col.pivot_enum = pivot
|
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
|
71
|
+
vector<PivotColumn> Transformer::TransformPivotList(duckdb_libpgquery::PGList &list) {
|
72
72
|
vector<PivotColumn> result;
|
73
|
-
for (auto node = list
|
74
|
-
auto pivot =
|
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
|
80
|
+
unique_ptr<TableRef> Transformer::TransformPivot(duckdb_libpgquery::PGPivotExpr &root) {
|
81
81
|
auto result = make_uniq<PivotRef>();
|
82
|
-
result->source = TransformTableRefNode(root
|
83
|
-
if (root
|
84
|
-
TransformExpressionList(*root
|
82
|
+
result->source = TransformTableRefNode(*root.source);
|
83
|
+
if (root.aggrs) {
|
84
|
+
TransformExpressionList(*root.aggrs, result->aggregates);
|
85
85
|
}
|
86
|
-
if (root
|
87
|
-
result->unpivot_names = TransformStringList(root
|
86
|
+
if (root.unpivots) {
|
87
|
+
result->unpivot_names = TransformStringList(root.unpivots);
|
88
88
|
}
|
89
|
-
result->pivots = TransformPivotList(root
|
90
|
-
if (
|
91
|
-
|
89
|
+
result->pivots = TransformPivotList(*root.pivots);
|
90
|
+
if (!result->unpivot_names.empty() && result->pivots.size() > 1) {
|
91
|
+
throw ParserException("UNPIVOT requires a single pivot element");
|
92
|
+
}
|
93
|
+
if (root.groups) {
|
94
|
+
result->groups = TransformStringList(root.groups);
|
92
95
|
}
|
93
96
|
for (auto &pivot : result->pivots) {
|
94
97
|
idx_t expected_size;
|
@@ -116,8 +119,8 @@ unique_ptr<TableRef> Transformer::TransformPivot(duckdb_libpgquery::PGPivotExpr
|
|
116
119
|
}
|
117
120
|
}
|
118
121
|
}
|
119
|
-
result->include_nulls = root
|
120
|
-
result->alias = TransformAlias(root
|
122
|
+
result->include_nulls = root.include_nulls;
|
123
|
+
result->alias = TransformAlias(root.alias, result->column_name_alias);
|
121
124
|
return std::move(result);
|
122
125
|
}
|
123
126
|
|
@@ -3,16 +3,16 @@
|
|
3
3
|
|
4
4
|
namespace duckdb {
|
5
5
|
|
6
|
-
unique_ptr<TableRef> Transformer::TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect
|
6
|
+
unique_ptr<TableRef> Transformer::TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect &root) {
|
7
7
|
Transformer subquery_transformer(*this);
|
8
|
-
auto subquery = subquery_transformer.TransformSelect(root
|
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
|
14
|
-
if (root
|
15
|
-
result->sample = TransformSampleOptions(root
|
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
|
8
|
-
if (root
|
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
|
11
|
+
if (root.is_rowsfrom) {
|
12
12
|
throw NotImplementedException("ROWS FROM() not implemented");
|
13
13
|
}
|
14
|
-
if (root
|
14
|
+
if (root.functions->length != 1) {
|
15
15
|
throw NotImplementedException("Need exactly one function");
|
16
16
|
}
|
17
|
-
auto function_sublist =
|
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 =
|
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 =
|
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 =
|
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
|
41
|
-
if (root
|
42
|
-
result->sample = TransformSampleOptions(root
|
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
|
7
|
+
unique_ptr<TableRef> Transformer::TransformTableRefNode(duckdb_libpgquery::PGNode &n) {
|
8
8
|
auto stack_checker = StackCheck();
|
9
9
|
|
10
|
-
switch (n
|
10
|
+
switch (n.type) {
|
11
11
|
case duckdb_libpgquery::T_PGRangeVar:
|
12
|
-
return TransformRangeVar(
|
12
|
+
return TransformRangeVar(PGCast<duckdb_libpgquery::PGRangeVar>(n));
|
13
13
|
case duckdb_libpgquery::T_PGJoinExpr:
|
14
|
-
return TransformJoin(
|
14
|
+
return TransformJoin(PGCast<duckdb_libpgquery::PGJoinExpr>(n));
|
15
15
|
case duckdb_libpgquery::T_PGRangeSubselect:
|
16
|
-
return TransformRangeSubselect(
|
16
|
+
return TransformRangeSubselect(PGCast<duckdb_libpgquery::PGRangeSubselect>(n));
|
17
17
|
case duckdb_libpgquery::T_PGRangeFunction:
|
18
|
-
return TransformRangeFunction(
|
18
|
+
return TransformRangeFunction(PGCast<duckdb_libpgquery::PGRangeFunction>(n));
|
19
19
|
case duckdb_libpgquery::T_PGPivotExpr:
|
20
|
-
return TransformPivot(
|
20
|
+
return TransformPivot(PGCast<duckdb_libpgquery::PGPivotExpr>(n));
|
21
21
|
default:
|
22
|
-
throw NotImplementedException("From Type %d not supported", n
|
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 =
|
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
|
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
|
127
|
-
switch (stmt
|
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 =
|
130
|
-
auto result = TransformStatement(raw_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
|
133
|
-
result->stmt_length = raw_stmt
|
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
|
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 = (
|
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 = (
|
180
|
+
auto &table_binding = binding.Cast<TableBinding>();
|
180
181
|
auto catalog_entry = table_binding.GetStandardEntry();
|
181
182
|
if (!catalog_entry) {
|
182
183
|
return false;
|
@@ -285,15 +286,14 @@ string BindContext::BindColumn(PositionalReferenceExpression &ref, string &table
|
|
285
286
|
return StringUtil::Format("Positional reference %d out of range (total %d columns)", ref.index, total_columns);
|
286
287
|
}
|
287
288
|
|
288
|
-
|
289
|
+
unique_ptr<ColumnRefExpression> BindContext::PositionToColumn(PositionalReferenceExpression &ref) {
|
289
290
|
string table_name, column_name;
|
290
291
|
|
291
292
|
string error = BindColumn(ref, table_name, column_name);
|
292
293
|
if (!error.empty()) {
|
293
|
-
|
294
|
+
throw BinderException(error);
|
294
295
|
}
|
295
|
-
|
296
|
-
return BindColumn(*column_ref, depth);
|
296
|
+
return make_uniq<ColumnRefExpression>(column_name, table_name);
|
297
297
|
}
|
298
298
|
|
299
299
|
bool BindContext::CheckExclusionList(StarExpression &expr, const string &column_name,
|
@@ -483,15 +483,14 @@ void BindContext::AddSubquery(idx_t index, const string &alias, SubqueryRef &ref
|
|
483
483
|
}
|
484
484
|
|
485
485
|
void BindContext::AddEntryBinding(idx_t index, const string &alias, const vector<string> &names,
|
486
|
-
const vector<LogicalType> &types, StandardEntry
|
487
|
-
|
488
|
-
AddBinding(alias, make_uniq<EntryBinding>(alias, types, names, index, *entry));
|
486
|
+
const vector<LogicalType> &types, StandardEntry &entry) {
|
487
|
+
AddBinding(alias, make_uniq<EntryBinding>(alias, types, names, index, entry));
|
489
488
|
}
|
490
489
|
|
491
490
|
void BindContext::AddView(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery,
|
492
491
|
ViewCatalogEntry *view) {
|
493
492
|
auto names = AliasColumnNames(alias, subquery.names, ref.column_name_alias);
|
494
|
-
AddEntryBinding(index, alias, names, subquery.types, (
|
493
|
+
AddEntryBinding(index, alias, names, subquery.types, view->Cast<StandardEntry>());
|
495
494
|
}
|
496
495
|
|
497
496
|
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 =
|
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 = (
|
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()) {
|
@@ -4,11 +4,16 @@
|
|
4
4
|
|
5
5
|
namespace duckdb {
|
6
6
|
|
7
|
-
BindResult ExpressionBinder::
|
7
|
+
BindResult ExpressionBinder::BindPositionalReference(unique_ptr<ParsedExpression> &expr, idx_t depth,
|
8
|
+
bool root_expression) {
|
9
|
+
auto &ref = expr->Cast<PositionalReferenceExpression>();
|
8
10
|
if (depth != 0) {
|
9
|
-
|
11
|
+
throw InternalException("Positional reference expression could not be bound");
|
10
12
|
}
|
11
|
-
|
13
|
+
// replace the positional reference with a column
|
14
|
+
auto column = binder.bind_context.PositionToColumn(ref);
|
15
|
+
expr = std::move(column);
|
16
|
+
return BindExpression(expr, depth, root_expression);
|
12
17
|
}
|
13
18
|
|
14
19
|
} // namespace duckdb
|
@@ -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 (!
|
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 =
|
78
|
-
auto subquery_binder = std::move(bound_subquery
|
79
|
-
auto bound_node = std::move(bound_subquery
|
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) {
|
@@ -113,7 +113,7 @@ void Binder::BindModifiers(OrderBinder &order_binder, QueryNode &statement, Boun
|
|
113
113
|
unique_ptr<BoundResultModifier> bound_modifier;
|
114
114
|
switch (mod->type) {
|
115
115
|
case ResultModifierType::DISTINCT_MODIFIER: {
|
116
|
-
auto &distinct = (
|
116
|
+
auto &distinct = mod->Cast<DistinctModifier>();
|
117
117
|
auto bound_distinct = make_uniq<BoundDistinctModifier>();
|
118
118
|
bound_distinct->distinct_type =
|
119
119
|
distinct.distinct_on_targets.empty() ? DistinctType::DISTINCT : DistinctType::DISTINCT_ON;
|
@@ -133,7 +133,7 @@ void Binder::BindModifiers(OrderBinder &order_binder, QueryNode &statement, Boun
|
|
133
133
|
break;
|
134
134
|
}
|
135
135
|
case ResultModifierType::ORDER_MODIFIER: {
|
136
|
-
auto &order = (
|
136
|
+
auto &order = mod->Cast<OrderModifier>();
|
137
137
|
auto bound_order = make_uniq<BoundOrderModifier>();
|
138
138
|
auto &config = DBConfig::GetConfig(context);
|
139
139
|
D_ASSERT(!order.orders.empty());
|
@@ -174,10 +174,10 @@ void Binder::BindModifiers(OrderBinder &order_binder, QueryNode &statement, Boun
|
|
174
174
|
break;
|
175
175
|
}
|
176
176
|
case ResultModifierType::LIMIT_MODIFIER:
|
177
|
-
bound_modifier = BindLimit(order_binder, (
|
177
|
+
bound_modifier = BindLimit(order_binder, mod->Cast<LimitModifier>());
|
178
178
|
break;
|
179
179
|
case ResultModifierType::LIMIT_PERCENT_MODIFIER:
|
180
|
-
bound_modifier = BindLimitPercent(order_binder, (
|
180
|
+
bound_modifier = BindLimitPercent(order_binder, mod->Cast<LimitPercentModifier>());
|
181
181
|
break;
|
182
182
|
default:
|
183
183
|
throw Exception("Unsupported result modifier");
|
@@ -203,7 +203,7 @@ void Binder::BindModifierTypes(BoundQueryNode &result, const vector<LogicalType>
|
|
203
203
|
for (auto &bound_mod : result.modifiers) {
|
204
204
|
switch (bound_mod->type) {
|
205
205
|
case ResultModifierType::DISTINCT_MODIFIER: {
|
206
|
-
auto &distinct = (
|
206
|
+
auto &distinct = bound_mod->Cast<BoundDistinctModifier>();
|
207
207
|
D_ASSERT(!distinct.target_distincts.empty());
|
208
208
|
// set types of distinct targets
|
209
209
|
for (auto &expr : distinct.target_distincts) {
|
@@ -226,19 +226,19 @@ void Binder::BindModifierTypes(BoundQueryNode &result, const vector<LogicalType>
|
|
226
226
|
break;
|
227
227
|
}
|
228
228
|
case ResultModifierType::LIMIT_MODIFIER: {
|
229
|
-
auto &limit = (
|
229
|
+
auto &limit = bound_mod->Cast<BoundLimitModifier>();
|
230
230
|
AssignReturnType(limit.limit, sql_types);
|
231
231
|
AssignReturnType(limit.offset, sql_types);
|
232
232
|
break;
|
233
233
|
}
|
234
234
|
case ResultModifierType::LIMIT_PERCENT_MODIFIER: {
|
235
|
-
auto &limit = (
|
235
|
+
auto &limit = bound_mod->Cast<BoundLimitPercentModifier>();
|
236
236
|
AssignReturnType(limit.limit, sql_types);
|
237
237
|
AssignReturnType(limit.offset, sql_types);
|
238
238
|
break;
|
239
239
|
}
|
240
240
|
case ResultModifierType::ORDER_MODIFIER: {
|
241
|
-
auto &order = (
|
241
|
+
auto &order = bound_mod->Cast<BoundOrderModifier>();
|
242
242
|
for (auto &order_node : order.orders) {
|
243
243
|
auto &expr = order_node.expression;
|
244
244
|
D_ASSERT(expr->type == ExpressionType::BOUND_COLUMN_REF);
|
@@ -13,14 +13,14 @@ unique_ptr<LogicalOperator> Binder::VisitQueryNode(BoundQueryNode &node, unique_
|
|
13
13
|
for (auto &mod : node.modifiers) {
|
14
14
|
switch (mod->type) {
|
15
15
|
case ResultModifierType::DISTINCT_MODIFIER: {
|
16
|
-
auto &bound = (
|
16
|
+
auto &bound = mod->Cast<BoundDistinctModifier>();
|
17
17
|
auto distinct = make_uniq<LogicalDistinct>(std::move(bound.target_distincts), bound.distinct_type);
|
18
18
|
distinct->AddChild(std::move(root));
|
19
19
|
root = std::move(distinct);
|
20
20
|
break;
|
21
21
|
}
|
22
22
|
case ResultModifierType::ORDER_MODIFIER: {
|
23
|
-
auto &bound = (
|
23
|
+
auto &bound = mod->Cast<BoundOrderModifier>();
|
24
24
|
if (root->type == LogicalOperatorType::LOGICAL_DISTINCT) {
|
25
25
|
auto &distinct = root->Cast<LogicalDistinct>();
|
26
26
|
if (distinct.distinct_type == DistinctType::DISTINCT_ON) {
|
@@ -37,7 +37,7 @@ unique_ptr<LogicalOperator> Binder::VisitQueryNode(BoundQueryNode &node, unique_
|
|
37
37
|
break;
|
38
38
|
}
|
39
39
|
case ResultModifierType::LIMIT_MODIFIER: {
|
40
|
-
auto &bound = (
|
40
|
+
auto &bound = mod->Cast<BoundLimitModifier>();
|
41
41
|
auto limit = make_uniq<LogicalLimit>(bound.limit_val, bound.offset_val, std::move(bound.limit),
|
42
42
|
std::move(bound.offset));
|
43
43
|
limit->AddChild(std::move(root));
|
@@ -45,7 +45,7 @@ unique_ptr<LogicalOperator> Binder::VisitQueryNode(BoundQueryNode &node, unique_
|
|
45
45
|
break;
|
46
46
|
}
|
47
47
|
case ResultModifierType::LIMIT_PERCENT_MODIFIER: {
|
48
|
-
auto &bound = (
|
48
|
+
auto &bound = mod->Cast<BoundLimitPercentModifier>();
|
49
49
|
auto limit = make_uniq<LogicalLimitPercent>(bound.limit_percent, bound.offset_val, std::move(bound.limit),
|
50
50
|
std::move(bound.offset));
|
51
51
|
limit->AddChild(std::move(root));
|
@@ -501,7 +501,7 @@ BoundStatement Binder::Bind(CreateStatement &stmt) {
|
|
501
501
|
result.plan = make_uniq<LogicalCreate>(LogicalOperatorType::LOGICAL_CREATE_SCHEMA, std::move(stmt.info));
|
502
502
|
break;
|
503
503
|
case CatalogType::VIEW_ENTRY: {
|
504
|
-
auto &base =
|
504
|
+
auto &base = stmt.info->Cast<CreateViewInfo>();
|
505
505
|
// bind the schema
|
506
506
|
auto &schema = BindCreateSchema(*stmt.info);
|
507
507
|
BindCreateViewInfo(base);
|
@@ -294,9 +294,26 @@ unique_ptr<BoundCreateTableInfo> Binder::BindCreateTableInfo(unique_ptr<CreateIn
|
|
294
294
|
BindLogicalType(context, column.TypeMutable(), &result->schema.catalog);
|
295
295
|
// We add a catalog dependency
|
296
296
|
auto type_dependency = EnumType::GetCatalog(column.Type());
|
297
|
+
|
297
298
|
if (type_dependency) {
|
298
299
|
// Only if the USER comes from a create type
|
299
|
-
|
300
|
+
if (!schema.catalog.IsTemporaryCatalog()) {
|
301
|
+
// If it is not a TEMP table we add a dependency
|
302
|
+
result->dependencies.AddDependency(*type_dependency);
|
303
|
+
} else {
|
304
|
+
auto enum_type = type_dependency->user_type;
|
305
|
+
auto &enum_entries = EnumType::GetValuesInsertOrder(enum_type);
|
306
|
+
auto enum_size = EnumType::GetSize(enum_type);
|
307
|
+
Vector copy_enum_entries_vec(LogicalType::VARCHAR, enum_size);
|
308
|
+
auto copy_enum_entries_ptr = FlatVector::GetData<string_t>(copy_enum_entries_vec);
|
309
|
+
auto enum_entries_ptr = FlatVector::GetData<string_t>(enum_entries);
|
310
|
+
for (idx_t enum_idx = 0; enum_idx < enum_size; enum_idx++) {
|
311
|
+
copy_enum_entries_ptr[enum_idx] =
|
312
|
+
StringVector::AddStringOrBlob(copy_enum_entries_vec, enum_entries_ptr[enum_idx]);
|
313
|
+
}
|
314
|
+
auto copy_type = LogicalType::ENUM(EnumType::GetTypeName(enum_type), copy_enum_entries_vec, enum_size);
|
315
|
+
column.SetType(copy_type);
|
316
|
+
}
|
300
317
|
}
|
301
318
|
}
|
302
319
|
result->dependencies.VerifyDependencies(schema.catalog, result->Base().table);
|