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
@@ -41,7 +41,7 @@ public:
|
|
41
41
|
|
42
42
|
public:
|
43
43
|
//! Returns true if the two result modifiers are equivalent
|
44
|
-
virtual bool Equals(const ResultModifier
|
44
|
+
virtual bool Equals(const ResultModifier &other) const;
|
45
45
|
|
46
46
|
//! Create a copy of this ResultModifier
|
47
47
|
virtual unique_ptr<ResultModifier> Copy() const = 0;
|
@@ -54,6 +54,23 @@ public:
|
|
54
54
|
|
55
55
|
virtual void FormatSerialize(FormatSerializer &serializer) const;
|
56
56
|
static unique_ptr<ResultModifier> FormatDeserialize(FormatDeserializer &deserializer);
|
57
|
+
|
58
|
+
public:
|
59
|
+
template <class TARGET>
|
60
|
+
TARGET &Cast() {
|
61
|
+
if (type != TARGET::TYPE) {
|
62
|
+
throw InternalException("Failed to cast result modifier to type - result modifier type mismatch");
|
63
|
+
}
|
64
|
+
return reinterpret_cast<TARGET &>(*this);
|
65
|
+
}
|
66
|
+
|
67
|
+
template <class TARGET>
|
68
|
+
const TARGET &Cast() const {
|
69
|
+
if (type != TARGET::TYPE) {
|
70
|
+
throw InternalException("Failed to cast result modifier to type - result modifier type mismatch");
|
71
|
+
}
|
72
|
+
return reinterpret_cast<const TARGET &>(*this);
|
73
|
+
}
|
57
74
|
};
|
58
75
|
|
59
76
|
//! Single node in ORDER BY statement
|
@@ -79,6 +96,9 @@ public:
|
|
79
96
|
};
|
80
97
|
|
81
98
|
class LimitModifier : public ResultModifier {
|
99
|
+
public:
|
100
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::LIMIT_MODIFIER;
|
101
|
+
|
82
102
|
public:
|
83
103
|
LimitModifier() : ResultModifier(ResultModifierType::LIMIT_MODIFIER) {
|
84
104
|
}
|
@@ -89,7 +109,7 @@ public:
|
|
89
109
|
unique_ptr<ParsedExpression> offset;
|
90
110
|
|
91
111
|
public:
|
92
|
-
bool Equals(const ResultModifier
|
112
|
+
bool Equals(const ResultModifier &other) const override;
|
93
113
|
unique_ptr<ResultModifier> Copy() const override;
|
94
114
|
void Serialize(FieldWriter &writer) const override;
|
95
115
|
static unique_ptr<ResultModifier> Deserialize(FieldReader &reader);
|
@@ -99,6 +119,9 @@ public:
|
|
99
119
|
};
|
100
120
|
|
101
121
|
class OrderModifier : public ResultModifier {
|
122
|
+
public:
|
123
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::ORDER_MODIFIER;
|
124
|
+
|
102
125
|
public:
|
103
126
|
OrderModifier() : ResultModifier(ResultModifierType::ORDER_MODIFIER) {
|
104
127
|
}
|
@@ -107,16 +130,21 @@ public:
|
|
107
130
|
vector<OrderByNode> orders;
|
108
131
|
|
109
132
|
public:
|
110
|
-
bool Equals(const ResultModifier
|
133
|
+
bool Equals(const ResultModifier &other) const override;
|
111
134
|
unique_ptr<ResultModifier> Copy() const override;
|
112
135
|
void Serialize(FieldWriter &writer) const override;
|
113
136
|
static unique_ptr<ResultModifier> Deserialize(FieldReader &reader);
|
114
137
|
|
115
138
|
void FormatSerialize(FormatSerializer &serializer) const override;
|
116
139
|
static unique_ptr<ResultModifier> FormatDeserialize(FormatDeserializer &deserializer);
|
140
|
+
|
141
|
+
static bool Equals(const unique_ptr<OrderModifier> &left, const unique_ptr<OrderModifier> &right);
|
117
142
|
};
|
118
143
|
|
119
144
|
class DistinctModifier : public ResultModifier {
|
145
|
+
public:
|
146
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::DISTINCT_MODIFIER;
|
147
|
+
|
120
148
|
public:
|
121
149
|
DistinctModifier() : ResultModifier(ResultModifierType::DISTINCT_MODIFIER) {
|
122
150
|
}
|
@@ -125,7 +153,7 @@ public:
|
|
125
153
|
vector<unique_ptr<ParsedExpression>> distinct_on_targets;
|
126
154
|
|
127
155
|
public:
|
128
|
-
bool Equals(const ResultModifier
|
156
|
+
bool Equals(const ResultModifier &other) const override;
|
129
157
|
unique_ptr<ResultModifier> Copy() const override;
|
130
158
|
void Serialize(FieldWriter &writer) const override;
|
131
159
|
static unique_ptr<ResultModifier> Deserialize(FieldReader &reader);
|
@@ -135,6 +163,9 @@ public:
|
|
135
163
|
};
|
136
164
|
|
137
165
|
class LimitPercentModifier : public ResultModifier {
|
166
|
+
public:
|
167
|
+
static constexpr const ResultModifierType TYPE = ResultModifierType::LIMIT_PERCENT_MODIFIER;
|
168
|
+
|
138
169
|
public:
|
139
170
|
LimitPercentModifier() : ResultModifier(ResultModifierType::LIMIT_PERCENT_MODIFIER) {
|
140
171
|
}
|
@@ -145,7 +176,7 @@ public:
|
|
145
176
|
unique_ptr<ParsedExpression> offset;
|
146
177
|
|
147
178
|
public:
|
148
|
-
bool Equals(const ResultModifier
|
179
|
+
bool Equals(const ResultModifier &other) const override;
|
149
180
|
unique_ptr<ResultModifier> Copy() const override;
|
150
181
|
void Serialize(FieldWriter &writer) const override;
|
151
182
|
static unique_ptr<ResultModifier> Deserialize(FieldReader &reader);
|
@@ -18,6 +18,9 @@ namespace duckdb {
|
|
18
18
|
|
19
19
|
//! SQLStatement is the base class of any type of SQL statement.
|
20
20
|
class SQLStatement {
|
21
|
+
public:
|
22
|
+
static constexpr const StatementType TYPE = StatementType::INVALID_STATEMENT;
|
23
|
+
|
21
24
|
public:
|
22
25
|
explicit SQLStatement(StatementType type) : type(type) {
|
23
26
|
}
|
@@ -52,18 +55,18 @@ public:
|
|
52
55
|
public:
|
53
56
|
template <class TARGET>
|
54
57
|
TARGET &Cast() {
|
55
|
-
if (type != TARGET::TYPE) {
|
58
|
+
if (type != TARGET::TYPE && TARGET::TYPE != StatementType::INVALID_STATEMENT) {
|
56
59
|
throw InternalException("Failed to cast statement to type - statement type mismatch");
|
57
60
|
}
|
58
|
-
return
|
61
|
+
return reinterpret_cast<TARGET &>(*this);
|
59
62
|
}
|
60
63
|
|
61
64
|
template <class TARGET>
|
62
65
|
const TARGET &Cast() const {
|
63
|
-
if (type != TARGET::TYPE) {
|
66
|
+
if (type != TARGET::TYPE && TARGET::TYPE != StatementType::INVALID_STATEMENT) {
|
64
67
|
throw InternalException("Failed to cast statement to type - statement type mismatch");
|
65
68
|
}
|
66
|
-
return
|
69
|
+
return reinterpret_cast<const TARGET &>(*this);
|
67
70
|
}
|
68
71
|
};
|
69
72
|
} // namespace duckdb
|
@@ -46,7 +46,7 @@ public:
|
|
46
46
|
//! deserialization is not possible
|
47
47
|
static unique_ptr<SelectStatement> Deserialize(Deserializer &source);
|
48
48
|
//! Whether or not the statements are equivalent
|
49
|
-
bool Equals(const SQLStatement
|
49
|
+
bool Equals(const SQLStatement &other) const;
|
50
50
|
|
51
51
|
void FormatSerialize(FormatSerializer &serializer) const;
|
52
52
|
static unique_ptr<SelectStatement> FormatDeserialize(FormatDeserializer &deserializer);
|
@@ -41,7 +41,8 @@ public:
|
|
41
41
|
string BaseToString(string result, const vector<string> &column_name_alias) const;
|
42
42
|
void Print();
|
43
43
|
|
44
|
-
virtual bool Equals(const TableRef
|
44
|
+
virtual bool Equals(const TableRef &other) const;
|
45
|
+
static bool Equals(const unique_ptr<TableRef> &left, const unique_ptr<TableRef> &right);
|
45
46
|
|
46
47
|
virtual unique_ptr<TableRef> Copy() = 0;
|
47
48
|
|
@@ -63,7 +64,7 @@ public:
|
|
63
64
|
if (type != TARGET::TYPE && TARGET::TYPE != TableReferenceType::INVALID) {
|
64
65
|
throw InternalException("Failed to cast constraint to type - constraint type mismatch");
|
65
66
|
}
|
66
|
-
return
|
67
|
+
return reinterpret_cast<TARGET &>(*this);
|
67
68
|
}
|
68
69
|
|
69
70
|
template <class TARGET>
|
@@ -71,7 +72,7 @@ public:
|
|
71
72
|
if (type != TARGET::TYPE && TARGET::TYPE != TableReferenceType::INVALID) {
|
72
73
|
throw InternalException("Failed to cast constraint to type - constraint type mismatch");
|
73
74
|
}
|
74
|
-
return
|
75
|
+
return reinterpret_cast<const TARGET &>(*this);
|
75
76
|
}
|
76
77
|
};
|
77
78
|
} // namespace duckdb
|
@@ -97,42 +97,44 @@ private:
|
|
97
97
|
|
98
98
|
private:
|
99
99
|
//! Transforms a Postgres statement into a single SQL statement
|
100
|
-
unique_ptr<SQLStatement> TransformStatement(duckdb_libpgquery::PGNode
|
100
|
+
unique_ptr<SQLStatement> TransformStatement(duckdb_libpgquery::PGNode &stmt);
|
101
101
|
//! Transforms a Postgres statement into a single SQL statement
|
102
|
-
unique_ptr<SQLStatement> TransformStatementInternal(duckdb_libpgquery::PGNode
|
102
|
+
unique_ptr<SQLStatement> TransformStatementInternal(duckdb_libpgquery::PGNode &stmt);
|
103
103
|
//===--------------------------------------------------------------------===//
|
104
104
|
// Statement transformation
|
105
105
|
//===--------------------------------------------------------------------===//
|
106
106
|
//! Transform a Postgres duckdb_libpgquery::T_PGSelectStmt node into a SelectStatement
|
107
|
-
unique_ptr<SelectStatement> TransformSelect(duckdb_libpgquery::PGNode
|
107
|
+
unique_ptr<SelectStatement> TransformSelect(optional_ptr<duckdb_libpgquery::PGNode> node, bool is_select = true);
|
108
|
+
//! Transform a Postgres duckdb_libpgquery::T_PGSelectStmt node into a SelectStatement
|
109
|
+
unique_ptr<SelectStatement> TransformSelect(duckdb_libpgquery::PGSelectStmt &select, bool is_select = true);
|
108
110
|
//! Transform a Postgres T_AlterStmt node into a AlterStatement
|
109
|
-
unique_ptr<AlterStatement> TransformAlter(duckdb_libpgquery::
|
111
|
+
unique_ptr<AlterStatement> TransformAlter(duckdb_libpgquery::PGAlterTableStmt &stmt);
|
110
112
|
//! Transform a Postgres duckdb_libpgquery::T_PGRenameStmt node into a RenameStatement
|
111
|
-
unique_ptr<AlterStatement> TransformRename(duckdb_libpgquery::
|
113
|
+
unique_ptr<AlterStatement> TransformRename(duckdb_libpgquery::PGRenameStmt &stmt);
|
112
114
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateStmt node into a CreateStatement
|
113
|
-
unique_ptr<CreateStatement> TransformCreateTable(duckdb_libpgquery::
|
115
|
+
unique_ptr<CreateStatement> TransformCreateTable(duckdb_libpgquery::PGCreateStmt &node);
|
114
116
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateStmt node into a CreateStatement
|
115
|
-
unique_ptr<CreateStatement> TransformCreateTableAs(duckdb_libpgquery::
|
117
|
+
unique_ptr<CreateStatement> TransformCreateTableAs(duckdb_libpgquery::PGCreateTableAsStmt &stmt);
|
116
118
|
//! Transform a Postgres node into a CreateStatement
|
117
|
-
unique_ptr<CreateStatement> TransformCreateSchema(duckdb_libpgquery::
|
119
|
+
unique_ptr<CreateStatement> TransformCreateSchema(duckdb_libpgquery::PGCreateSchemaStmt &stmt);
|
118
120
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateSeqStmt node into a CreateStatement
|
119
|
-
unique_ptr<CreateStatement> TransformCreateSequence(duckdb_libpgquery::
|
121
|
+
unique_ptr<CreateStatement> TransformCreateSequence(duckdb_libpgquery::PGCreateSeqStmt &node);
|
120
122
|
//! Transform a Postgres duckdb_libpgquery::T_PGViewStmt node into a CreateStatement
|
121
|
-
unique_ptr<CreateStatement> TransformCreateView(duckdb_libpgquery::
|
123
|
+
unique_ptr<CreateStatement> TransformCreateView(duckdb_libpgquery::PGViewStmt &node);
|
122
124
|
//! Transform a Postgres duckdb_libpgquery::T_PGIndexStmt node into CreateStatement
|
123
|
-
unique_ptr<CreateStatement> TransformCreateIndex(duckdb_libpgquery::
|
125
|
+
unique_ptr<CreateStatement> TransformCreateIndex(duckdb_libpgquery::PGIndexStmt &stmt);
|
124
126
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateFunctionStmt node into CreateStatement
|
125
|
-
unique_ptr<CreateStatement> TransformCreateFunction(duckdb_libpgquery::
|
127
|
+
unique_ptr<CreateStatement> TransformCreateFunction(duckdb_libpgquery::PGCreateFunctionStmt &stmt);
|
126
128
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateTypeStmt node into CreateStatement
|
127
|
-
unique_ptr<CreateStatement> TransformCreateType(duckdb_libpgquery::
|
129
|
+
unique_ptr<CreateStatement> TransformCreateType(duckdb_libpgquery::PGCreateTypeStmt &stmt);
|
128
130
|
//! Transform a Postgres duckdb_libpgquery::T_PGCreateDatabaseStmt node into a CreateStatement
|
129
|
-
unique_ptr<CreateStatement> TransformCreateDatabase(duckdb_libpgquery::
|
131
|
+
unique_ptr<CreateStatement> TransformCreateDatabase(duckdb_libpgquery::PGCreateDatabaseStmt &stmt);
|
130
132
|
//! Transform a Postgres duckdb_libpgquery::T_PGAlterSeqStmt node into CreateStatement
|
131
|
-
unique_ptr<AlterStatement> TransformAlterSequence(duckdb_libpgquery::
|
133
|
+
unique_ptr<AlterStatement> TransformAlterSequence(duckdb_libpgquery::PGAlterSeqStmt &stmt);
|
132
134
|
//! Transform a Postgres duckdb_libpgquery::T_PGDropStmt node into a Drop[Table,Schema]Statement
|
133
|
-
unique_ptr<SQLStatement> TransformDrop(duckdb_libpgquery::
|
135
|
+
unique_ptr<SQLStatement> TransformDrop(duckdb_libpgquery::PGDropStmt &stmt);
|
134
136
|
//! Transform a Postgres duckdb_libpgquery::T_PGInsertStmt node into a InsertStatement
|
135
|
-
unique_ptr<InsertStatement> TransformInsert(duckdb_libpgquery::
|
137
|
+
unique_ptr<InsertStatement> TransformInsert(duckdb_libpgquery::PGInsertStmt &stmt);
|
136
138
|
|
137
139
|
//! Transform a Postgres duckdb_libpgquery::T_PGOnConflictClause node into a OnConflictInfo
|
138
140
|
unique_ptr<OnConflictInfo> TransformOnConflictClause(duckdb_libpgquery::PGOnConflictClause *node,
|
@@ -141,99 +143,100 @@ private:
|
|
141
143
|
unique_ptr<OnConflictInfo> DummyOnConflictClause(duckdb_libpgquery::PGOnConflictActionAlias type,
|
142
144
|
const string &relname);
|
143
145
|
//! Transform a Postgres duckdb_libpgquery::T_PGCopyStmt node into a CopyStatement
|
144
|
-
unique_ptr<CopyStatement> TransformCopy(duckdb_libpgquery::
|
145
|
-
void TransformCopyOptions(CopyInfo &info, duckdb_libpgquery::PGList
|
146
|
+
unique_ptr<CopyStatement> TransformCopy(duckdb_libpgquery::PGCopyStmt &stmt);
|
147
|
+
void TransformCopyOptions(CopyInfo &info, optional_ptr<duckdb_libpgquery::PGList> options);
|
146
148
|
//! Transform a Postgres duckdb_libpgquery::T_PGTransactionStmt node into a TransactionStatement
|
147
|
-
unique_ptr<TransactionStatement> TransformTransaction(duckdb_libpgquery::
|
149
|
+
unique_ptr<TransactionStatement> TransformTransaction(duckdb_libpgquery::PGTransactionStmt &stmt);
|
148
150
|
//! Transform a Postgres T_DeleteStatement node into a DeleteStatement
|
149
|
-
unique_ptr<DeleteStatement> TransformDelete(duckdb_libpgquery::
|
151
|
+
unique_ptr<DeleteStatement> TransformDelete(duckdb_libpgquery::PGDeleteStmt &stmt);
|
150
152
|
//! Transform a Postgres duckdb_libpgquery::T_PGUpdateStmt node into a UpdateStatement
|
151
|
-
unique_ptr<UpdateStatement> TransformUpdate(duckdb_libpgquery::
|
153
|
+
unique_ptr<UpdateStatement> TransformUpdate(duckdb_libpgquery::PGUpdateStmt &stmt);
|
152
154
|
//! Transform a Postgres duckdb_libpgquery::T_PGPragmaStmt node into a PragmaStatement
|
153
|
-
unique_ptr<SQLStatement> TransformPragma(duckdb_libpgquery::
|
155
|
+
unique_ptr<SQLStatement> TransformPragma(duckdb_libpgquery::PGPragmaStmt &stmt);
|
154
156
|
//! Transform a Postgres duckdb_libpgquery::T_PGExportStmt node into a ExportStatement
|
155
|
-
unique_ptr<ExportStatement> TransformExport(duckdb_libpgquery::
|
157
|
+
unique_ptr<ExportStatement> TransformExport(duckdb_libpgquery::PGExportStmt &stmt);
|
156
158
|
//! Transform a Postgres duckdb_libpgquery::T_PGImportStmt node into a PragmaStatement
|
157
|
-
unique_ptr<PragmaStatement> TransformImport(duckdb_libpgquery::
|
158
|
-
unique_ptr<ExplainStatement> TransformExplain(duckdb_libpgquery::
|
159
|
-
unique_ptr<SQLStatement> TransformVacuum(duckdb_libpgquery::
|
160
|
-
unique_ptr<SQLStatement> TransformShow(duckdb_libpgquery::
|
161
|
-
unique_ptr<ShowStatement> TransformShowSelect(duckdb_libpgquery::
|
162
|
-
unique_ptr<AttachStatement> TransformAttach(duckdb_libpgquery::
|
163
|
-
unique_ptr<DetachStatement> TransformDetach(duckdb_libpgquery::
|
164
|
-
unique_ptr<SetStatement> TransformUse(duckdb_libpgquery::
|
165
|
-
|
166
|
-
unique_ptr<PrepareStatement> TransformPrepare(duckdb_libpgquery::
|
167
|
-
unique_ptr<ExecuteStatement> TransformExecute(duckdb_libpgquery::
|
168
|
-
unique_ptr<CallStatement> TransformCall(duckdb_libpgquery::
|
169
|
-
unique_ptr<DropStatement> TransformDeallocate(duckdb_libpgquery::
|
170
|
-
unique_ptr<QueryNode> TransformPivotStatement(duckdb_libpgquery::PGSelectStmt
|
159
|
+
unique_ptr<PragmaStatement> TransformImport(duckdb_libpgquery::PGImportStmt &stmt);
|
160
|
+
unique_ptr<ExplainStatement> TransformExplain(duckdb_libpgquery::PGExplainStmt &stmt);
|
161
|
+
unique_ptr<SQLStatement> TransformVacuum(duckdb_libpgquery::PGVacuumStmt &stmt);
|
162
|
+
unique_ptr<SQLStatement> TransformShow(duckdb_libpgquery::PGVariableShowStmt &stmt);
|
163
|
+
unique_ptr<ShowStatement> TransformShowSelect(duckdb_libpgquery::PGVariableShowSelectStmt &stmt);
|
164
|
+
unique_ptr<AttachStatement> TransformAttach(duckdb_libpgquery::PGAttachStmt &stmt);
|
165
|
+
unique_ptr<DetachStatement> TransformDetach(duckdb_libpgquery::PGDetachStmt &stmt);
|
166
|
+
unique_ptr<SetStatement> TransformUse(duckdb_libpgquery::PGUseStmt &stmt);
|
167
|
+
|
168
|
+
unique_ptr<PrepareStatement> TransformPrepare(duckdb_libpgquery::PGPrepareStmt &stmt);
|
169
|
+
unique_ptr<ExecuteStatement> TransformExecute(duckdb_libpgquery::PGExecuteStmt &stmt);
|
170
|
+
unique_ptr<CallStatement> TransformCall(duckdb_libpgquery::PGCallStmt &stmt);
|
171
|
+
unique_ptr<DropStatement> TransformDeallocate(duckdb_libpgquery::PGDeallocateStmt &stmt);
|
172
|
+
unique_ptr<QueryNode> TransformPivotStatement(duckdb_libpgquery::PGSelectStmt &select);
|
171
173
|
unique_ptr<SQLStatement> CreatePivotStatement(unique_ptr<SQLStatement> statement);
|
172
|
-
PivotColumn TransformPivotColumn(duckdb_libpgquery::PGPivot
|
173
|
-
vector<PivotColumn> TransformPivotList(duckdb_libpgquery::PGList
|
174
|
+
PivotColumn TransformPivotColumn(duckdb_libpgquery::PGPivot &pivot);
|
175
|
+
vector<PivotColumn> TransformPivotList(duckdb_libpgquery::PGList &list);
|
174
176
|
|
175
177
|
//===--------------------------------------------------------------------===//
|
176
178
|
// SetStatement Transform
|
177
179
|
//===--------------------------------------------------------------------===//
|
178
|
-
unique_ptr<SetStatement> TransformSet(duckdb_libpgquery::
|
179
|
-
unique_ptr<SetStatement> TransformSetVariable(duckdb_libpgquery::PGVariableSetStmt
|
180
|
-
unique_ptr<SetStatement> TransformResetVariable(duckdb_libpgquery::PGVariableSetStmt
|
180
|
+
unique_ptr<SetStatement> TransformSet(duckdb_libpgquery::PGVariableSetStmt &set);
|
181
|
+
unique_ptr<SetStatement> TransformSetVariable(duckdb_libpgquery::PGVariableSetStmt &stmt);
|
182
|
+
unique_ptr<SetStatement> TransformResetVariable(duckdb_libpgquery::PGVariableSetStmt &stmt);
|
181
183
|
|
182
|
-
unique_ptr<SQLStatement> TransformCheckpoint(duckdb_libpgquery::
|
183
|
-
unique_ptr<LoadStatement> TransformLoad(duckdb_libpgquery::
|
184
|
+
unique_ptr<SQLStatement> TransformCheckpoint(duckdb_libpgquery::PGCheckPointStmt &stmt);
|
185
|
+
unique_ptr<LoadStatement> TransformLoad(duckdb_libpgquery::PGLoadStmt &stmt);
|
184
186
|
|
185
187
|
//===--------------------------------------------------------------------===//
|
186
188
|
// Query Node Transform
|
187
189
|
//===--------------------------------------------------------------------===//
|
188
190
|
//! Transform a Postgres duckdb_libpgquery::T_PGSelectStmt node into a QueryNode
|
189
|
-
unique_ptr<QueryNode> TransformSelectNode(duckdb_libpgquery::PGSelectStmt
|
190
|
-
unique_ptr<QueryNode> TransformSelectInternal(duckdb_libpgquery::PGSelectStmt
|
191
|
+
unique_ptr<QueryNode> TransformSelectNode(duckdb_libpgquery::PGSelectStmt &select);
|
192
|
+
unique_ptr<QueryNode> TransformSelectInternal(duckdb_libpgquery::PGSelectStmt &select);
|
191
193
|
void TransformModifiers(duckdb_libpgquery::PGSelectStmt &stmt, QueryNode &node);
|
192
194
|
|
193
195
|
//===--------------------------------------------------------------------===//
|
194
196
|
// Expression Transform
|
195
197
|
//===--------------------------------------------------------------------===//
|
196
198
|
//! Transform a Postgres boolean expression into an Expression
|
197
|
-
unique_ptr<ParsedExpression> TransformBoolExpr(duckdb_libpgquery::PGBoolExpr
|
199
|
+
unique_ptr<ParsedExpression> TransformBoolExpr(duckdb_libpgquery::PGBoolExpr &root);
|
198
200
|
//! Transform a Postgres case expression into an Expression
|
199
|
-
unique_ptr<ParsedExpression> TransformCase(duckdb_libpgquery::PGCaseExpr
|
201
|
+
unique_ptr<ParsedExpression> TransformCase(duckdb_libpgquery::PGCaseExpr &root);
|
200
202
|
//! Transform a Postgres type cast into an Expression
|
201
|
-
unique_ptr<ParsedExpression> TransformTypeCast(duckdb_libpgquery::PGTypeCast
|
203
|
+
unique_ptr<ParsedExpression> TransformTypeCast(duckdb_libpgquery::PGTypeCast &root);
|
202
204
|
//! Transform a Postgres coalesce into an Expression
|
203
|
-
unique_ptr<ParsedExpression> TransformCoalesce(duckdb_libpgquery::PGAExpr
|
205
|
+
unique_ptr<ParsedExpression> TransformCoalesce(duckdb_libpgquery::PGAExpr &root);
|
204
206
|
//! Transform a Postgres column reference into an Expression
|
205
|
-
unique_ptr<ParsedExpression> TransformColumnRef(duckdb_libpgquery::PGColumnRef
|
207
|
+
unique_ptr<ParsedExpression> TransformColumnRef(duckdb_libpgquery::PGColumnRef &root);
|
206
208
|
//! Transform a Postgres constant value into an Expression
|
207
209
|
unique_ptr<ConstantExpression> TransformValue(duckdb_libpgquery::PGValue val);
|
208
210
|
//! Transform a Postgres operator into an Expression
|
209
|
-
unique_ptr<ParsedExpression> TransformAExpr(duckdb_libpgquery::PGAExpr
|
210
|
-
unique_ptr<ParsedExpression> TransformAExprInternal(duckdb_libpgquery::PGAExpr
|
211
|
+
unique_ptr<ParsedExpression> TransformAExpr(duckdb_libpgquery::PGAExpr &root);
|
212
|
+
unique_ptr<ParsedExpression> TransformAExprInternal(duckdb_libpgquery::PGAExpr &root);
|
211
213
|
//! Transform a Postgres abstract expression into an Expression
|
212
|
-
unique_ptr<ParsedExpression> TransformExpression(duckdb_libpgquery::PGNode
|
214
|
+
unique_ptr<ParsedExpression> TransformExpression(optional_ptr<duckdb_libpgquery::PGNode> node);
|
215
|
+
unique_ptr<ParsedExpression> TransformExpression(duckdb_libpgquery::PGNode &node);
|
213
216
|
//! Transform a Postgres function call into an Expression
|
214
|
-
unique_ptr<ParsedExpression> TransformFuncCall(duckdb_libpgquery::PGFuncCall
|
217
|
+
unique_ptr<ParsedExpression> TransformFuncCall(duckdb_libpgquery::PGFuncCall &root);
|
215
218
|
//! Transform a Postgres boolean expression into an Expression
|
216
|
-
unique_ptr<ParsedExpression> TransformInterval(duckdb_libpgquery::PGIntervalConstant
|
219
|
+
unique_ptr<ParsedExpression> TransformInterval(duckdb_libpgquery::PGIntervalConstant &root);
|
217
220
|
//! Transform a Postgres lambda node [e.g. (x, y) -> x + y] into a lambda expression
|
218
|
-
unique_ptr<ParsedExpression> TransformLambda(duckdb_libpgquery::PGLambdaFunction
|
221
|
+
unique_ptr<ParsedExpression> TransformLambda(duckdb_libpgquery::PGLambdaFunction &node);
|
219
222
|
//! Transform a Postgres array access node (e.g. x[1] or x[1:3])
|
220
|
-
unique_ptr<ParsedExpression> TransformArrayAccess(duckdb_libpgquery::PGAIndirection
|
223
|
+
unique_ptr<ParsedExpression> TransformArrayAccess(duckdb_libpgquery::PGAIndirection &node);
|
221
224
|
//! Transform a positional reference (e.g. #1)
|
222
|
-
unique_ptr<ParsedExpression> TransformPositionalReference(duckdb_libpgquery::PGPositionalReference
|
223
|
-
unique_ptr<ParsedExpression> TransformStarExpression(duckdb_libpgquery::
|
224
|
-
unique_ptr<ParsedExpression> TransformBooleanTest(duckdb_libpgquery::PGBooleanTest
|
225
|
+
unique_ptr<ParsedExpression> TransformPositionalReference(duckdb_libpgquery::PGPositionalReference &node);
|
226
|
+
unique_ptr<ParsedExpression> TransformStarExpression(duckdb_libpgquery::PGAStar &node);
|
227
|
+
unique_ptr<ParsedExpression> TransformBooleanTest(duckdb_libpgquery::PGBooleanTest &node);
|
225
228
|
|
226
229
|
//! Transform a Postgres constant value into an Expression
|
227
|
-
unique_ptr<ParsedExpression> TransformConstant(duckdb_libpgquery::PGAConst
|
228
|
-
unique_ptr<ParsedExpression> TransformGroupingFunction(duckdb_libpgquery::PGGroupingFunc
|
229
|
-
unique_ptr<ParsedExpression> TransformResTarget(duckdb_libpgquery::PGResTarget
|
230
|
-
unique_ptr<ParsedExpression> TransformNullTest(duckdb_libpgquery::PGNullTest
|
231
|
-
unique_ptr<ParsedExpression> TransformParamRef(duckdb_libpgquery::PGParamRef
|
232
|
-
unique_ptr<ParsedExpression> TransformNamedArg(duckdb_libpgquery::PGNamedArgExpr
|
230
|
+
unique_ptr<ParsedExpression> TransformConstant(duckdb_libpgquery::PGAConst &c);
|
231
|
+
unique_ptr<ParsedExpression> TransformGroupingFunction(duckdb_libpgquery::PGGroupingFunc &n);
|
232
|
+
unique_ptr<ParsedExpression> TransformResTarget(duckdb_libpgquery::PGResTarget &root);
|
233
|
+
unique_ptr<ParsedExpression> TransformNullTest(duckdb_libpgquery::PGNullTest &root);
|
234
|
+
unique_ptr<ParsedExpression> TransformParamRef(duckdb_libpgquery::PGParamRef &node);
|
235
|
+
unique_ptr<ParsedExpression> TransformNamedArg(duckdb_libpgquery::PGNamedArgExpr &root);
|
233
236
|
|
234
|
-
unique_ptr<ParsedExpression> TransformSQLValueFunction(duckdb_libpgquery::PGSQLValueFunction
|
237
|
+
unique_ptr<ParsedExpression> TransformSQLValueFunction(duckdb_libpgquery::PGSQLValueFunction &node);
|
235
238
|
|
236
|
-
unique_ptr<ParsedExpression> TransformSubquery(duckdb_libpgquery::PGSubLink
|
239
|
+
unique_ptr<ParsedExpression> TransformSubquery(duckdb_libpgquery::PGSubLink &root);
|
237
240
|
//===--------------------------------------------------------------------===//
|
238
241
|
// Constraints transform
|
239
242
|
//===--------------------------------------------------------------------===//
|
@@ -251,25 +254,25 @@ private:
|
|
251
254
|
//===--------------------------------------------------------------------===//
|
252
255
|
// Index transform
|
253
256
|
//===--------------------------------------------------------------------===//
|
254
|
-
vector<unique_ptr<ParsedExpression>> TransformIndexParameters(duckdb_libpgquery::PGList
|
257
|
+
vector<unique_ptr<ParsedExpression>> TransformIndexParameters(duckdb_libpgquery::PGList &list,
|
255
258
|
const string &relation_name);
|
256
259
|
|
257
260
|
//===--------------------------------------------------------------------===//
|
258
261
|
// Collation transform
|
259
262
|
//===--------------------------------------------------------------------===//
|
260
|
-
unique_ptr<ParsedExpression> TransformCollateExpr(duckdb_libpgquery::PGCollateClause
|
263
|
+
unique_ptr<ParsedExpression> TransformCollateExpr(duckdb_libpgquery::PGCollateClause &collate);
|
261
264
|
|
262
|
-
string TransformCollation(duckdb_libpgquery::PGCollateClause
|
265
|
+
string TransformCollation(optional_ptr<duckdb_libpgquery::PGCollateClause> collate);
|
263
266
|
|
264
|
-
ColumnDefinition TransformColumnDefinition(duckdb_libpgquery::PGColumnDef
|
267
|
+
ColumnDefinition TransformColumnDefinition(duckdb_libpgquery::PGColumnDef &cdef);
|
265
268
|
//===--------------------------------------------------------------------===//
|
266
269
|
// Helpers
|
267
270
|
//===--------------------------------------------------------------------===//
|
268
271
|
OnCreateConflict TransformOnConflict(duckdb_libpgquery::PGOnCreateConflict conflict);
|
269
272
|
string TransformAlias(duckdb_libpgquery::PGAlias *root, vector<string> &column_name_alias);
|
270
273
|
vector<string> TransformStringList(duckdb_libpgquery::PGList *list);
|
271
|
-
void TransformCTE(duckdb_libpgquery::PGWithClause
|
272
|
-
unique_ptr<SelectStatement> TransformRecursiveCTE(duckdb_libpgquery::PGCommonTableExpr
|
274
|
+
void TransformCTE(duckdb_libpgquery::PGWithClause &de_with_clause, CommonTableExpressionMap &cte_map);
|
275
|
+
unique_ptr<SelectStatement> TransformRecursiveCTE(duckdb_libpgquery::PGCommonTableExpr &cte,
|
273
276
|
CommonTableExpressionInfo &info);
|
274
277
|
|
275
278
|
unique_ptr<ParsedExpression> TransformUnaryOperator(const string &op, unique_ptr<ParsedExpression> child);
|
@@ -279,35 +282,35 @@ private:
|
|
279
282
|
// TableRef transform
|
280
283
|
//===--------------------------------------------------------------------===//
|
281
284
|
//! Transform a Postgres node into a TableRef
|
282
|
-
unique_ptr<TableRef> TransformTableRefNode(duckdb_libpgquery::PGNode
|
285
|
+
unique_ptr<TableRef> TransformTableRefNode(duckdb_libpgquery::PGNode &n);
|
283
286
|
//! Transform a Postgres FROM clause into a TableRef
|
284
|
-
unique_ptr<TableRef> TransformFrom(duckdb_libpgquery::PGList
|
287
|
+
unique_ptr<TableRef> TransformFrom(optional_ptr<duckdb_libpgquery::PGList> root);
|
285
288
|
//! Transform a Postgres table reference into a TableRef
|
286
|
-
unique_ptr<TableRef> TransformRangeVar(duckdb_libpgquery::PGRangeVar
|
289
|
+
unique_ptr<TableRef> TransformRangeVar(duckdb_libpgquery::PGRangeVar &root);
|
287
290
|
//! Transform a Postgres table-producing function into a TableRef
|
288
|
-
unique_ptr<TableRef> TransformRangeFunction(duckdb_libpgquery::PGRangeFunction
|
291
|
+
unique_ptr<TableRef> TransformRangeFunction(duckdb_libpgquery::PGRangeFunction &root);
|
289
292
|
//! Transform a Postgres join node into a TableRef
|
290
|
-
unique_ptr<TableRef> TransformJoin(duckdb_libpgquery::PGJoinExpr
|
293
|
+
unique_ptr<TableRef> TransformJoin(duckdb_libpgquery::PGJoinExpr &root);
|
291
294
|
//! Transform a Postgres pivot node into a TableRef
|
292
|
-
unique_ptr<TableRef> TransformPivot(duckdb_libpgquery::PGPivotExpr
|
295
|
+
unique_ptr<TableRef> TransformPivot(duckdb_libpgquery::PGPivotExpr &root);
|
293
296
|
//! Transform a table producing subquery into a TableRef
|
294
|
-
unique_ptr<TableRef> TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect
|
297
|
+
unique_ptr<TableRef> TransformRangeSubselect(duckdb_libpgquery::PGRangeSubselect &root);
|
295
298
|
//! Transform a VALUES list into a set of expressions
|
296
299
|
unique_ptr<TableRef> TransformValuesList(duckdb_libpgquery::PGList *list);
|
297
300
|
|
298
301
|
//! Transform a range var into a (schema) qualified name
|
299
|
-
QualifiedName TransformQualifiedName(duckdb_libpgquery::PGRangeVar
|
302
|
+
QualifiedName TransformQualifiedName(duckdb_libpgquery::PGRangeVar &root);
|
300
303
|
|
301
304
|
//! Transform a Postgres TypeName string into a LogicalType
|
302
|
-
LogicalType TransformTypeName(duckdb_libpgquery::PGTypeName
|
305
|
+
LogicalType TransformTypeName(duckdb_libpgquery::PGTypeName &name);
|
303
306
|
|
304
307
|
//! Transform a Postgres GROUP BY expression into a list of Expression
|
305
|
-
bool TransformGroupBy(duckdb_libpgquery::PGList
|
306
|
-
void TransformGroupByNode(duckdb_libpgquery::PGNode
|
308
|
+
bool TransformGroupBy(optional_ptr<duckdb_libpgquery::PGList> group, SelectNode &result);
|
309
|
+
void TransformGroupByNode(duckdb_libpgquery::PGNode &n, GroupingExpressionMap &map, SelectNode &result,
|
307
310
|
vector<GroupingSet> &result_sets);
|
308
311
|
void AddGroupByExpression(unique_ptr<ParsedExpression> expression, GroupingExpressionMap &map, GroupByNode &result,
|
309
312
|
vector<idx_t> &result_set);
|
310
|
-
void TransformGroupByExpression(duckdb_libpgquery::PGNode
|
313
|
+
void TransformGroupByExpression(duckdb_libpgquery::PGNode &n, GroupingExpressionMap &map, GroupByNode &result,
|
311
314
|
vector<idx_t> &result_set);
|
312
315
|
//! Transform a Postgres ORDER BY expression into an OrderByDescription
|
313
316
|
bool TransformOrderBy(duckdb_libpgquery::PGList *order, vector<OrderByNode> &result);
|
@@ -316,23 +319,36 @@ private:
|
|
316
319
|
void TransformExpressionList(duckdb_libpgquery::PGList &list, vector<unique_ptr<ParsedExpression>> &result);
|
317
320
|
|
318
321
|
//! Transform a Postgres PARTITION BY/ORDER BY specification into lists of expressions
|
319
|
-
void TransformWindowDef(duckdb_libpgquery::PGWindowDef
|
322
|
+
void TransformWindowDef(duckdb_libpgquery::PGWindowDef &window_spec, WindowExpression &expr,
|
320
323
|
const char *window_name = nullptr);
|
321
324
|
//! Transform a Postgres window frame specification into frame expressions
|
322
|
-
void TransformWindowFrame(duckdb_libpgquery::PGWindowDef
|
325
|
+
void TransformWindowFrame(duckdb_libpgquery::PGWindowDef &window_spec, WindowExpression &expr);
|
323
326
|
|
324
|
-
unique_ptr<SampleOptions> TransformSampleOptions(duckdb_libpgquery::PGNode
|
327
|
+
unique_ptr<SampleOptions> TransformSampleOptions(optional_ptr<duckdb_libpgquery::PGNode> options);
|
325
328
|
//! Returns true if an expression is only a star (i.e. "*", without any other decorators)
|
326
329
|
bool ExpressionIsEmptyStar(ParsedExpression &expr);
|
327
330
|
|
328
331
|
OnEntryNotFound TransformOnEntryNotFound(bool missing_ok);
|
329
332
|
|
333
|
+
Vector PGListToVector(optional_ptr<duckdb_libpgquery::PGList> column_list, idx_t &size);
|
334
|
+
vector<string> TransformConflictTarget(duckdb_libpgquery::PGList &list);
|
335
|
+
|
330
336
|
private:
|
331
337
|
//! Current stack depth
|
332
338
|
idx_t stack_depth;
|
333
339
|
|
334
340
|
void InitializeStackCheck();
|
335
341
|
StackChecker StackCheck(idx_t extra_stack = 1);
|
342
|
+
|
343
|
+
public:
|
344
|
+
template <class T>
|
345
|
+
static T &PGCast(duckdb_libpgquery::PGNode &node) {
|
346
|
+
return reinterpret_cast<T &>(node);
|
347
|
+
}
|
348
|
+
template <class T>
|
349
|
+
static optional_ptr<T> PGPointerCast(void *ptr) {
|
350
|
+
return optional_ptr<T>(reinterpret_cast<T *>(ptr));
|
351
|
+
}
|
336
352
|
};
|
337
353
|
|
338
354
|
class StackChecker {
|
@@ -96,7 +96,7 @@ public:
|
|
96
96
|
void AddSubquery(idx_t index, const string &alias, TableFunctionRef &ref, BoundQueryNode &subquery);
|
97
97
|
//! Adds a binding to a catalog entry with a given alias to the BindContext.
|
98
98
|
void AddEntryBinding(idx_t index, const string &alias, const vector<string> &names,
|
99
|
-
const vector<LogicalType> &types, StandardEntry
|
99
|
+
const vector<LogicalType> &types, StandardEntry &entry);
|
100
100
|
//! Adds a base table with the given alias to the BindContext.
|
101
101
|
void AddGenericBinding(idx_t index, const string &alias, const vector<string> &names,
|
102
102
|
const vector<LogicalType> &types);
|
@@ -37,7 +37,7 @@ public:
|
|
37
37
|
if (type != TARGET::TYPE) {
|
38
38
|
throw InternalException("Failed to cast constraint to type - bound constraint type mismatch");
|
39
39
|
}
|
40
|
-
return
|
40
|
+
return reinterpret_cast<TARGET &>(*this);
|
41
41
|
}
|
42
42
|
|
43
43
|
template <class TARGET>
|
@@ -45,7 +45,7 @@ public:
|
|
45
45
|
if (type != TARGET::TYPE) {
|
46
46
|
throw InternalException("Failed to cast constraint to type - bound constraint type mismatch");
|
47
47
|
}
|
48
|
-
return
|
48
|
+
return reinterpret_cast<const TARGET &>(*this);
|
49
49
|
}
|
50
50
|
};
|
51
51
|
} // namespace duckdb
|