duckdb 0.8.1-dev51.0 → 0.8.1-dev96.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/json/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -6
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
- package/src/duckdb/extension/parquet/column_reader.cpp +52 -51
- 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/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_set.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- 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/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/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/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/value.cpp +2 -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/distributive/approx_count.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +12 -11
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +7 -7
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +14 -14
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +21 -21
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +18 -19
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +3 -4
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +1 -1
- 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/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 +1 -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/filter/physical_filter.cpp +1 -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 +2 -2
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +5 -5
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +8 -8
- 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/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/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.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 +4 -4
- 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 +4 -4
- package/src/duckdb/src/function/table/repeat.cpp +2 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
- 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 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- 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 +2 -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 +20 -19
- 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 +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +2 -2
- 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/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/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 +6 -6
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- 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/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/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 +1 -1
- 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 +1 -1
- 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/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 +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -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/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/optimizer/deliminator.cpp +12 -12
- 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/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 +3 -3
- 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 +69 -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 +27 -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 +6 -6
- 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_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_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +2 -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_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/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 +2 -2
- 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 +1 -1
- 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
@@ -32,25 +32,21 @@ VacuumOptions ParseOptions(int options) {
|
|
32
32
|
return result;
|
33
33
|
}
|
34
34
|
|
35
|
-
unique_ptr<SQLStatement> Transformer::TransformVacuum(duckdb_libpgquery::
|
36
|
-
auto
|
37
|
-
D_ASSERT(stmt);
|
35
|
+
unique_ptr<SQLStatement> Transformer::TransformVacuum(duckdb_libpgquery::PGVacuumStmt &stmt) {
|
36
|
+
auto result = make_uniq<VacuumStatement>(ParseOptions(stmt.options));
|
38
37
|
|
39
|
-
|
40
|
-
|
41
|
-
if (stmt->relation) {
|
42
|
-
result->info->ref = TransformRangeVar(stmt->relation);
|
38
|
+
if (stmt.relation) {
|
39
|
+
result->info->ref = TransformRangeVar(*stmt.relation);
|
43
40
|
result->info->has_table = true;
|
44
41
|
}
|
45
42
|
|
46
|
-
if (stmt
|
43
|
+
if (stmt.va_cols) {
|
47
44
|
D_ASSERT(result->info->has_table);
|
48
|
-
for (auto col_node = stmt
|
45
|
+
for (auto col_node = stmt.va_cols->head; col_node != nullptr; col_node = col_node->next) {
|
49
46
|
result->info->columns.emplace_back(
|
50
47
|
reinterpret_cast<duckdb_libpgquery::PGValue *>(col_node->data.ptr_value)->val.str);
|
51
48
|
}
|
52
49
|
}
|
53
|
-
|
54
50
|
return std::move(result);
|
55
51
|
}
|
56
52
|
|
@@ -3,40 +3,40 @@
|
|
3
3
|
|
4
4
|
namespace duckdb {
|
5
5
|
|
6
|
-
unique_ptr<TableRef> Transformer::TransformRangeVar(duckdb_libpgquery::PGRangeVar
|
6
|
+
unique_ptr<TableRef> Transformer::TransformRangeVar(duckdb_libpgquery::PGRangeVar &root) {
|
7
7
|
auto result = make_uniq<BaseTableRef>();
|
8
8
|
|
9
|
-
result->alias = TransformAlias(root
|
10
|
-
if (root
|
11
|
-
result->table_name = root
|
9
|
+
result->alias = TransformAlias(root.alias, result->column_name_alias);
|
10
|
+
if (root.relname) {
|
11
|
+
result->table_name = root.relname;
|
12
12
|
}
|
13
|
-
if (root
|
14
|
-
result->catalog_name = root
|
13
|
+
if (root.catalogname) {
|
14
|
+
result->catalog_name = root.catalogname;
|
15
15
|
}
|
16
|
-
if (root
|
17
|
-
result->schema_name = root
|
16
|
+
if (root.schemaname) {
|
17
|
+
result->schema_name = root.schemaname;
|
18
18
|
}
|
19
|
-
if (root
|
20
|
-
result->sample = TransformSampleOptions(root
|
19
|
+
if (root.sample) {
|
20
|
+
result->sample = TransformSampleOptions(root.sample);
|
21
21
|
}
|
22
|
-
result->query_location = root
|
22
|
+
result->query_location = root.location;
|
23
23
|
return std::move(result);
|
24
24
|
}
|
25
25
|
|
26
|
-
QualifiedName Transformer::TransformQualifiedName(duckdb_libpgquery::PGRangeVar
|
26
|
+
QualifiedName Transformer::TransformQualifiedName(duckdb_libpgquery::PGRangeVar &root) {
|
27
27
|
QualifiedName qname;
|
28
|
-
if (root
|
29
|
-
qname.catalog = root
|
28
|
+
if (root.catalogname) {
|
29
|
+
qname.catalog = root.catalogname;
|
30
30
|
} else {
|
31
31
|
qname.catalog = INVALID_CATALOG;
|
32
32
|
}
|
33
|
-
if (root
|
34
|
-
qname.schema = root
|
33
|
+
if (root.schemaname) {
|
34
|
+
qname.schema = root.schemaname;
|
35
35
|
} else {
|
36
36
|
qname.schema = INVALID_SCHEMA;
|
37
37
|
}
|
38
|
-
if (root
|
39
|
-
qname.name = root
|
38
|
+
if (root.relname) {
|
39
|
+
qname.name = root.relname;
|
40
40
|
} else {
|
41
41
|
qname.name = string();
|
42
42
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
namespace duckdb {
|
6
6
|
|
7
|
-
unique_ptr<TableRef> Transformer::TransformFrom(duckdb_libpgquery::PGList
|
7
|
+
unique_ptr<TableRef> Transformer::TransformFrom(optional_ptr<duckdb_libpgquery::PGList> root) {
|
8
8
|
if (!root) {
|
9
9
|
return make_uniq<EmptyTableRef>();
|
10
10
|
}
|
@@ -15,8 +15,8 @@ unique_ptr<TableRef> Transformer::TransformFrom(duckdb_libpgquery::PGList *root)
|
|
15
15
|
JoinRef *cur_root = result.get();
|
16
16
|
idx_t list_size = 0;
|
17
17
|
for (auto node = root->head; node != nullptr; node = node->next) {
|
18
|
-
auto n =
|
19
|
-
unique_ptr<TableRef> next = TransformTableRefNode(n);
|
18
|
+
auto n = PGPointerCast<duckdb_libpgquery::PGNode>(node->data.ptr_value);
|
19
|
+
unique_ptr<TableRef> next = TransformTableRefNode(*n);
|
20
20
|
if (!cur_root->left) {
|
21
21
|
cur_root->left = std::move(next);
|
22
22
|
} else if (!cur_root->right) {
|
@@ -34,8 +34,8 @@ unique_ptr<TableRef> Transformer::TransformFrom(duckdb_libpgquery::PGList *root)
|
|
34
34
|
return std::move(result);
|
35
35
|
}
|
36
36
|
|
37
|
-
auto n =
|
38
|
-
return TransformTableRefNode(n);
|
37
|
+
auto n = PGPointerCast<duckdb_libpgquery::PGNode>(root->head->data.ptr_value);
|
38
|
+
return TransformTableRefNode(*n);
|
39
39
|
}
|
40
40
|
|
41
41
|
} // namespace duckdb
|
@@ -5,9 +5,9 @@
|
|
5
5
|
|
6
6
|
namespace duckdb {
|
7
7
|
|
8
|
-
unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr
|
8
|
+
unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr &root) {
|
9
9
|
auto result = make_uniq<JoinRef>(JoinRefType::REGULAR);
|
10
|
-
switch (root
|
10
|
+
switch (root.jointype) {
|
11
11
|
case duckdb_libpgquery::PG_JOIN_INNER: {
|
12
12
|
result->type = JoinType::INNER;
|
13
13
|
break;
|
@@ -37,14 +37,14 @@ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *r
|
|
37
37
|
break;
|
38
38
|
}
|
39
39
|
default: {
|
40
|
-
throw NotImplementedException("Join type %d not supported\n", root
|
40
|
+
throw NotImplementedException("Join type %d not supported\n", root.jointype);
|
41
41
|
}
|
42
42
|
}
|
43
43
|
|
44
44
|
// Check the type of left arg and right arg before transform
|
45
|
-
result->left = TransformTableRefNode(root
|
46
|
-
result->right = TransformTableRefNode(root
|
47
|
-
switch (root
|
45
|
+
result->left = TransformTableRefNode(*root.larg);
|
46
|
+
result->right = TransformTableRefNode(*root.rarg);
|
47
|
+
switch (root.joinreftype) {
|
48
48
|
case duckdb_libpgquery::PG_JOIN_NATURAL:
|
49
49
|
result->ref_type = JoinRefType::NATURAL;
|
50
50
|
break;
|
@@ -54,11 +54,11 @@ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *r
|
|
54
54
|
default:
|
55
55
|
break;
|
56
56
|
}
|
57
|
-
result->query_location = root
|
57
|
+
result->query_location = root.location;
|
58
58
|
|
59
|
-
if (root
|
59
|
+
if (root.usingClause && root.usingClause->length > 0) {
|
60
60
|
// usingClause is a list of strings
|
61
|
-
for (auto node = root
|
61
|
+
for (auto node = root.usingClause->head; node != nullptr; node = node->next) {
|
62
62
|
auto target = reinterpret_cast<duckdb_libpgquery::PGNode *>(node->data.ptr_value);
|
63
63
|
D_ASSERT(target->type == duckdb_libpgquery::T_PGString);
|
64
64
|
auto column_name = string(reinterpret_cast<duckdb_libpgquery::PGValue *>(target)->val.str);
|
@@ -67,10 +67,10 @@ unique_ptr<TableRef> Transformer::TransformJoin(duckdb_libpgquery::PGJoinExpr *r
|
|
67
67
|
return std::move(result);
|
68
68
|
}
|
69
69
|
|
70
|
-
if (!root
|
70
|
+
if (!root.quals && result->using_columns.empty() && result->ref_type == JoinRefType::REGULAR) { // CROSS PRODUCT
|
71
71
|
result->ref_type = JoinRefType::CROSS;
|
72
72
|
}
|
73
|
-
result->condition = TransformExpression(root
|
73
|
+
result->condition = TransformExpression(root.quals);
|
74
74
|
return std::move(result);
|
75
75
|
}
|
76
76
|
|
@@ -32,10 +32,10 @@ static void TransformPivotInList(unique_ptr<ParsedExpression> &expr, PivotColumn
|
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
35
|
-
PivotColumn Transformer::TransformPivotColumn(duckdb_libpgquery::PGPivot
|
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,36 @@ 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 (root
|
91
|
-
result->groups = TransformStringList(root
|
89
|
+
result->pivots = TransformPivotList(*root.pivots);
|
90
|
+
if (root.groups) {
|
91
|
+
result->groups = TransformStringList(root.groups);
|
92
92
|
}
|
93
93
|
for (auto &pivot : result->pivots) {
|
94
94
|
idx_t expected_size;
|
@@ -116,8 +116,8 @@ unique_ptr<TableRef> Transformer::TransformPivot(duckdb_libpgquery::PGPivotExpr
|
|
116
116
|
}
|
117
117
|
}
|
118
118
|
}
|
119
|
-
result->include_nulls = root
|
120
|
-
result->alias = TransformAlias(root
|
119
|
+
result->include_nulls = root.include_nulls;
|
120
|
+
result->alias = TransformAlias(root.alias, result->column_name_alias);
|
121
121
|
return std::move(result);
|
122
122
|
}
|
123
123
|
|
@@ -3,16 +3,16 @@
|
|
3
3
|
|
4
4
|
namespace duckdb {
|
5
5
|
|
6
|
-
unique_ptr<TableRef> Transformer::TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect
|
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;
|
@@ -483,15 +484,14 @@ void BindContext::AddSubquery(idx_t index, const string &alias, SubqueryRef &ref
|
|
483
484
|
}
|
484
485
|
|
485
486
|
void BindContext::AddEntryBinding(idx_t index, const string &alias, const vector<string> &names,
|
486
|
-
const vector<LogicalType> &types, StandardEntry
|
487
|
-
|
488
|
-
AddBinding(alias, make_uniq<EntryBinding>(alias, types, names, index, *entry));
|
487
|
+
const vector<LogicalType> &types, StandardEntry &entry) {
|
488
|
+
AddBinding(alias, make_uniq<EntryBinding>(alias, types, names, index, entry));
|
489
489
|
}
|
490
490
|
|
491
491
|
void BindContext::AddView(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery,
|
492
492
|
ViewCatalogEntry *view) {
|
493
493
|
auto names = AliasColumnNames(alias, subquery.names, ref.column_name_alias);
|
494
|
-
AddEntryBinding(index, alias, names, subquery.types, (
|
494
|
+
AddEntryBinding(index, alias, names, subquery.types, view->Cast<StandardEntry>());
|
495
495
|
}
|
496
496
|
|
497
497
|
void BindContext::AddSubquery(idx_t index, const string &alias, TableFunctionRef &ref, BoundQueryNode &subquery) {
|
@@ -189,7 +189,7 @@ BindResult ExpressionBinder::BindLambdaFunction(FunctionExpression &function, Sc
|
|
189
189
|
}
|
190
190
|
|
191
191
|
// capture the (lambda) columns
|
192
|
-
auto &bound_lambda_expr =
|
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()) {
|
@@ -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) {
|