duckdb 0.7.2-dev1457.0 → 0.7.2-dev1533.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +8 -8
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-dateadd.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datepart.cpp +3 -3
- package/src/duckdb/extension/icu/icu-datesub.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datetrunc.cpp +1 -1
- package/src/duckdb/extension/icu/icu-extension.cpp +3 -3
- package/src/duckdb/extension/icu/icu-list-range.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +1 -1
- package/src/duckdb/extension/icu/icu-strptime.cpp +7 -7
- package/src/duckdb/extension/icu/icu-timebucket.cpp +6 -6
- package/src/duckdb/extension/icu/icu-timezone.cpp +4 -4
- package/src/duckdb/extension/json/include/json_executors.hpp +2 -2
- package/src/duckdb/extension/json/json_functions/copy_json.cpp +4 -4
- package/src/duckdb/extension/json/json_functions/json_create.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +3 -3
- package/src/duckdb/extension/json/json_functions.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet-extension.cpp +28 -28
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +9 -9
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +17 -17
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +5 -5
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_set.cpp +28 -28
- package/src/duckdb/src/catalog/default/default_functions.cpp +2 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +4 -4
- package/src/duckdb/src/common/enums/logical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/enums/physical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/multi_file_reader.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_aggregate.cpp +3 -0
- package/src/duckdb/src/common/string_util.cpp +24 -2
- package/src/duckdb/src/common/tree_renderer.cpp +2 -4
- package/src/duckdb/src/common/types.cpp +3 -1
- package/src/duckdb/src/execution/column_binding_resolver.cpp +5 -5
- package/src/duckdb/src/execution/expression_executor.cpp +4 -3
- package/src/duckdb/src/execution/expression_executor_state.cpp +1 -1
- package/src/duckdb/src/execution/index/art/art.cpp +6 -8
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +7 -7
- package/src/duckdb/src/execution/operator/aggregate/grouped_aggregate_data.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +33 -33
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +13 -13
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +3 -3
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +20 -20
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +12 -12
- package/src/duckdb/src/execution/operator/helper/physical_batch_collector.cpp +5 -5
- package/src/duckdb/src/execution/operator/helper/physical_explain_analyze.cpp +2 -2
- package/src/duckdb/src/execution/operator/helper/physical_limit.cpp +5 -5
- package/src/duckdb/src/execution/operator/helper/physical_limit_percent.cpp +4 -4
- package/src/duckdb/src/execution/operator/helper/physical_materialized_collector.cpp +4 -4
- package/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp +2 -2
- package/src/duckdb/src/execution/operator/helper/physical_streaming_limit.cpp +2 -2
- package/src/duckdb/src/execution/operator/helper/physical_streaming_sample.cpp +2 -2
- package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +8 -8
- package/src/duckdb/src/execution/operator/join/physical_cross_product.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_delim_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +12 -12
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +12 -12
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +6 -5
- package/src/duckdb/src/execution/operator/join/physical_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +13 -13
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +10 -10
- package/src/duckdb/src/execution/operator/join/physical_positional_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/order/physical_order.cpp +11 -11
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +6 -6
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +7 -7
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +8 -8
- package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +5 -5
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +8 -8
- package/src/duckdb/src/execution/operator/persistent/physical_update.cpp +7 -7
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +81 -0
- package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +5 -5
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +4 -5
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +4 -4
- package/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +7 -7
- package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_function.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +8 -7
- package/src/duckdb/src/execution/operator/schema/physical_create_schema.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_sequence.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +3 -3
- package/src/duckdb/src/execution/operator/schema/physical_create_view.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_detach.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +1 -1
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +2 -2
- package/src/duckdb/src/execution/physical_operator.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +4 -4
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_delim_join.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_distinct.cpp +4 -1
- package/src/duckdb/src/execution/physical_plan/plan_pivot.cpp +14 -0
- package/src/duckdb/src/execution/physical_plan/plan_projection.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_window.cpp +8 -8
- package/src/duckdb/src/execution/physical_plan_generator.cpp +49 -42
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +14 -14
- package/src/duckdb/src/function/aggregate/algebraic/avg.cpp +2 -2
- package/src/duckdb/src/function/aggregate/distributive/bitstring_agg.cpp +1 -1
- package/src/duckdb/src/function/aggregate/distributive/string_agg.cpp +2 -2
- package/src/duckdb/src/function/aggregate/holistic/approximate_quantile.cpp +1 -1
- package/src/duckdb/src/function/aggregate/holistic/quantile.cpp +1 -1
- package/src/duckdb/src/function/aggregate/holistic/reservoir_quantile.cpp +1 -1
- package/src/duckdb/src/function/aggregate/nested/list.cpp +3 -3
- package/src/duckdb/src/function/cast/enum_casts.cpp +3 -3
- package/src/duckdb/src/function/cast/list_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/string_cast.cpp +6 -6
- package/src/duckdb/src/function/cast/struct_cast.cpp +4 -4
- package/src/duckdb/src/function/cast/union_casts.cpp +6 -6
- package/src/duckdb/src/function/function.cpp +4 -4
- package/src/duckdb/src/function/function_binder.cpp +2 -1
- package/src/duckdb/src/function/macro_function.cpp +3 -3
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -1
- package/src/duckdb/src/function/pragma_function.cpp +1 -1
- package/src/duckdb/src/function/scalar/date/date_part.cpp +1 -1
- package/src/duckdb/src/function/scalar/date/strftime.cpp +6 -6
- package/src/duckdb/src/function/scalar/generic/alias.cpp +1 -1
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +3 -3
- package/src/duckdb/src/function/scalar/generic/current_setting.cpp +2 -2
- package/src/duckdb/src/function/scalar/generic/stats.cpp +3 -3
- package/src/duckdb/src/function/scalar/list/list_aggregates.cpp +5 -5
- package/src/duckdb/src/function/scalar/list/list_lambdas.cpp +3 -3
- package/src/duckdb/src/function/scalar/list/list_sort.cpp +3 -3
- package/src/duckdb/src/function/scalar/math/numeric.cpp +3 -3
- package/src/duckdb/src/function/scalar/math/random.cpp +2 -2
- package/src/duckdb/src/function/scalar/math/setseed.cpp +2 -2
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -2
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/like.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/regexp.cpp +11 -11
- package/src/duckdb/src/function/scalar/string/string_split.cpp +3 -3
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +3 -3
- package/src/duckdb/src/function/scalar/struct/struct_pack.cpp +2 -2
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +2 -2
- package/src/duckdb/src/function/scalar/union/union_extract.cpp +2 -2
- package/src/duckdb/src/function/scalar_macro_function.cpp +3 -3
- package/src/duckdb/src/function/table/arrow.cpp +5 -5
- package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_detailed_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/range.cpp +5 -5
- package/src/duckdb/src/function/table/read_csv.cpp +10 -10
- package/src/duckdb/src/function/table/repeat.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +12 -12
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_views.cpp +1 -1
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +1 -1
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +3 -3
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
- package/src/duckdb/src/function/table/table_scan.cpp +31 -31
- package/src/duckdb/src/function/table/unnest.cpp +4 -4
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/function/table_macro_function.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +13 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +4 -4
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +3 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +14 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/case_insensitive_map.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_perfecthash_aggregate.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_streaming_window.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/filter/physical_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_execute.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit_percent.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_load.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_pragma.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_prepare.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reset.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_streaming_limit.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_streaming_sample.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_transaction.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_vacuum.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_blockwise_nl_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_cross_product.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_delim_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_index_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_nested_loop_join.hpp +3 -4
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_piecewise_merge_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_positional_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_delete.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_update.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_pivot.hpp +38 -0
- package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_projection.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp +4 -2
- package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_unnest.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_dummy_scan.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_empty_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_expression_scan.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_alter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_attach.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_function.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_index.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_schema.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_sequence.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_table.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_type.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_view.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_detach.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_drop.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_union.hpp +4 -0
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +18 -57
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +150 -0
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +11 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +22 -0
- package/src/duckdb/src/include/duckdb/function/function.hpp +20 -4
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/pragma_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +11 -0
- package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +22 -0
- package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/settings.hpp +10 -0
- package/src/duckdb/src/include/duckdb/optimizer/rule/like_optimizations.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +18 -0
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +18 -0
- package/src/duckdb/src/include/duckdb/parser/constraints/check_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/constraints/foreign_key_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/constraints/not_null_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/list.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/recursive_cte_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/select_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +18 -0
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +18 -0
- package/src/duckdb/src/include/duckdb/parser/statement/alter_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/attach_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/call_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/copy_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/create_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/delete_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/detach_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/drop_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/execute_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/explain_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/export_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/extension_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/insert_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/load_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/logical_plan_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/multi_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/pragma_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/prepare_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/relation_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/set_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/show_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/transaction_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/update_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/vacuum_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +14 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +18 -0
- package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/bound_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/constraints/bound_check_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/constraints/bound_foreign_key_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/constraints/bound_not_null_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +4 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_asof_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_table.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cross_product.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +12 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_empty_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_limit.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +36 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_positional_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_projection.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +9 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_sample.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_simple.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_unconditional_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_unnest.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_window.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_recursive_cte_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_select_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_set_operation_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/query_node/list.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_basetableref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_cteref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_dummytableref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_expressionlistref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_joinref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +43 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pos_join_ref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_subqueryref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_table_function.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/index.hpp +15 -2
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +17 -17
- package/src/duckdb/src/include/duckdb/transaction/commit_state.hpp +1 -1
- package/src/duckdb/src/main/capi/table_function-c.cpp +9 -9
- package/src/duckdb/src/main/client_context.cpp +1 -1
- package/src/duckdb/src/main/config.cpp +1 -0
- package/src/duckdb/src/main/query_profiler.cpp +2 -2
- package/src/duckdb/src/main/relation/aggregate_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/filter_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/projection_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +17 -1
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +3 -3
- package/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp +1 -1
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +1 -1
- package/src/duckdb/src/optimizer/deliminator.cpp +11 -11
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +11 -11
- package/src/duckdb/src/optimizer/expression_rewriter.cpp +1 -1
- package/src/duckdb/src/optimizer/filter_combiner.cpp +40 -38
- package/src/duckdb/src/optimizer/filter_pullup.cpp +2 -2
- package/src/duckdb/src/optimizer/filter_pushdown.cpp +1 -1
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +8 -8
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +24 -24
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +12 -12
- package/src/duckdb/src/optimizer/pullup/pullup_filter.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/pullup/pullup_set_operation.cpp +3 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_aggregate.cpp +3 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_filter.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_get.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +3 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +3 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_limit.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_mark_join.cpp +3 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +4 -4
- package/src/duckdb/src/optimizer/pushdown/pushdown_single_join.cpp +1 -1
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -2
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +13 -9
- package/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp +20 -20
- package/src/duckdb/src/optimizer/rule/case_simplification.cpp +8 -8
- package/src/duckdb/src/optimizer/rule/comparison_simplification.cpp +14 -14
- package/src/duckdb/src/optimizer/rule/conjunction_simplification.cpp +5 -5
- package/src/duckdb/src/optimizer/rule/date_part_simplification.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +16 -16
- package/src/duckdb/src/optimizer/rule/empty_needle_removal.cpp +4 -5
- package/src/duckdb/src/optimizer/rule/enum_comparison.cpp +8 -9
- package/src/duckdb/src/optimizer/rule/in_clause_simplification_rule.cpp +13 -13
- package/src/duckdb/src/optimizer/rule/like_optimizations.cpp +12 -12
- package/src/duckdb/src/optimizer/rule/move_constants.cpp +31 -31
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +4 -4
- package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +10 -10
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +9 -8
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics_propagator.cpp +31 -20
- package/src/duckdb/src/optimizer/topn_optimizer.cpp +2 -2
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +13 -13
- package/src/duckdb/src/parser/column_definition.cpp +3 -3
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +2 -5
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +1 -1
- package/src/duckdb/src/parser/expression/constant_expression.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +1 -1
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +20 -20
- package/src/duckdb/src/parser/parser.cpp +10 -10
- package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +4 -4
- package/src/duckdb/src/parser/query_node/select_node.cpp +10 -10
- package/src/duckdb/src/parser/query_node/set_operation_node.cpp +4 -4
- package/src/duckdb/src/parser/statement/insert_statement.cpp +1 -1
- package/src/duckdb/src/parser/statement/select_statement.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +3 -3
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +2 -42
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +1 -1
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +0 -1
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +5 -2
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +5 -5
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +20 -20
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +3 -3
- package/src/duckdb/src/planner/bind_context.cpp +11 -0
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +47 -4
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +5 -6
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +3 -3
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +8 -8
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +23 -29
- package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +2 -2
- package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +1 -1
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +3 -3
- package/src/duckdb/src/planner/binder/query_node/plan_recursive_cte_node.cpp +2 -3
- package/src/duckdb/src/planner/binder/query_node/plan_select_node.cpp +0 -2
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_call.cpp +3 -2
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +17 -16
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +7 -6
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +3 -2
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_extension.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_set.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -1
- package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +2 -2
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +4 -3
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +303 -78
- package/src/duckdb/src/planner/binder/tableref/bind_subqueryref.cpp +4 -4
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +10 -10
- package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +6 -6
- package/src/duckdb/src/planner/binder/tableref/plan_pivotref.cpp +13 -0
- package/src/duckdb/src/planner/binder.cpp +52 -48
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +8 -8
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +3 -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_function_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +16 -16
- package/src/duckdb/src/planner/expression_binder/alter_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/check_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/constant_binder.cpp +11 -1
- package/src/duckdb/src/planner/expression_binder/group_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/index_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +2 -1
- package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +7 -3
- package/src/duckdb/src/planner/expression_binder.cpp +24 -32
- package/src/duckdb/src/planner/expression_iterator.cpp +17 -17
- package/src/duckdb/src/planner/joinside.cpp +2 -2
- package/src/duckdb/src/planner/logical_operator.cpp +3 -0
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +26 -26
- package/src/duckdb/src/planner/operator/logical_distinct.cpp +3 -1
- package/src/duckdb/src/planner/operator/logical_filter.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_join.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_pivot.cpp +35 -0
- package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +1 -1
- package/src/duckdb/src/planner/pragma_handler.cpp +2 -2
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +25 -23
- package/src/duckdb/src/planner/subquery/rewrite_correlated_expressions.cpp +2 -2
- package/src/duckdb/src/planner/table_binding.cpp +8 -8
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +1 -1
- package/src/duckdb/src/storage/data_table.cpp +2 -1
- package/src/duckdb/src/storage/index.cpp +4 -5
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/table/row_group_collection.cpp +1 -1
- package/src/duckdb/src/storage/write_ahead_log.cpp +42 -42
- package/src/duckdb/src/transaction/commit_state.cpp +35 -35
- package/src/duckdb/src/transaction/duck_transaction.cpp +1 -1
- package/src/duckdb/src/transaction/rollback_state.cpp +1 -1
- package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +773 -793
- package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +1 -11
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +17408 -17751
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
- package/src/duckdb/ub_src_execution_operator_projection.cpp +2 -0
- package/src/duckdb/ub_src_execution_physical_plan.cpp +2 -0
- package/src/duckdb/ub_src_planner_binder_tableref.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +2 -0
@@ -88,6 +88,7 @@ protected:
|
|
88
88
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalUnnest &op);
|
89
89
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalRecursiveCTE &op);
|
90
90
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalCTERef &op);
|
91
|
+
unique_ptr<PhysicalOperator> CreatePlan(LogicalPivot &op);
|
91
92
|
|
92
93
|
unique_ptr<PhysicalOperator> ExtractAggregateExpressions(unique_ptr<PhysicalOperator> child,
|
93
94
|
vector<unique_ptr<Expression>> &expressions,
|
@@ -29,6 +29,17 @@ struct BoundCastData {
|
|
29
29
|
DUCKDB_API virtual ~BoundCastData();
|
30
30
|
|
31
31
|
DUCKDB_API virtual unique_ptr<BoundCastData> Copy() const = 0;
|
32
|
+
|
33
|
+
template <class TARGET>
|
34
|
+
TARGET &Cast() {
|
35
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
36
|
+
return (TARGET &)*this;
|
37
|
+
}
|
38
|
+
template <class TARGET>
|
39
|
+
const TARGET &Cast() const {
|
40
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
41
|
+
return (const TARGET &)*this;
|
42
|
+
}
|
32
43
|
};
|
33
44
|
|
34
45
|
struct CastParameters {
|
@@ -22,11 +22,33 @@ class ExecutionContext;
|
|
22
22
|
struct LocalFunctionData {
|
23
23
|
virtual ~LocalFunctionData() {
|
24
24
|
}
|
25
|
+
|
26
|
+
template <class TARGET>
|
27
|
+
TARGET &Cast() {
|
28
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
29
|
+
return (TARGET &)*this;
|
30
|
+
}
|
31
|
+
template <class TARGET>
|
32
|
+
const TARGET &Cast() const {
|
33
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
34
|
+
return (const TARGET &)*this;
|
35
|
+
}
|
25
36
|
};
|
26
37
|
|
27
38
|
struct GlobalFunctionData {
|
28
39
|
virtual ~GlobalFunctionData() {
|
29
40
|
}
|
41
|
+
|
42
|
+
template <class TARGET>
|
43
|
+
TARGET &Cast() {
|
44
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
45
|
+
return (TARGET &)*this;
|
46
|
+
}
|
47
|
+
template <class TARGET>
|
48
|
+
const TARGET &Cast() const {
|
49
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
50
|
+
return (const TARGET &)*this;
|
51
|
+
}
|
30
52
|
};
|
31
53
|
|
32
54
|
typedef BoundStatement (*copy_to_plan_t)(Binder &binder, CopyStatement &stmt);
|
@@ -45,6 +45,22 @@ struct FunctionData {
|
|
45
45
|
DUCKDB_API virtual unique_ptr<FunctionData> Copy() const = 0;
|
46
46
|
DUCKDB_API virtual bool Equals(const FunctionData &other) const = 0;
|
47
47
|
DUCKDB_API static bool Equals(const FunctionData *left, const FunctionData *right);
|
48
|
+
|
49
|
+
template <class TARGET>
|
50
|
+
TARGET &Cast() {
|
51
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
52
|
+
return (TARGET &)*this;
|
53
|
+
}
|
54
|
+
template <class TARGET>
|
55
|
+
const TARGET &Cast() const {
|
56
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
57
|
+
return (const TARGET &)*this;
|
58
|
+
}
|
59
|
+
// FIXME: this function should be removed in the future
|
60
|
+
template <class TARGET>
|
61
|
+
TARGET &CastNoConst() const {
|
62
|
+
return (TARGET &)*this;
|
63
|
+
}
|
48
64
|
};
|
49
65
|
|
50
66
|
struct TableFunctionData : public FunctionData {
|
@@ -107,7 +123,7 @@ public:
|
|
107
123
|
LogicalType varargs;
|
108
124
|
|
109
125
|
public:
|
110
|
-
DUCKDB_API virtual string ToString();
|
126
|
+
DUCKDB_API virtual string ToString() const;
|
111
127
|
|
112
128
|
DUCKDB_API bool HasVarArgs() const;
|
113
129
|
};
|
@@ -122,8 +138,8 @@ public:
|
|
122
138
|
named_parameter_type_map_t named_parameters;
|
123
139
|
|
124
140
|
public:
|
125
|
-
DUCKDB_API string ToString() override;
|
126
|
-
DUCKDB_API bool HasNamedParameters();
|
141
|
+
DUCKDB_API string ToString() const override;
|
142
|
+
DUCKDB_API bool HasNamedParameters() const;
|
127
143
|
};
|
128
144
|
|
129
145
|
class BaseScalarFunction : public SimpleFunction {
|
@@ -145,7 +161,7 @@ public:
|
|
145
161
|
public:
|
146
162
|
DUCKDB_API hash_t Hash() const;
|
147
163
|
|
148
|
-
DUCKDB_API string ToString() override;
|
164
|
+
DUCKDB_API string ToString() const override;
|
149
165
|
};
|
150
166
|
|
151
167
|
} // namespace duckdb
|
@@ -34,16 +34,16 @@ public:
|
|
34
34
|
virtual ~MacroFunction() {
|
35
35
|
}
|
36
36
|
|
37
|
-
void CopyProperties(MacroFunction &other);
|
37
|
+
void CopyProperties(MacroFunction &other) const;
|
38
38
|
|
39
|
-
virtual unique_ptr<MacroFunction> Copy() = 0;
|
39
|
+
virtual unique_ptr<MacroFunction> Copy() const = 0;
|
40
40
|
|
41
41
|
static string ValidateArguments(MacroFunction ¯o_function, const string &name,
|
42
42
|
FunctionExpression &function_expr,
|
43
43
|
vector<unique_ptr<ParsedExpression>> &positionals,
|
44
44
|
unordered_map<string, unique_ptr<ParsedExpression>> &defaults);
|
45
45
|
|
46
|
-
virtual string ToSQL(const string &schema, const string &name);
|
46
|
+
virtual string ToSQL(const string &schema, const string &name) const;
|
47
47
|
};
|
48
48
|
|
49
49
|
} // namespace duckdb
|
@@ -40,7 +40,7 @@ public:
|
|
40
40
|
DUCKDB_API static PragmaFunction PragmaStatement(const string &name, pragma_query_t query);
|
41
41
|
DUCKDB_API static PragmaFunction PragmaStatement(const string &name, pragma_function_t function);
|
42
42
|
|
43
|
-
DUCKDB_API string ToString() override;
|
43
|
+
DUCKDB_API string ToString() const override;
|
44
44
|
|
45
45
|
public:
|
46
46
|
PragmaType type;
|
@@ -83,7 +83,7 @@ struct VariableReturnBindData : public FunctionData {
|
|
83
83
|
|
84
84
|
static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const ScalarFunction &function) {
|
85
85
|
D_ASSERT(bind_data_p);
|
86
|
-
auto &info = (
|
86
|
+
auto &info = bind_data_p->Cast<VariableReturnBindData>();
|
87
87
|
writer.WriteSerializable(info.stype);
|
88
88
|
}
|
89
89
|
|
@@ -20,6 +20,17 @@ namespace duckdb {
|
|
20
20
|
|
21
21
|
struct FunctionLocalState {
|
22
22
|
DUCKDB_API virtual ~FunctionLocalState();
|
23
|
+
|
24
|
+
template <class TARGET>
|
25
|
+
TARGET &Cast() {
|
26
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
27
|
+
return (TARGET &)*this;
|
28
|
+
}
|
29
|
+
template <class TARGET>
|
30
|
+
const TARGET &Cast() const {
|
31
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
32
|
+
return (const TARGET &)*this;
|
33
|
+
}
|
23
34
|
};
|
24
35
|
|
25
36
|
class Binder;
|
@@ -27,9 +27,9 @@ public:
|
|
27
27
|
unique_ptr<ParsedExpression> expression;
|
28
28
|
|
29
29
|
public:
|
30
|
-
unique_ptr<MacroFunction> Copy() override;
|
30
|
+
unique_ptr<MacroFunction> Copy() const override;
|
31
31
|
|
32
|
-
string ToSQL(const string &schema, const string &name) override;
|
32
|
+
string ToSQL(const string &schema, const string &name) const override;
|
33
33
|
};
|
34
34
|
|
35
35
|
} // namespace duckdb
|
@@ -39,10 +39,32 @@ public:
|
|
39
39
|
DUCKDB_API virtual idx_t MaxThreads() const {
|
40
40
|
return 1;
|
41
41
|
}
|
42
|
+
|
43
|
+
template <class TARGET>
|
44
|
+
TARGET &Cast() {
|
45
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
46
|
+
return (TARGET &)*this;
|
47
|
+
}
|
48
|
+
template <class TARGET>
|
49
|
+
const TARGET &Cast() const {
|
50
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
51
|
+
return (const TARGET &)*this;
|
52
|
+
}
|
42
53
|
};
|
43
54
|
|
44
55
|
struct LocalTableFunctionState {
|
45
56
|
DUCKDB_API virtual ~LocalTableFunctionState();
|
57
|
+
|
58
|
+
template <class TARGET>
|
59
|
+
TARGET &Cast() {
|
60
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
61
|
+
return (TARGET &)*this;
|
62
|
+
}
|
63
|
+
template <class TARGET>
|
64
|
+
const TARGET &Cast() const {
|
65
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
66
|
+
return (const TARGET &)*this;
|
67
|
+
}
|
46
68
|
};
|
47
69
|
|
48
70
|
struct TableFunctionBindInput {
|
@@ -20,16 +20,16 @@ namespace duckdb {
|
|
20
20
|
|
21
21
|
class TableMacroFunction : public MacroFunction {
|
22
22
|
public:
|
23
|
-
TableMacroFunction(unique_ptr<QueryNode> query_node);
|
23
|
+
explicit TableMacroFunction(unique_ptr<QueryNode> query_node);
|
24
24
|
TableMacroFunction(void);
|
25
25
|
|
26
26
|
//! The main query node
|
27
27
|
unique_ptr<QueryNode> query_node;
|
28
28
|
|
29
29
|
public:
|
30
|
-
unique_ptr<MacroFunction> Copy() override;
|
30
|
+
unique_ptr<MacroFunction> Copy() const override;
|
31
31
|
|
32
|
-
string ToSQL(const string &schema, const string &name) override;
|
32
|
+
string ToSQL(const string &schema, const string &name) const override;
|
33
33
|
};
|
34
34
|
|
35
35
|
} // namespace duckdb
|
@@ -87,6 +87,9 @@ struct ClientConfig {
|
|
87
87
|
//! The explain output type used when none is specified (default: PHYSICAL_ONLY)
|
88
88
|
ExplainOutputType explain_output_type = ExplainOutputType::PHYSICAL_ONLY;
|
89
89
|
|
90
|
+
//! The maximum amount of pivot columns
|
91
|
+
idx_t pivot_limit = 100000;
|
92
|
+
|
90
93
|
//! Generic options
|
91
94
|
case_insensitive_map_t<Value> set_variables;
|
92
95
|
|
@@ -98,8 +101,6 @@ public:
|
|
98
101
|
static ClientConfig &GetConfig(ClientContext &context);
|
99
102
|
static const ClientConfig &GetConfig(const ClientContext &context);
|
100
103
|
|
101
|
-
static string ExtractTimezoneFromConfig(ClientConfig &config);
|
102
|
-
|
103
104
|
string ExtractTimezone() const;
|
104
105
|
|
105
106
|
bool AnyVerification() {
|
@@ -328,6 +328,16 @@ struct PerfectHashThresholdSetting {
|
|
328
328
|
static Value GetSetting(ClientContext &context);
|
329
329
|
};
|
330
330
|
|
331
|
+
struct PivotLimitSetting {
|
332
|
+
static constexpr const char *Name = "pivot_limit";
|
333
|
+
static constexpr const char *Description =
|
334
|
+
"The maximum numer of pivot columns in a pivot statement (default: 100000)";
|
335
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT;
|
336
|
+
static void SetLocal(ClientContext &context, const Value ¶meter);
|
337
|
+
static void ResetLocal(ClientContext &context);
|
338
|
+
static Value GetSetting(ClientContext &context);
|
339
|
+
};
|
340
|
+
|
331
341
|
struct PreserveIdentifierCase {
|
332
342
|
static constexpr const char *Name = "preserve_identifier_case";
|
333
343
|
static constexpr const char *Description =
|
@@ -21,7 +21,7 @@ public:
|
|
21
21
|
unique_ptr<Expression> Apply(LogicalOperator &op, vector<Expression *> &bindings, bool &changes_made,
|
22
22
|
bool is_root) override;
|
23
23
|
|
24
|
-
unique_ptr<Expression> ApplyRule(BoundFunctionExpression
|
24
|
+
unique_ptr<Expression> ApplyRule(BoundFunctionExpression &expr, ScalarFunction function, string pattern,
|
25
25
|
bool is_not_like);
|
26
26
|
};
|
27
27
|
|
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
#include "duckdb/common/common.hpp"
|
12
12
|
#include "duckdb/common/enums/expression_type.hpp"
|
13
|
+
#include "duckdb/common/exception.hpp"
|
13
14
|
|
14
15
|
namespace duckdb {
|
15
16
|
|
@@ -86,6 +87,23 @@ public:
|
|
86
87
|
}
|
87
88
|
|
88
89
|
virtual void Verify() const;
|
90
|
+
|
91
|
+
public:
|
92
|
+
template <class TARGET>
|
93
|
+
TARGET &Cast() {
|
94
|
+
if (expression_class != TARGET::TYPE) {
|
95
|
+
throw InternalException("Failed to cast expression to type - expression type mismatch");
|
96
|
+
}
|
97
|
+
return (TARGET &)*this;
|
98
|
+
}
|
99
|
+
|
100
|
+
template <class TARGET>
|
101
|
+
const TARGET &Cast() const {
|
102
|
+
if (expression_class != TARGET::TYPE) {
|
103
|
+
throw InternalException("Failed to cast expression to type - expression type mismatch");
|
104
|
+
}
|
105
|
+
return (const TARGET &)*this;
|
106
|
+
}
|
89
107
|
};
|
90
108
|
|
91
109
|
} // namespace duckdb
|
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
#include "duckdb/common/common.hpp"
|
12
12
|
#include "duckdb/common/vector.hpp"
|
13
|
+
#include "duckdb/common/exception.hpp"
|
13
14
|
|
14
15
|
namespace duckdb {
|
15
16
|
|
@@ -66,5 +67,22 @@ public:
|
|
66
67
|
DUCKDB_API virtual void Serialize(FieldWriter &writer) const = 0;
|
67
68
|
//! Deserializes a blob back into a Constraint
|
68
69
|
DUCKDB_API static unique_ptr<Constraint> Deserialize(Deserializer &source);
|
70
|
+
|
71
|
+
public:
|
72
|
+
template <class TARGET>
|
73
|
+
TARGET &Cast() {
|
74
|
+
if (type != TARGET::TYPE) {
|
75
|
+
throw InternalException("Failed to cast constraint to type - constraint type mismatch");
|
76
|
+
}
|
77
|
+
return (TARGET &)*this;
|
78
|
+
}
|
79
|
+
|
80
|
+
template <class TARGET>
|
81
|
+
const TARGET &Cast() const {
|
82
|
+
if (type != TARGET::TYPE) {
|
83
|
+
throw InternalException("Failed to cast constraint to type - constraint type mismatch");
|
84
|
+
}
|
85
|
+
return (const TARGET &)*this;
|
86
|
+
}
|
69
87
|
};
|
70
88
|
} // namespace duckdb
|
@@ -17,6 +17,9 @@ namespace duckdb {
|
|
17
17
|
//! The CheckConstraint contains an expression that must evaluate to TRUE for
|
18
18
|
//! every row in a table
|
19
19
|
class CheckConstraint : public Constraint {
|
20
|
+
public:
|
21
|
+
static constexpr const ConstraintType TYPE = ConstraintType::CHECK;
|
22
|
+
|
20
23
|
public:
|
21
24
|
DUCKDB_API explicit CheckConstraint(unique_ptr<ParsedExpression> expression);
|
22
25
|
|
@@ -14,6 +14,9 @@
|
|
14
14
|
namespace duckdb {
|
15
15
|
|
16
16
|
class ForeignKeyConstraint : public Constraint {
|
17
|
+
public:
|
18
|
+
static constexpr const ConstraintType TYPE = ConstraintType::FOREIGN_KEY;
|
19
|
+
|
17
20
|
public:
|
18
21
|
DUCKDB_API ForeignKeyConstraint(vector<string> pk_columns, vector<string> fk_columns, ForeignKeyInfo info);
|
19
22
|
|
@@ -13,6 +13,9 @@
|
|
13
13
|
namespace duckdb {
|
14
14
|
|
15
15
|
class NotNullConstraint : public Constraint {
|
16
|
+
public:
|
17
|
+
static constexpr const ConstraintType TYPE = ConstraintType::NOT_NULL;
|
18
|
+
|
16
19
|
public:
|
17
20
|
DUCKDB_API explicit NotNullConstraint(LogicalIndex index);
|
18
21
|
DUCKDB_API ~NotNullConstraint() override;
|
@@ -14,6 +14,9 @@
|
|
14
14
|
namespace duckdb {
|
15
15
|
|
16
16
|
class UniqueConstraint : public Constraint {
|
17
|
+
public:
|
18
|
+
static constexpr const ConstraintType TYPE = ConstraintType::UNIQUE;
|
19
|
+
|
17
20
|
public:
|
18
21
|
DUCKDB_API UniqueConstraint(LogicalIndex index, bool is_primary_key);
|
19
22
|
DUCKDB_API UniqueConstraint(vector<string> columns, bool is_primary_key);
|
@@ -13,6 +13,9 @@
|
|
13
13
|
namespace duckdb {
|
14
14
|
|
15
15
|
class BetweenExpression : public ParsedExpression {
|
16
|
+
public:
|
17
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::BETWEEN;
|
18
|
+
|
16
19
|
public:
|
17
20
|
DUCKDB_API BetweenExpression(unique_ptr<ParsedExpression> input, unique_ptr<ParsedExpression> lower,
|
18
21
|
unique_ptr<ParsedExpression> upper);
|
@@ -19,6 +19,9 @@ namespace duckdb {
|
|
19
19
|
//! It represents a successfully bound expression. It is used in the Binder to prevent re-binding of already bound parts
|
20
20
|
//! when dealing with subqueries.
|
21
21
|
class BoundExpression : public ParsedExpression {
|
22
|
+
public:
|
23
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::BOUND_EXPRESSION;
|
24
|
+
|
22
25
|
public:
|
23
26
|
BoundExpression(unique_ptr<Expression> expr);
|
24
27
|
|
@@ -23,6 +23,9 @@ struct CaseCheck {
|
|
23
23
|
|
24
24
|
//! The CaseExpression represents a CASE expression in the query
|
25
25
|
class CaseExpression : public ParsedExpression {
|
26
|
+
public:
|
27
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::CASE;
|
28
|
+
|
26
29
|
public:
|
27
30
|
DUCKDB_API CaseExpression();
|
28
31
|
|
@@ -15,6 +15,9 @@ namespace duckdb {
|
|
15
15
|
|
16
16
|
//! CastExpression represents a type cast from one SQL type to another SQL type
|
17
17
|
class CastExpression : public ParsedExpression {
|
18
|
+
public:
|
19
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::CAST;
|
20
|
+
|
18
21
|
public:
|
19
22
|
DUCKDB_API CastExpression(LogicalType target, unique_ptr<ParsedExpression> child, bool try_cast = false);
|
20
23
|
|
@@ -14,6 +14,9 @@ namespace duckdb {
|
|
14
14
|
|
15
15
|
//! CollateExpression represents a COLLATE statement
|
16
16
|
class CollateExpression : public ParsedExpression {
|
17
|
+
public:
|
18
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::COLLATE;
|
19
|
+
|
17
20
|
public:
|
18
21
|
CollateExpression(string collation, unique_ptr<ParsedExpression> child);
|
19
22
|
|
@@ -16,6 +16,9 @@ namespace duckdb {
|
|
16
16
|
//! Represents a reference to a column from either the FROM clause or from an
|
17
17
|
//! alias
|
18
18
|
class ColumnRefExpression : public ParsedExpression {
|
19
|
+
public:
|
20
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::COLUMN_REF;
|
21
|
+
|
19
22
|
public:
|
20
23
|
//! Specify both the column and table name
|
21
24
|
ColumnRefExpression(string column_name, string table_name);
|
@@ -14,6 +14,9 @@ namespace duckdb {
|
|
14
14
|
//! ComparisonExpression represents a boolean comparison (e.g. =, >=, <>). Always returns a boolean
|
15
15
|
//! and has two children.
|
16
16
|
class ComparisonExpression : public ParsedExpression {
|
17
|
+
public:
|
18
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::COMPARISON;
|
19
|
+
|
17
20
|
public:
|
18
21
|
DUCKDB_API ComparisonExpression(ExpressionType type, unique_ptr<ParsedExpression> left,
|
19
22
|
unique_ptr<ParsedExpression> right);
|
@@ -15,6 +15,9 @@ namespace duckdb {
|
|
15
15
|
|
16
16
|
//! Represents a conjunction (AND/OR)
|
17
17
|
class ConjunctionExpression : public ParsedExpression {
|
18
|
+
public:
|
19
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::CONJUNCTION;
|
20
|
+
|
18
21
|
public:
|
19
22
|
DUCKDB_API explicit ConjunctionExpression(ExpressionType type);
|
20
23
|
DUCKDB_API ConjunctionExpression(ExpressionType type, vector<unique_ptr<ParsedExpression>> children);
|
@@ -15,6 +15,9 @@ namespace duckdb {
|
|
15
15
|
|
16
16
|
//! ConstantExpression represents a constant value in the query
|
17
17
|
class ConstantExpression : public ParsedExpression {
|
18
|
+
public:
|
19
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::CONSTANT;
|
20
|
+
|
18
21
|
public:
|
19
22
|
DUCKDB_API explicit ConstantExpression(Value val);
|
20
23
|
|
@@ -15,6 +15,9 @@
|
|
15
15
|
namespace duckdb {
|
16
16
|
//! Represents a function call
|
17
17
|
class FunctionExpression : public ParsedExpression {
|
18
|
+
public:
|
19
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::FUNCTION;
|
20
|
+
|
18
21
|
public:
|
19
22
|
DUCKDB_API FunctionExpression(string catalog_name, string schema_name, const string &function_name,
|
20
23
|
vector<unique_ptr<ParsedExpression>> children,
|
@@ -18,6 +18,9 @@ namespace duckdb {
|
|
18
18
|
//! 2. An OperatorExpression with the "->" operator
|
19
19
|
//! Lambda expressions are written in the form of "params -> expr", e.g. "x -> x + 1"
|
20
20
|
class LambdaExpression : public ParsedExpression {
|
21
|
+
public:
|
22
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::LAMBDA;
|
23
|
+
|
21
24
|
public:
|
22
25
|
LambdaExpression(unique_ptr<ParsedExpression> lhs, unique_ptr<ParsedExpression> expr);
|
23
26
|
|
@@ -16,6 +16,9 @@
|
|
16
16
|
namespace duckdb {
|
17
17
|
//! Represents a built-in operator expression
|
18
18
|
class OperatorExpression : public ParsedExpression {
|
19
|
+
public:
|
20
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::OPERATOR;
|
21
|
+
|
19
22
|
public:
|
20
23
|
DUCKDB_API explicit OperatorExpression(ExpressionType type, unique_ptr<ParsedExpression> left = nullptr,
|
21
24
|
unique_ptr<ParsedExpression> right = nullptr);
|
@@ -12,6 +12,9 @@
|
|
12
12
|
|
13
13
|
namespace duckdb {
|
14
14
|
class PositionalReferenceExpression : public ParsedExpression {
|
15
|
+
public:
|
16
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::POSITIONAL_REFERENCE;
|
17
|
+
|
15
18
|
public:
|
16
19
|
DUCKDB_API PositionalReferenceExpression(idx_t index);
|
17
20
|
|
@@ -15,6 +15,9 @@ namespace duckdb {
|
|
15
15
|
|
16
16
|
//! Represents a * expression in the SELECT clause
|
17
17
|
class StarExpression : public ParsedExpression {
|
18
|
+
public:
|
19
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::STAR;
|
20
|
+
|
18
21
|
public:
|
19
22
|
StarExpression(string relation_name = string());
|
20
23
|
|
@@ -30,6 +30,9 @@ const char *ToString(WindowBoundary value);
|
|
30
30
|
//! The WindowExpression represents a window function in the query. They are a special case of aggregates which is why
|
31
31
|
//! they inherit from them.
|
32
32
|
class WindowExpression : public ParsedExpression {
|
33
|
+
public:
|
34
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::WINDOW;
|
35
|
+
|
33
36
|
public:
|
34
37
|
WindowExpression(ExpressionType type, string catalog_name, string schema_name, const string &function_name);
|
35
38
|
|