duckdb 0.6.2-dev781.0 → 0.6.2-dev891.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 +1 -1
- package/package.json +1 -1
- package/src/connection.cpp +2 -1
- package/src/duckdb/extension/icu/icu-dateadd.cpp +3 -3
- 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 +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +1 -1
- package/src/duckdb/extension/icu/icu-strptime.cpp +2 -2
- package/src/duckdb/extension/icu/icu-timezone.cpp +6 -5
- package/src/duckdb/extension/json/json-extension.cpp +1 -1
- package/src/duckdb/extension/parquet/column_reader.cpp +7 -0
- package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
- package/src/duckdb/src/catalog/catalog.cpp +516 -177
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +1 -0
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +66 -49
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +15 -16
- package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_entry.cpp +6 -2
- package/src/duckdb/src/catalog/catalog_search_path.cpp +177 -22
- package/src/duckdb/src/catalog/catalog_set.cpp +134 -72
- package/src/duckdb/src/catalog/catalog_transaction.cpp +28 -0
- package/src/duckdb/src/catalog/default/default_views.cpp +4 -4
- package/src/duckdb/src/catalog/dependency_list.cpp +13 -0
- package/src/duckdb/src/catalog/dependency_manager.cpp +19 -13
- package/src/duckdb/src/common/constants.cpp +8 -0
- package/src/duckdb/src/common/enums/catalog_type.cpp +2 -0
- 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/enums/statement_type.cpp +2 -0
- package/src/duckdb/src/common/file_system.cpp +1 -1
- package/src/duckdb/src/common/string_util.cpp +5 -1
- package/src/duckdb/src/execution/index/art/art.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_transaction.cpp +1 -0
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +3 -2
- package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +4 -3
- package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +72 -0
- package/src/duckdb/src/execution/operator/schema/physical_create_function.cpp +2 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +3 -3
- package/src/duckdb/src/execution/operator/schema/physical_create_schema.cpp +5 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_sequence.cpp +2 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_view.cpp +2 -1
- package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +10 -2
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +4 -4
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +2 -3
- package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +4 -0
- package/src/duckdb/src/execution/physical_plan/plan_update.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan_generator.cpp +3 -2
- package/src/duckdb/src/function/built_in_functions.cpp +88 -0
- package/src/duckdb/src/function/function.cpp +0 -79
- package/src/duckdb/src/function/function_binder.cpp +2 -1
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +10 -1
- package/src/duckdb/src/function/scalar/date/current.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_aggregates.cpp +3 -2
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +14 -17
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +2 -2
- package/src/duckdb/src/function/scalar/system/system_functions.cpp +7 -4
- package/src/duckdb/src/function/table/checkpoint.cpp +37 -4
- package/src/duckdb/src/function/table/read_csv.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_columns.cpp +32 -25
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +26 -22
- package/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +22 -15
- package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +25 -18
- package/src/duckdb/src/function/table/system/duckdb_schemas.cpp +16 -8
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +26 -19
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +24 -17
- package/src/duckdb/src/function/table/system/duckdb_types.cpp +22 -16
- package/src/duckdb/src/function/table/system/duckdb_views.cpp +20 -13
- package/src/duckdb/src/function/table/system/pragma_collations.cpp +3 -4
- package/src/duckdb/src/function/table/system/pragma_database_list.cpp +20 -12
- package/src/duckdb/src/function/table/system/pragma_database_size.cpp +39 -24
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +1 -7
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +3 -2
- package/src/duckdb/src/function/table/system_functions.cpp +0 -1
- package/src/duckdb/src/function/table/table_scan.cpp +13 -10
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +102 -81
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/collate_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/copy_function_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +21 -14
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +30 -11
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +35 -20
- package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +32 -0
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +27 -0
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +6 -4
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/constants.hpp +8 -3
- package/src/duckdb/src/include/duckdb/common/enums/catalog_type.hpp +1 -0
- 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 +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +10 -4
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_attach.hpp +33 -0
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +2 -1
- package/src/duckdb/src/include/duckdb/function/aggregate/algebraic_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/aggregate/holistic_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/aggregate/nested_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/aggregate/regression_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +78 -0
- package/src/duckdb/src/include/duckdb/function/function.hpp +0 -61
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +1 -2
- package/src/duckdb/src/include/duckdb/function/pragma/pragma_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/blob_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/enum_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/trigonometric_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/uuid_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -1
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/table/range.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/table/summary.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +1 -4
- package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +64 -0
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/database.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +69 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +10 -0
- package/src/duckdb/src/include/duckdb/main/valid_checker.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_function_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +18 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +53 -56
- package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +39 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +4 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_aggregate_function_info.hpp +3 -18
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_collation_info.hpp +4 -13
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_copy_function_info.hpp +3 -12
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +5 -3
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_pragma_function_info.hpp +3 -14
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_function_info.hpp +3 -19
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +7 -34
- package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +7 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/qualified_name.hpp +10 -2
- package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/statement/attach_statement.hpp +29 -0
- package/src/duckdb/src/include/duckdb/parser/statement/export_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/insert_statement.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/statement/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +4 -1
- package/src/duckdb/src/include/duckdb/parser/tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +11 -1
- package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +13 -6
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +10 -2
- package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +9 -12
- package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -7
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +5 -6
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +9 -7
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +3 -1
- package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +64 -0
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +14 -23
- package/src/duckdb/src/include/duckdb/transaction/transaction_context.hpp +12 -8
- package/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp +5 -10
- package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +1 -1
- package/src/duckdb/src/main/attached_database.cpp +97 -0
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +28 -22
- package/src/duckdb/src/main/client_data.cpp +5 -2
- package/src/duckdb/src/main/config.cpp +1 -0
- package/src/duckdb/src/main/database.cpp +54 -40
- package/src/duckdb/src/main/database_manager.cpp +95 -0
- package/src/duckdb/src/main/materialized_query_result.cpp +1 -1
- package/src/duckdb/src/main/prepared_statement_data.cpp +1 -2
- package/src/duckdb/src/main/query_result.cpp +4 -4
- package/src/duckdb/src/main/settings/settings.cpp +22 -6
- package/src/duckdb/src/main/stream_query_result.cpp +1 -1
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +9 -3
- package/src/duckdb/src/parser/expression/function_expression.cpp +15 -13
- package/src/duckdb/src/parser/expression/window_expression.cpp +6 -4
- package/src/duckdb/src/parser/parsed_data/alter_function_info.cpp +7 -7
- package/src/duckdb/src/parser/parsed_data/alter_info.cpp +12 -2
- package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +96 -98
- package/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp +27 -0
- package/src/duckdb/src/parser/parsed_data/create_collation_info.cpp +23 -0
- package/src/duckdb/src/parser/parsed_data/create_copy_function_info.cpp +21 -0
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +3 -0
- package/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp +23 -0
- package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +3 -1
- package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +28 -0
- package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +9 -3
- package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +49 -0
- package/src/duckdb/src/parser/statement/attach_statement.cpp +15 -0
- package/src/duckdb/src/parser/statement/insert_statement.cpp +6 -2
- package/src/duckdb/src/parser/tableref/basetableref.cpp +9 -4
- package/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp +15 -13
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +17 -7
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +4 -9
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +4 -0
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +5 -4
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +32 -0
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +7 -2
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +5 -5
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +6 -13
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +6 -6
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +11 -2
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -1
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -36
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +3 -1
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +21 -0
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +11 -3
- package/src/duckdb/src/parser/transformer.cpp +4 -0
- package/src/duckdb/src/planner/bind_context.cpp +11 -2
- package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +43 -13
- package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +2 -3
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +2 -3
- package/src/duckdb/src/planner/binder/statement/bind_attach.cpp +20 -0
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +7 -4
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +79 -27
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +11 -7
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +13 -5
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +6 -3
- package/src/duckdb/src/planner/binder/statement/bind_extension.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +3 -2
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_prepare.cpp +0 -2
- package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +11 -6
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +10 -6
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +2 -4
- package/src/duckdb/src/planner/binder.cpp +17 -2
- package/src/duckdb/src/planner/logical_operator.cpp +5 -12
- package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +3 -4
- package/src/duckdb/src/planner/operator/logical_create.cpp +1 -4
- package/src/duckdb/src/planner/operator/logical_create_index.cpp +2 -2
- package/src/duckdb/src/planner/operator/logical_delete.cpp +2 -3
- package/src/duckdb/src/planner/operator/logical_insert.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_update.cpp +1 -1
- package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +1 -1
- package/src/duckdb/src/planner/planner.cpp +3 -2
- package/src/duckdb/src/planner/pragma_handler.cpp +1 -1
- package/src/duckdb/src/storage/buffer_manager.cpp +5 -0
- package/src/duckdb/src/storage/checkpoint_manager.cpp +10 -17
- package/src/duckdb/src/storage/data_table.cpp +34 -24
- package/src/duckdb/src/storage/local_storage.cpp +7 -3
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/storage_manager.cpp +25 -42
- package/src/duckdb/src/storage/table/column_data.cpp +2 -1
- package/src/duckdb/src/storage/table/row_group.cpp +7 -2
- package/src/duckdb/src/storage/wal_replay.cpp +6 -22
- package/src/duckdb/src/storage/write_ahead_log.cpp +3 -3
- package/src/duckdb/src/transaction/meta_transaction.cpp +106 -0
- package/src/duckdb/src/transaction/transaction.cpp +21 -21
- package/src/duckdb/src/transaction/transaction_context.cpp +44 -8
- package/src/duckdb/src/transaction/transaction_manager.cpp +20 -20
- package/src/duckdb/src/transaction/undo_buffer.cpp +1 -3
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +2 -0
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +27 -1
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +99 -97
- package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +1 -0
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +15206 -14793
- package/src/duckdb/ub_src_catalog.cpp +4 -0
- package/src/duckdb/ub_src_execution_operator_schema.cpp +2 -0
- package/src/duckdb/ub_src_function.cpp +2 -0
- package/src/duckdb/ub_src_function_table_system.cpp +0 -2
- package/src/duckdb/ub_src_main.cpp +4 -0
- package/src/duckdb/ub_src_parser_parsed_data.cpp +12 -0
- package/src/duckdb/ub_src_parser_statement.cpp +2 -0
- package/src/duckdb/ub_src_parser_transform_statement.cpp +4 -0
- package/src/duckdb/ub_src_planner_binder_statement.cpp +2 -0
- package/src/duckdb/ub_src_transaction.cpp +2 -0
- package/src/duckdb/src/function/table/system/pragma_functions.cpp +0 -120
|
@@ -8,9 +8,11 @@ namespace duckdb {
|
|
|
8
8
|
//===--------------------------------------------------------------------===//
|
|
9
9
|
// ChangeOwnershipInfo
|
|
10
10
|
//===--------------------------------------------------------------------===//
|
|
11
|
-
ChangeOwnershipInfo::ChangeOwnershipInfo(CatalogType entry_catalog_type, string
|
|
12
|
-
string owner_schema_p, string owner_name_p,
|
|
13
|
-
|
|
11
|
+
ChangeOwnershipInfo::ChangeOwnershipInfo(CatalogType entry_catalog_type, string entry_catalog_p, string entry_schema_p,
|
|
12
|
+
string entry_name_p, string owner_schema_p, string owner_name_p,
|
|
13
|
+
bool if_exists)
|
|
14
|
+
: AlterInfo(AlterType::CHANGE_OWNERSHIP, move(entry_catalog_p), move(entry_schema_p), move(entry_name_p),
|
|
15
|
+
if_exists),
|
|
14
16
|
entry_catalog_type(entry_catalog_type), owner_schema(move(owner_schema_p)), owner_name(move(owner_name_p)) {
|
|
15
17
|
}
|
|
16
18
|
|
|
@@ -19,8 +21,8 @@ CatalogType ChangeOwnershipInfo::GetCatalogType() const {
|
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
unique_ptr<AlterInfo> ChangeOwnershipInfo::Copy() const {
|
|
22
|
-
return make_unique_base<AlterInfo, ChangeOwnershipInfo>(entry_catalog_type, schema, name, owner_schema,
|
|
23
|
-
if_exists);
|
|
24
|
+
return make_unique_base<AlterInfo, ChangeOwnershipInfo>(entry_catalog_type, catalog, schema, name, owner_schema,
|
|
25
|
+
owner_name, if_exists);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
void ChangeOwnershipInfo::Serialize(FieldWriter &writer) const {
|
|
@@ -30,8 +32,9 @@ void ChangeOwnershipInfo::Serialize(FieldWriter &writer) const {
|
|
|
30
32
|
//===--------------------------------------------------------------------===//
|
|
31
33
|
// AlterTableInfo
|
|
32
34
|
//===--------------------------------------------------------------------===//
|
|
33
|
-
AlterTableInfo::AlterTableInfo(AlterTableType type,
|
|
34
|
-
: AlterInfo(AlterType::ALTER_TABLE, move(move(
|
|
35
|
+
AlterTableInfo::AlterTableInfo(AlterTableType type, AlterEntryData data)
|
|
36
|
+
: AlterInfo(AlterType::ALTER_TABLE, move(data.catalog), move(data.schema), move(data.name), data.if_exists),
|
|
37
|
+
alter_table_type(type) {
|
|
35
38
|
}
|
|
36
39
|
AlterTableInfo::~AlterTableInfo() {
|
|
37
40
|
}
|
|
@@ -42,6 +45,7 @@ CatalogType AlterTableInfo::GetCatalogType() const {
|
|
|
42
45
|
|
|
43
46
|
void AlterTableInfo::Serialize(FieldWriter &writer) const {
|
|
44
47
|
writer.WriteField<AlterTableType>(alter_table_type);
|
|
48
|
+
writer.WriteString(catalog);
|
|
45
49
|
writer.WriteString(schema);
|
|
46
50
|
writer.WriteString(name);
|
|
47
51
|
writer.WriteField(if_exists);
|
|
@@ -50,30 +54,32 @@ void AlterTableInfo::Serialize(FieldWriter &writer) const {
|
|
|
50
54
|
|
|
51
55
|
unique_ptr<AlterInfo> AlterTableInfo::Deserialize(FieldReader &reader) {
|
|
52
56
|
auto type = reader.ReadRequired<AlterTableType>();
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
AlterEntryData data;
|
|
58
|
+
data.catalog = reader.ReadRequired<string>();
|
|
59
|
+
data.schema = reader.ReadRequired<string>();
|
|
60
|
+
data.name = reader.ReadRequired<string>();
|
|
61
|
+
data.if_exists = reader.ReadRequired<bool>();
|
|
56
62
|
|
|
57
63
|
unique_ptr<AlterTableInfo> info;
|
|
58
64
|
switch (type) {
|
|
59
65
|
case AlterTableType::RENAME_COLUMN:
|
|
60
|
-
return RenameColumnInfo::Deserialize(reader,
|
|
66
|
+
return RenameColumnInfo::Deserialize(reader, move(data));
|
|
61
67
|
case AlterTableType::RENAME_TABLE:
|
|
62
|
-
return RenameTableInfo::Deserialize(reader,
|
|
68
|
+
return RenameTableInfo::Deserialize(reader, move(data));
|
|
63
69
|
case AlterTableType::ADD_COLUMN:
|
|
64
|
-
return AddColumnInfo::Deserialize(reader,
|
|
70
|
+
return AddColumnInfo::Deserialize(reader, move(data));
|
|
65
71
|
case AlterTableType::REMOVE_COLUMN:
|
|
66
|
-
return RemoveColumnInfo::Deserialize(reader,
|
|
72
|
+
return RemoveColumnInfo::Deserialize(reader, move(data));
|
|
67
73
|
case AlterTableType::ALTER_COLUMN_TYPE:
|
|
68
|
-
return ChangeColumnTypeInfo::Deserialize(reader,
|
|
74
|
+
return ChangeColumnTypeInfo::Deserialize(reader, move(data));
|
|
69
75
|
case AlterTableType::SET_DEFAULT:
|
|
70
|
-
return SetDefaultInfo::Deserialize(reader,
|
|
76
|
+
return SetDefaultInfo::Deserialize(reader, move(data));
|
|
71
77
|
case AlterTableType::FOREIGN_KEY_CONSTRAINT:
|
|
72
|
-
return AlterForeignKeyInfo::Deserialize(reader,
|
|
78
|
+
return AlterForeignKeyInfo::Deserialize(reader, move(data));
|
|
73
79
|
case AlterTableType::SET_NOT_NULL:
|
|
74
|
-
return SetNotNullInfo::Deserialize(reader,
|
|
80
|
+
return SetNotNullInfo::Deserialize(reader, move(data));
|
|
75
81
|
case AlterTableType::DROP_NOT_NULL:
|
|
76
|
-
return DropNotNullInfo::Deserialize(reader,
|
|
82
|
+
return DropNotNullInfo::Deserialize(reader, move(data));
|
|
77
83
|
default:
|
|
78
84
|
throw SerializationException("Unknown alter table type for deserialization!");
|
|
79
85
|
}
|
|
@@ -82,16 +88,15 @@ unique_ptr<AlterInfo> AlterTableInfo::Deserialize(FieldReader &reader) {
|
|
|
82
88
|
//===--------------------------------------------------------------------===//
|
|
83
89
|
// RenameColumnInfo
|
|
84
90
|
//===--------------------------------------------------------------------===//
|
|
85
|
-
RenameColumnInfo::RenameColumnInfo(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
old_name(move(old_name_p)), new_name(move(new_name_p)) {
|
|
91
|
+
RenameColumnInfo::RenameColumnInfo(AlterEntryData data, string old_name_p, string new_name_p)
|
|
92
|
+
: AlterTableInfo(AlterTableType::RENAME_COLUMN, move(data)), old_name(move(old_name_p)),
|
|
93
|
+
new_name(move(new_name_p)) {
|
|
89
94
|
}
|
|
90
95
|
RenameColumnInfo::~RenameColumnInfo() {
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
unique_ptr<AlterInfo> RenameColumnInfo::Copy() const {
|
|
94
|
-
return make_unique_base<AlterInfo, RenameColumnInfo>(
|
|
99
|
+
return make_unique_base<AlterInfo, RenameColumnInfo>(GetAlterEntryData(), old_name, new_name);
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
void RenameColumnInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
@@ -99,49 +104,47 @@ void RenameColumnInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
|
99
104
|
writer.WriteString(new_name);
|
|
100
105
|
}
|
|
101
106
|
|
|
102
|
-
unique_ptr<AlterInfo> RenameColumnInfo::Deserialize(FieldReader &reader,
|
|
107
|
+
unique_ptr<AlterInfo> RenameColumnInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
103
108
|
auto old_name = reader.ReadRequired<string>();
|
|
104
109
|
auto new_name = reader.ReadRequired<string>();
|
|
105
|
-
return make_unique<RenameColumnInfo>(move(
|
|
110
|
+
return make_unique<RenameColumnInfo>(move(data), old_name, new_name);
|
|
106
111
|
}
|
|
107
112
|
|
|
108
113
|
//===--------------------------------------------------------------------===//
|
|
109
114
|
// RenameTableInfo
|
|
110
115
|
//===--------------------------------------------------------------------===//
|
|
111
|
-
RenameTableInfo::RenameTableInfo(
|
|
112
|
-
: AlterTableInfo(AlterTableType::RENAME_TABLE, move(
|
|
113
|
-
new_table_name(move(new_name_p)) {
|
|
116
|
+
RenameTableInfo::RenameTableInfo(AlterEntryData data, string new_name_p)
|
|
117
|
+
: AlterTableInfo(AlterTableType::RENAME_TABLE, move(data)), new_table_name(move(new_name_p)) {
|
|
114
118
|
}
|
|
115
119
|
RenameTableInfo::~RenameTableInfo() {
|
|
116
120
|
}
|
|
117
121
|
|
|
118
122
|
unique_ptr<AlterInfo> RenameTableInfo::Copy() const {
|
|
119
|
-
return make_unique_base<AlterInfo, RenameTableInfo>(
|
|
123
|
+
return make_unique_base<AlterInfo, RenameTableInfo>(GetAlterEntryData(), new_table_name);
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
void RenameTableInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
123
127
|
writer.WriteString(new_table_name);
|
|
124
128
|
}
|
|
125
129
|
|
|
126
|
-
unique_ptr<AlterInfo> RenameTableInfo::Deserialize(FieldReader &reader,
|
|
130
|
+
unique_ptr<AlterInfo> RenameTableInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
127
131
|
auto new_name = reader.ReadRequired<string>();
|
|
128
|
-
return make_unique<RenameTableInfo>(move(
|
|
132
|
+
return make_unique<RenameTableInfo>(move(data), new_name);
|
|
129
133
|
}
|
|
130
134
|
|
|
131
135
|
//===--------------------------------------------------------------------===//
|
|
132
136
|
// AddColumnInfo
|
|
133
137
|
//===--------------------------------------------------------------------===//
|
|
134
|
-
AddColumnInfo::AddColumnInfo(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
new_column(move(new_column)), if_column_not_exists(if_column_not_exists) {
|
|
138
|
+
AddColumnInfo::AddColumnInfo(AlterEntryData data, ColumnDefinition new_column, bool if_column_not_exists)
|
|
139
|
+
: AlterTableInfo(AlterTableType::ADD_COLUMN, move(data)), new_column(move(new_column)),
|
|
140
|
+
if_column_not_exists(if_column_not_exists) {
|
|
138
141
|
}
|
|
139
142
|
|
|
140
143
|
AddColumnInfo::~AddColumnInfo() {
|
|
141
144
|
}
|
|
142
145
|
|
|
143
146
|
unique_ptr<AlterInfo> AddColumnInfo::Copy() const {
|
|
144
|
-
return make_unique_base<AlterInfo, AddColumnInfo>(
|
|
147
|
+
return make_unique_base<AlterInfo, AddColumnInfo>(GetAlterEntryData(), new_column.Copy(), if_column_not_exists);
|
|
145
148
|
}
|
|
146
149
|
|
|
147
150
|
void AddColumnInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
@@ -149,25 +152,24 @@ void AddColumnInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
|
149
152
|
writer.WriteField<bool>(if_column_not_exists);
|
|
150
153
|
}
|
|
151
154
|
|
|
152
|
-
unique_ptr<AlterInfo> AddColumnInfo::Deserialize(FieldReader &reader,
|
|
155
|
+
unique_ptr<AlterInfo> AddColumnInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
153
156
|
auto new_column = reader.ReadRequiredSerializable<ColumnDefinition, ColumnDefinition>();
|
|
154
157
|
auto if_column_not_exists = reader.ReadRequired<bool>();
|
|
155
|
-
return make_unique<AddColumnInfo>(move(
|
|
158
|
+
return make_unique<AddColumnInfo>(move(data), move(new_column), if_column_not_exists);
|
|
156
159
|
}
|
|
157
160
|
|
|
158
161
|
//===--------------------------------------------------------------------===//
|
|
159
162
|
// RemoveColumnInfo
|
|
160
163
|
//===--------------------------------------------------------------------===//
|
|
161
|
-
RemoveColumnInfo::RemoveColumnInfo(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
removed_column(move(removed_column)), if_column_exists(if_column_exists), cascade(cascade) {
|
|
164
|
+
RemoveColumnInfo::RemoveColumnInfo(AlterEntryData data, string removed_column, bool if_column_exists, bool cascade)
|
|
165
|
+
: AlterTableInfo(AlterTableType::REMOVE_COLUMN, move(data)), removed_column(move(removed_column)),
|
|
166
|
+
if_column_exists(if_column_exists), cascade(cascade) {
|
|
165
167
|
}
|
|
166
168
|
RemoveColumnInfo::~RemoveColumnInfo() {
|
|
167
169
|
}
|
|
168
170
|
|
|
169
171
|
unique_ptr<AlterInfo> RemoveColumnInfo::Copy() const {
|
|
170
|
-
return make_unique_base<AlterInfo, RemoveColumnInfo>(
|
|
172
|
+
return make_unique_base<AlterInfo, RemoveColumnInfo>(GetAlterEntryData(), removed_column, if_column_exists,
|
|
171
173
|
cascade);
|
|
172
174
|
}
|
|
173
175
|
|
|
@@ -177,26 +179,26 @@ void RemoveColumnInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
|
177
179
|
writer.WriteField<bool>(cascade);
|
|
178
180
|
}
|
|
179
181
|
|
|
180
|
-
unique_ptr<AlterInfo> RemoveColumnInfo::Deserialize(FieldReader &reader,
|
|
182
|
+
unique_ptr<AlterInfo> RemoveColumnInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
181
183
|
auto new_name = reader.ReadRequired<string>();
|
|
182
184
|
auto if_column_exists = reader.ReadRequired<bool>();
|
|
183
185
|
auto cascade = reader.ReadRequired<bool>();
|
|
184
|
-
return make_unique<RemoveColumnInfo>(move(
|
|
186
|
+
return make_unique<RemoveColumnInfo>(move(data), move(new_name), if_column_exists, cascade);
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
//===--------------------------------------------------------------------===//
|
|
188
190
|
// ChangeColumnTypeInfo
|
|
189
191
|
//===--------------------------------------------------------------------===//
|
|
190
|
-
ChangeColumnTypeInfo::ChangeColumnTypeInfo(
|
|
191
|
-
|
|
192
|
-
: AlterTableInfo(AlterTableType::ALTER_COLUMN_TYPE, move(
|
|
193
|
-
|
|
192
|
+
ChangeColumnTypeInfo::ChangeColumnTypeInfo(AlterEntryData data, string column_name, LogicalType target_type,
|
|
193
|
+
unique_ptr<ParsedExpression> expression)
|
|
194
|
+
: AlterTableInfo(AlterTableType::ALTER_COLUMN_TYPE, move(data)), column_name(move(column_name)),
|
|
195
|
+
target_type(move(target_type)), expression(move(expression)) {
|
|
194
196
|
}
|
|
195
197
|
ChangeColumnTypeInfo::~ChangeColumnTypeInfo() {
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
unique_ptr<AlterInfo> ChangeColumnTypeInfo::Copy() const {
|
|
199
|
-
return make_unique_base<AlterInfo, ChangeColumnTypeInfo>(
|
|
201
|
+
return make_unique_base<AlterInfo, ChangeColumnTypeInfo>(GetAlterEntryData(), column_name, target_type,
|
|
200
202
|
expression->Copy());
|
|
201
203
|
}
|
|
202
204
|
|
|
@@ -206,28 +208,25 @@ void ChangeColumnTypeInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
|
206
208
|
writer.WriteOptional(expression);
|
|
207
209
|
}
|
|
208
210
|
|
|
209
|
-
unique_ptr<AlterInfo> ChangeColumnTypeInfo::Deserialize(FieldReader &reader,
|
|
210
|
-
bool if_exists) {
|
|
211
|
+
unique_ptr<AlterInfo> ChangeColumnTypeInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
211
212
|
auto column_name = reader.ReadRequired<string>();
|
|
212
213
|
auto target_type = reader.ReadRequiredSerializable<LogicalType, LogicalType>();
|
|
213
214
|
auto expression = reader.ReadOptional<ParsedExpression>(nullptr);
|
|
214
|
-
return make_unique<ChangeColumnTypeInfo>(move(
|
|
215
|
-
move(expression));
|
|
215
|
+
return make_unique<ChangeColumnTypeInfo>(move(data), move(column_name), move(target_type), move(expression));
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
//===--------------------------------------------------------------------===//
|
|
219
219
|
// SetDefaultInfo
|
|
220
220
|
//===--------------------------------------------------------------------===//
|
|
221
|
-
SetDefaultInfo::SetDefaultInfo(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
column_name(move(column_name_p)), expression(move(new_default)) {
|
|
221
|
+
SetDefaultInfo::SetDefaultInfo(AlterEntryData data, string column_name_p, unique_ptr<ParsedExpression> new_default)
|
|
222
|
+
: AlterTableInfo(AlterTableType::SET_DEFAULT, move(data)), column_name(move(column_name_p)),
|
|
223
|
+
expression(move(new_default)) {
|
|
225
224
|
}
|
|
226
225
|
SetDefaultInfo::~SetDefaultInfo() {
|
|
227
226
|
}
|
|
228
227
|
|
|
229
228
|
unique_ptr<AlterInfo> SetDefaultInfo::Copy() const {
|
|
230
|
-
return make_unique_base<AlterInfo, SetDefaultInfo>(
|
|
229
|
+
return make_unique_base<AlterInfo, SetDefaultInfo>(GetAlterEntryData(), column_name,
|
|
231
230
|
expression ? expression->Copy() : nullptr);
|
|
232
231
|
}
|
|
233
232
|
|
|
@@ -236,74 +235,71 @@ void SetDefaultInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
|
236
235
|
writer.WriteOptional(expression);
|
|
237
236
|
}
|
|
238
237
|
|
|
239
|
-
unique_ptr<AlterInfo> SetDefaultInfo::Deserialize(FieldReader &reader,
|
|
238
|
+
unique_ptr<AlterInfo> SetDefaultInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
240
239
|
auto column_name = reader.ReadRequired<string>();
|
|
241
240
|
auto new_default = reader.ReadOptional<ParsedExpression>(nullptr);
|
|
242
|
-
return make_unique<SetDefaultInfo>(move(
|
|
241
|
+
return make_unique<SetDefaultInfo>(move(data), move(column_name), move(new_default));
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
//===--------------------------------------------------------------------===//
|
|
246
245
|
// SetNotNullInfo
|
|
247
246
|
//===--------------------------------------------------------------------===//
|
|
248
|
-
SetNotNullInfo::SetNotNullInfo(
|
|
249
|
-
: AlterTableInfo(AlterTableType::SET_NOT_NULL, move(
|
|
250
|
-
column_name(move(column_name_p)) {
|
|
247
|
+
SetNotNullInfo::SetNotNullInfo(AlterEntryData data, string column_name_p)
|
|
248
|
+
: AlterTableInfo(AlterTableType::SET_NOT_NULL, move(data)), column_name(move(column_name_p)) {
|
|
251
249
|
}
|
|
252
250
|
SetNotNullInfo::~SetNotNullInfo() {
|
|
253
251
|
}
|
|
254
252
|
|
|
255
253
|
unique_ptr<AlterInfo> SetNotNullInfo::Copy() const {
|
|
256
|
-
return make_unique_base<AlterInfo, SetNotNullInfo>(
|
|
254
|
+
return make_unique_base<AlterInfo, SetNotNullInfo>(GetAlterEntryData(), column_name);
|
|
257
255
|
}
|
|
258
256
|
|
|
259
257
|
void SetNotNullInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
260
258
|
writer.WriteString(column_name);
|
|
261
259
|
}
|
|
262
260
|
|
|
263
|
-
unique_ptr<AlterInfo> SetNotNullInfo::Deserialize(FieldReader &reader,
|
|
261
|
+
unique_ptr<AlterInfo> SetNotNullInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
264
262
|
auto column_name = reader.ReadRequired<string>();
|
|
265
|
-
return make_unique<SetNotNullInfo>(move(
|
|
263
|
+
return make_unique<SetNotNullInfo>(move(data), move(column_name));
|
|
266
264
|
}
|
|
267
265
|
|
|
268
266
|
//===--------------------------------------------------------------------===//
|
|
269
267
|
// DropNotNullInfo
|
|
270
268
|
//===--------------------------------------------------------------------===//
|
|
271
|
-
DropNotNullInfo::DropNotNullInfo(
|
|
272
|
-
: AlterTableInfo(AlterTableType::DROP_NOT_NULL, move(
|
|
273
|
-
column_name(move(column_name_p)) {
|
|
269
|
+
DropNotNullInfo::DropNotNullInfo(AlterEntryData data, string column_name_p)
|
|
270
|
+
: AlterTableInfo(AlterTableType::DROP_NOT_NULL, move(data)), column_name(move(column_name_p)) {
|
|
274
271
|
}
|
|
275
272
|
DropNotNullInfo::~DropNotNullInfo() {
|
|
276
273
|
}
|
|
277
274
|
|
|
278
275
|
unique_ptr<AlterInfo> DropNotNullInfo::Copy() const {
|
|
279
|
-
return make_unique_base<AlterInfo, DropNotNullInfo>(
|
|
276
|
+
return make_unique_base<AlterInfo, DropNotNullInfo>(GetAlterEntryData(), column_name);
|
|
280
277
|
}
|
|
281
278
|
|
|
282
279
|
void DropNotNullInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
283
280
|
writer.WriteString(column_name);
|
|
284
281
|
}
|
|
285
282
|
|
|
286
|
-
unique_ptr<AlterInfo> DropNotNullInfo::Deserialize(FieldReader &reader,
|
|
283
|
+
unique_ptr<AlterInfo> DropNotNullInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
287
284
|
auto column_name = reader.ReadRequired<string>();
|
|
288
|
-
return make_unique<DropNotNullInfo>(move(
|
|
285
|
+
return make_unique<DropNotNullInfo>(move(data), move(column_name));
|
|
289
286
|
}
|
|
290
287
|
|
|
291
288
|
//===--------------------------------------------------------------------===//
|
|
292
289
|
// AlterForeignKeyInfo
|
|
293
290
|
//===--------------------------------------------------------------------===//
|
|
294
|
-
AlterForeignKeyInfo::AlterForeignKeyInfo(
|
|
295
|
-
vector<string>
|
|
296
|
-
vector<PhysicalIndex>
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
fk_keys(move(fk_keys)), type(type_p) {
|
|
291
|
+
AlterForeignKeyInfo::AlterForeignKeyInfo(AlterEntryData data, string fk_table, vector<string> pk_columns,
|
|
292
|
+
vector<string> fk_columns, vector<PhysicalIndex> pk_keys,
|
|
293
|
+
vector<PhysicalIndex> fk_keys, AlterForeignKeyType type_p)
|
|
294
|
+
: AlterTableInfo(AlterTableType::FOREIGN_KEY_CONSTRAINT, move(data)), fk_table(move(fk_table)),
|
|
295
|
+
pk_columns(move(pk_columns)), fk_columns(move(fk_columns)), pk_keys(move(pk_keys)), fk_keys(move(fk_keys)),
|
|
296
|
+
type(type_p) {
|
|
301
297
|
}
|
|
302
298
|
AlterForeignKeyInfo::~AlterForeignKeyInfo() {
|
|
303
299
|
}
|
|
304
300
|
|
|
305
301
|
unique_ptr<AlterInfo> AlterForeignKeyInfo::Copy() const {
|
|
306
|
-
return make_unique_base<AlterInfo, AlterForeignKeyInfo>(
|
|
302
|
+
return make_unique_base<AlterInfo, AlterForeignKeyInfo>(GetAlterEntryData(), fk_table, pk_columns, fk_columns,
|
|
307
303
|
pk_keys, fk_keys, type);
|
|
308
304
|
}
|
|
309
305
|
|
|
@@ -316,23 +312,23 @@ void AlterForeignKeyInfo::SerializeAlterTable(FieldWriter &writer) const {
|
|
|
316
312
|
writer.WriteField<AlterForeignKeyType>(type);
|
|
317
313
|
}
|
|
318
314
|
|
|
319
|
-
unique_ptr<AlterInfo> AlterForeignKeyInfo::Deserialize(FieldReader &reader,
|
|
320
|
-
bool if_exists) {
|
|
315
|
+
unique_ptr<AlterInfo> AlterForeignKeyInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
321
316
|
auto fk_table = reader.ReadRequired<string>();
|
|
322
317
|
auto pk_columns = reader.ReadRequiredList<string>();
|
|
323
318
|
auto fk_columns = reader.ReadRequiredList<string>();
|
|
324
319
|
auto pk_keys = reader.ReadRequiredIndexList<PhysicalIndex>();
|
|
325
320
|
auto fk_keys = reader.ReadRequiredIndexList<PhysicalIndex>();
|
|
326
321
|
auto type = reader.ReadRequired<AlterForeignKeyType>();
|
|
327
|
-
return make_unique<AlterForeignKeyInfo>(move(
|
|
328
|
-
move(
|
|
322
|
+
return make_unique<AlterForeignKeyInfo>(move(data), move(fk_table), move(pk_columns), move(fk_columns),
|
|
323
|
+
move(pk_keys), move(fk_keys), type);
|
|
329
324
|
}
|
|
330
325
|
|
|
331
326
|
//===--------------------------------------------------------------------===//
|
|
332
327
|
// Alter View
|
|
333
328
|
//===--------------------------------------------------------------------===//
|
|
334
|
-
AlterViewInfo::AlterViewInfo(AlterViewType type,
|
|
335
|
-
: AlterInfo(AlterType::ALTER_VIEW, move(
|
|
329
|
+
AlterViewInfo::AlterViewInfo(AlterViewType type, AlterEntryData data)
|
|
330
|
+
: AlterInfo(AlterType::ALTER_VIEW, move(data.catalog), move(data.schema), move(data.name), data.if_exists),
|
|
331
|
+
alter_view_type(type) {
|
|
336
332
|
}
|
|
337
333
|
AlterViewInfo::~AlterViewInfo() {
|
|
338
334
|
}
|
|
@@ -343,6 +339,7 @@ CatalogType AlterViewInfo::GetCatalogType() const {
|
|
|
343
339
|
|
|
344
340
|
void AlterViewInfo::Serialize(FieldWriter &writer) const {
|
|
345
341
|
writer.WriteField<AlterViewType>(alter_view_type);
|
|
342
|
+
writer.WriteString(catalog);
|
|
346
343
|
writer.WriteString(schema);
|
|
347
344
|
writer.WriteString(name);
|
|
348
345
|
writer.WriteField<bool>(if_exists);
|
|
@@ -351,13 +348,15 @@ void AlterViewInfo::Serialize(FieldWriter &writer) const {
|
|
|
351
348
|
|
|
352
349
|
unique_ptr<AlterInfo> AlterViewInfo::Deserialize(FieldReader &reader) {
|
|
353
350
|
auto type = reader.ReadRequired<AlterViewType>();
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
351
|
+
AlterEntryData data;
|
|
352
|
+
data.catalog = reader.ReadRequired<string>();
|
|
353
|
+
data.schema = reader.ReadRequired<string>();
|
|
354
|
+
data.name = reader.ReadRequired<string>();
|
|
355
|
+
data.if_exists = reader.ReadRequired<bool>();
|
|
357
356
|
unique_ptr<AlterViewInfo> info;
|
|
358
357
|
switch (type) {
|
|
359
358
|
case AlterViewType::RENAME_VIEW:
|
|
360
|
-
return RenameViewInfo::Deserialize(reader,
|
|
359
|
+
return RenameViewInfo::Deserialize(reader, move(data));
|
|
361
360
|
default:
|
|
362
361
|
throw SerializationException("Unknown alter view type for deserialization!");
|
|
363
362
|
}
|
|
@@ -366,23 +365,22 @@ unique_ptr<AlterInfo> AlterViewInfo::Deserialize(FieldReader &reader) {
|
|
|
366
365
|
//===--------------------------------------------------------------------===//
|
|
367
366
|
// RenameViewInfo
|
|
368
367
|
//===--------------------------------------------------------------------===//
|
|
369
|
-
RenameViewInfo::RenameViewInfo(
|
|
370
|
-
: AlterViewInfo(AlterViewType::RENAME_VIEW, move(
|
|
371
|
-
new_view_name(move(new_name_p)) {
|
|
368
|
+
RenameViewInfo::RenameViewInfo(AlterEntryData data, string new_name_p)
|
|
369
|
+
: AlterViewInfo(AlterViewType::RENAME_VIEW, move(data)), new_view_name(move(new_name_p)) {
|
|
372
370
|
}
|
|
373
371
|
RenameViewInfo::~RenameViewInfo() {
|
|
374
372
|
}
|
|
375
373
|
|
|
376
374
|
unique_ptr<AlterInfo> RenameViewInfo::Copy() const {
|
|
377
|
-
return make_unique_base<AlterInfo, RenameViewInfo>(
|
|
375
|
+
return make_unique_base<AlterInfo, RenameViewInfo>(GetAlterEntryData(), new_view_name);
|
|
378
376
|
}
|
|
379
377
|
|
|
380
378
|
void RenameViewInfo::SerializeAlterView(FieldWriter &writer) const {
|
|
381
379
|
writer.WriteString(new_view_name);
|
|
382
380
|
}
|
|
383
381
|
|
|
384
|
-
unique_ptr<AlterInfo> RenameViewInfo::Deserialize(FieldReader &reader,
|
|
382
|
+
unique_ptr<AlterInfo> RenameViewInfo::Deserialize(FieldReader &reader, AlterEntryData data) {
|
|
385
383
|
auto new_name = reader.ReadRequired<string>();
|
|
386
|
-
return make_unique<RenameViewInfo>(move(
|
|
384
|
+
return make_unique<RenameViewInfo>(move(data), new_name);
|
|
387
385
|
}
|
|
388
386
|
} // namespace duckdb
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp"
|
|
2
|
+
|
|
3
|
+
namespace duckdb {
|
|
4
|
+
|
|
5
|
+
CreateAggregateFunctionInfo::CreateAggregateFunctionInfo(AggregateFunction function)
|
|
6
|
+
: CreateFunctionInfo(CatalogType::AGGREGATE_FUNCTION_ENTRY), functions(function.name) {
|
|
7
|
+
name = function.name;
|
|
8
|
+
functions.AddFunction(move(function));
|
|
9
|
+
internal = true;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
CreateAggregateFunctionInfo::CreateAggregateFunctionInfo(AggregateFunctionSet set)
|
|
13
|
+
: CreateFunctionInfo(CatalogType::AGGREGATE_FUNCTION_ENTRY), functions(move(set)) {
|
|
14
|
+
name = functions.name;
|
|
15
|
+
for (auto &func : functions.functions) {
|
|
16
|
+
func.name = functions.name;
|
|
17
|
+
}
|
|
18
|
+
internal = true;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
unique_ptr<CreateInfo> CreateAggregateFunctionInfo::Copy() const {
|
|
22
|
+
auto result = make_unique<CreateAggregateFunctionInfo>(functions);
|
|
23
|
+
CopyProperties(*result);
|
|
24
|
+
return move(result);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
} // namespace duckdb
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#include "duckdb/parser/parsed_data/create_collation_info.hpp"
|
|
2
|
+
|
|
3
|
+
namespace duckdb {
|
|
4
|
+
|
|
5
|
+
CreateCollationInfo::CreateCollationInfo(string name_p, ScalarFunction function_p, bool combinable_p,
|
|
6
|
+
bool not_required_for_equality_p)
|
|
7
|
+
: CreateInfo(CatalogType::COLLATION_ENTRY), function(move(function_p)), combinable(combinable_p),
|
|
8
|
+
not_required_for_equality(not_required_for_equality_p) {
|
|
9
|
+
this->name = move(name_p);
|
|
10
|
+
internal = true;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
void CreateCollationInfo::SerializeInternal(Serializer &) const {
|
|
14
|
+
throw NotImplementedException("Cannot serialize '%s'", CatalogTypeToString(type));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
unique_ptr<CreateInfo> CreateCollationInfo::Copy() const {
|
|
18
|
+
auto result = make_unique<CreateCollationInfo>(name, function, combinable, not_required_for_equality);
|
|
19
|
+
CopyProperties(*result);
|
|
20
|
+
return move(result);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
} // namespace duckdb
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#include "duckdb/parser/parsed_data/create_copy_function_info.hpp"
|
|
2
|
+
|
|
3
|
+
namespace duckdb {
|
|
4
|
+
|
|
5
|
+
CreateCopyFunctionInfo::CreateCopyFunctionInfo(CopyFunction function_p)
|
|
6
|
+
: CreateInfo(CatalogType::COPY_FUNCTION_ENTRY), function(move(function_p)) {
|
|
7
|
+
this->name = function.name;
|
|
8
|
+
internal = true;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
void CreateCopyFunctionInfo::SerializeInternal(Serializer &) const {
|
|
12
|
+
throw NotImplementedException("Cannot serialize '%s'", CatalogTypeToString(type));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
unique_ptr<CreateInfo> CreateCopyFunctionInfo::Copy() const {
|
|
16
|
+
auto result = make_unique<CreateCopyFunctionInfo>(function);
|
|
17
|
+
CopyProperties(*result);
|
|
18
|
+
return move(result);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
} // namespace duckdb
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
namespace duckdb {
|
|
10
10
|
void CreateInfo::DeserializeBase(Deserializer &deserializer) {
|
|
11
|
+
this->catalog = deserializer.Read<string>();
|
|
11
12
|
this->schema = deserializer.Read<string>();
|
|
12
13
|
this->on_conflict = deserializer.Read<OnCreateConflict>();
|
|
13
14
|
this->temporary = deserializer.Read<bool>();
|
|
@@ -17,6 +18,7 @@ void CreateInfo::DeserializeBase(Deserializer &deserializer) {
|
|
|
17
18
|
|
|
18
19
|
void CreateInfo::Serialize(Serializer &serializer) const {
|
|
19
20
|
serializer.Write(type);
|
|
21
|
+
serializer.WriteString(catalog);
|
|
20
22
|
serializer.WriteString(schema);
|
|
21
23
|
serializer.Write(on_conflict);
|
|
22
24
|
serializer.Write(temporary);
|
|
@@ -47,6 +49,7 @@ unique_ptr<CreateInfo> CreateInfo::Deserialize(Deserializer &source, PlanDeseria
|
|
|
47
49
|
|
|
48
50
|
void CreateInfo::CopyProperties(CreateInfo &other) const {
|
|
49
51
|
other.type = type;
|
|
52
|
+
other.catalog = catalog;
|
|
50
53
|
other.schema = schema;
|
|
51
54
|
other.on_conflict = on_conflict;
|
|
52
55
|
other.temporary = temporary;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#include "duckdb/parser/parsed_data/create_pragma_function_info.hpp"
|
|
2
|
+
|
|
3
|
+
namespace duckdb {
|
|
4
|
+
|
|
5
|
+
CreatePragmaFunctionInfo::CreatePragmaFunctionInfo(PragmaFunction function)
|
|
6
|
+
: CreateFunctionInfo(CatalogType::PRAGMA_FUNCTION_ENTRY), functions(function.name) {
|
|
7
|
+
name = function.name;
|
|
8
|
+
functions.AddFunction(move(function));
|
|
9
|
+
internal = true;
|
|
10
|
+
}
|
|
11
|
+
CreatePragmaFunctionInfo::CreatePragmaFunctionInfo(string name, PragmaFunctionSet functions_p)
|
|
12
|
+
: CreateFunctionInfo(CatalogType::PRAGMA_FUNCTION_ENTRY), functions(move(functions_p)) {
|
|
13
|
+
this->name = move(name);
|
|
14
|
+
internal = true;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
unique_ptr<CreateInfo> CreatePragmaFunctionInfo::Copy() const {
|
|
18
|
+
auto result = make_unique<CreatePragmaFunctionInfo>(functions.name, functions);
|
|
19
|
+
CopyProperties(*result);
|
|
20
|
+
return move(result);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
} // namespace duckdb
|
|
@@ -7,6 +7,7 @@ CreateScalarFunctionInfo::CreateScalarFunctionInfo(ScalarFunction function)
|
|
|
7
7
|
: CreateFunctionInfo(CatalogType::SCALAR_FUNCTION_ENTRY), functions(function.name) {
|
|
8
8
|
name = function.name;
|
|
9
9
|
functions.AddFunction(move(function));
|
|
10
|
+
internal = true;
|
|
10
11
|
}
|
|
11
12
|
CreateScalarFunctionInfo::CreateScalarFunctionInfo(ScalarFunctionSet set)
|
|
12
13
|
: CreateFunctionInfo(CatalogType::SCALAR_FUNCTION_ENTRY), functions(move(set)) {
|
|
@@ -14,6 +15,7 @@ CreateScalarFunctionInfo::CreateScalarFunctionInfo(ScalarFunctionSet set)
|
|
|
14
15
|
for (auto &func : functions.functions) {
|
|
15
16
|
func.name = functions.name;
|
|
16
17
|
}
|
|
18
|
+
internal = true;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
unique_ptr<CreateInfo> CreateScalarFunctionInfo::Copy() const {
|
|
@@ -25,7 +27,7 @@ unique_ptr<CreateInfo> CreateScalarFunctionInfo::Copy() const {
|
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
unique_ptr<AlterInfo> CreateScalarFunctionInfo::GetAlterInfo() const {
|
|
28
|
-
return make_unique_base<AlterInfo, AddFunctionOverloadInfo>(schema, name, true, functions);
|
|
30
|
+
return make_unique_base<AlterInfo, AddFunctionOverloadInfo>(AlterEntryData(catalog, schema, name, true), functions);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
} // namespace duckdb
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#include "duckdb/parser/parsed_data/create_table_function_info.hpp"
|
|
2
|
+
|
|
3
|
+
namespace duckdb {
|
|
4
|
+
|
|
5
|
+
CreateTableFunctionInfo::CreateTableFunctionInfo(TableFunction function)
|
|
6
|
+
: CreateFunctionInfo(CatalogType::TABLE_FUNCTION_ENTRY), functions(function.name) {
|
|
7
|
+
name = function.name;
|
|
8
|
+
functions.AddFunction(move(function));
|
|
9
|
+
internal = true;
|
|
10
|
+
}
|
|
11
|
+
CreateTableFunctionInfo::CreateTableFunctionInfo(TableFunctionSet set)
|
|
12
|
+
: CreateFunctionInfo(CatalogType::TABLE_FUNCTION_ENTRY), functions(move(set)) {
|
|
13
|
+
name = functions.name;
|
|
14
|
+
for (auto &func : functions.functions) {
|
|
15
|
+
func.name = functions.name;
|
|
16
|
+
}
|
|
17
|
+
internal = true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
unique_ptr<CreateInfo> CreateTableFunctionInfo::Copy() const {
|
|
21
|
+
TableFunctionSet set(name);
|
|
22
|
+
set.functions = functions.functions;
|
|
23
|
+
auto result = make_unique<CreateTableFunctionInfo>(move(set));
|
|
24
|
+
CopyProperties(*result);
|
|
25
|
+
return move(result);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
} // namespace duckdb
|