duckdb 0.6.2-dev772.0 → 0.6.2-dev889.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/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/connection.cpp +1 -1
- 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
|
@@ -24,6 +24,7 @@ struct FunctionLocalState {
|
|
|
24
24
|
|
|
25
25
|
class Binder;
|
|
26
26
|
class BoundFunctionExpression;
|
|
27
|
+
class DependencyList;
|
|
27
28
|
class ScalarFunctionCatalogEntry;
|
|
28
29
|
|
|
29
30
|
struct FunctionStatisticsInput {
|
|
@@ -48,7 +49,7 @@ typedef unique_ptr<FunctionLocalState> (*init_local_state_t)(ExpressionState &st
|
|
|
48
49
|
FunctionData *bind_data);
|
|
49
50
|
typedef unique_ptr<BaseStatistics> (*function_statistics_t)(ClientContext &context, FunctionStatisticsInput &input);
|
|
50
51
|
//! Adds the dependencies of this BoundFunctionExpression to the set of dependencies
|
|
51
|
-
typedef void (*dependency_function_t)(BoundFunctionExpression &expr,
|
|
52
|
+
typedef void (*dependency_function_t)(BoundFunctionExpression &expr, DependencyList &dependencies);
|
|
52
53
|
|
|
53
54
|
typedef void (*function_serialize_t)(FieldWriter &writer, const FunctionData *bind_data,
|
|
54
55
|
const ScalarFunction &function);
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "duckdb/common/pair.hpp"
|
|
16
16
|
#include "duckdb/common/thread.hpp"
|
|
17
17
|
#include "duckdb/common/unordered_map.hpp"
|
|
18
|
+
#include "duckdb/function/built_in_functions.hpp"
|
|
18
19
|
|
|
19
20
|
namespace duckdb {
|
|
20
21
|
//===--------------------------------------------------------------------===//
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "duckdb/execution/operator/persistent/parallel_csv_reader.hpp"
|
|
16
16
|
#include "duckdb/execution/operator/persistent/csv_file_handle.hpp"
|
|
17
17
|
#include "duckdb/execution/operator/persistent/csv_buffer.hpp"
|
|
18
|
+
#include "duckdb/function/built_in_functions.hpp"
|
|
18
19
|
|
|
19
20
|
namespace duckdb {
|
|
20
21
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#pragma once
|
|
10
10
|
|
|
11
11
|
#include "duckdb/function/table_function.hpp"
|
|
12
|
+
#include "duckdb/function/built_in_functions.hpp"
|
|
12
13
|
|
|
13
14
|
namespace duckdb {
|
|
14
15
|
|
|
@@ -16,10 +17,6 @@ struct PragmaCollations {
|
|
|
16
17
|
static void RegisterFunction(BuiltinFunctions &set);
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
struct PragmaFunctionPragma {
|
|
20
|
-
static void RegisterFunction(BuiltinFunctions &set);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
20
|
struct PragmaTableInfo {
|
|
24
21
|
static void RegisterFunction(BuiltinFunctions &set);
|
|
25
22
|
};
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
namespace duckdb {
|
|
19
19
|
|
|
20
20
|
class BaseStatistics;
|
|
21
|
+
class DependencyList;
|
|
21
22
|
class LogicalGet;
|
|
22
23
|
class TableFilterSet;
|
|
23
24
|
|
|
@@ -156,7 +157,7 @@ typedef BindInfo (*table_function_get_bind_info)(const FunctionData *bind_data);
|
|
|
156
157
|
|
|
157
158
|
typedef double (*table_function_progress_t)(ClientContext &context, const FunctionData *bind_data,
|
|
158
159
|
const GlobalTableFunctionState *global_state);
|
|
159
|
-
typedef void (*table_function_dependency_t)(
|
|
160
|
+
typedef void (*table_function_dependency_t)(DependencyList &dependencies, const FunctionData *bind_data);
|
|
160
161
|
typedef unique_ptr<NodeStatistics> (*table_function_cardinality_t)(ClientContext &context,
|
|
161
162
|
const FunctionData *bind_data);
|
|
162
163
|
typedef void (*table_function_pushdown_complex_filter_t)(ClientContext &context, LogicalGet &get,
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/main/attached_database.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/common/common.hpp"
|
|
12
|
+
#include "duckdb/common/case_insensitive_map.hpp"
|
|
13
|
+
#include "duckdb/common/mutex.hpp"
|
|
14
|
+
#include "duckdb/main/config.hpp"
|
|
15
|
+
#include "duckdb/catalog/catalog_entry.hpp"
|
|
16
|
+
|
|
17
|
+
namespace duckdb {
|
|
18
|
+
class Catalog;
|
|
19
|
+
class DatabaseInstance;
|
|
20
|
+
class StorageManager;
|
|
21
|
+
class TransactionManager;
|
|
22
|
+
|
|
23
|
+
enum class AttachedDatabaseType {
|
|
24
|
+
READ_WRITE_DATABASE,
|
|
25
|
+
READ_ONLY_DATABASE,
|
|
26
|
+
SYSTEM_DATABASE,
|
|
27
|
+
TEMP_DATABASE,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
//! The AttachedDatabase represents an attached database instance
|
|
31
|
+
class AttachedDatabase : public CatalogEntry {
|
|
32
|
+
public:
|
|
33
|
+
//! Create the built-in system attached database (without storage)
|
|
34
|
+
explicit AttachedDatabase(DatabaseInstance &db, AttachedDatabaseType type = AttachedDatabaseType::SYSTEM_DATABASE);
|
|
35
|
+
//! Create an attached database instance with the specified name and storage
|
|
36
|
+
AttachedDatabase(DatabaseInstance &db, Catalog &catalog, string name, string file_path, AccessMode access_mode);
|
|
37
|
+
~AttachedDatabase();
|
|
38
|
+
|
|
39
|
+
void Initialize();
|
|
40
|
+
|
|
41
|
+
StorageManager &GetStorageManager();
|
|
42
|
+
Catalog &GetCatalog();
|
|
43
|
+
TransactionManager &GetTransactionManager();
|
|
44
|
+
DatabaseInstance &GetDatabase() {
|
|
45
|
+
return db;
|
|
46
|
+
}
|
|
47
|
+
const string &GetName() const {
|
|
48
|
+
return name;
|
|
49
|
+
}
|
|
50
|
+
bool IsSystem() const;
|
|
51
|
+
bool IsTemporary() const;
|
|
52
|
+
bool IsReadOnly() const;
|
|
53
|
+
|
|
54
|
+
static string ExtractDatabaseName(const string &dbpath);
|
|
55
|
+
|
|
56
|
+
private:
|
|
57
|
+
DatabaseInstance &db;
|
|
58
|
+
unique_ptr<StorageManager> storage;
|
|
59
|
+
unique_ptr<Catalog> catalog;
|
|
60
|
+
unique_ptr<TransactionManager> transaction_manager;
|
|
61
|
+
AttachedDatabaseType type;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
} // namespace duckdb
|
|
@@ -72,8 +72,6 @@ public:
|
|
|
72
72
|
|
|
73
73
|
//! The database that this client is connected to
|
|
74
74
|
shared_ptr<DatabaseInstance> db;
|
|
75
|
-
//! Data for the currently running transaction
|
|
76
|
-
TransactionContext transaction;
|
|
77
75
|
//! Whether or not the query is interrupted
|
|
78
76
|
atomic<bool> interrupted;
|
|
79
77
|
//! External Objects (e.g., Python objects) that views depend of
|
|
@@ -84,9 +82,11 @@ public:
|
|
|
84
82
|
ClientConfig config;
|
|
85
83
|
//! The set of client-specific data
|
|
86
84
|
unique_ptr<ClientData> client_data;
|
|
85
|
+
//! Data for the currently running transaction
|
|
86
|
+
TransactionContext transaction;
|
|
87
87
|
|
|
88
88
|
public:
|
|
89
|
-
DUCKDB_API
|
|
89
|
+
DUCKDB_API MetaTransaction &ActiveTransaction() {
|
|
90
90
|
return transaction.ActiveTransaction();
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "duckdb/common/atomic.hpp"
|
|
16
16
|
|
|
17
17
|
namespace duckdb {
|
|
18
|
+
class AttachedDatabase;
|
|
18
19
|
class BufferedFileWriter;
|
|
19
20
|
class ClientContext;
|
|
20
21
|
class CatalogSearchPath;
|
|
@@ -36,7 +37,7 @@ struct ClientData {
|
|
|
36
37
|
unique_ptr<QueryProfilerHistory> query_profiler_history;
|
|
37
38
|
|
|
38
39
|
//! The set of temporary objects that belong to this client
|
|
39
|
-
shared_ptr<
|
|
40
|
+
shared_ptr<AttachedDatabase> temporary_objects;
|
|
40
41
|
//! The set of bound prepared statements that belong to this client
|
|
41
42
|
unordered_map<string, shared_ptr<PreparedStatementData>> prepared_statements;
|
|
42
43
|
|
|
@@ -142,6 +142,8 @@ struct DBConfigOptions {
|
|
|
142
142
|
bool enable_fsst_vectors = false;
|
|
143
143
|
//! Experimental parallel CSV reader
|
|
144
144
|
bool experimental_parallel_csv_reader = false;
|
|
145
|
+
//! Start transactions immediately in all attached databases - instead of lazily when a database is referenced
|
|
146
|
+
bool immediate_transaction_mode = false;
|
|
145
147
|
|
|
146
148
|
bool operator==(const DBConfigOptions &other) const;
|
|
147
149
|
};
|
|
@@ -185,6 +187,7 @@ public:
|
|
|
185
187
|
public:
|
|
186
188
|
DUCKDB_API static DBConfig &GetConfig(ClientContext &context);
|
|
187
189
|
DUCKDB_API static DBConfig &GetConfig(DatabaseInstance &db);
|
|
190
|
+
DUCKDB_API static DBConfig &Get(AttachedDatabase &db);
|
|
188
191
|
DUCKDB_API static const DBConfig &GetConfig(const ClientContext &context);
|
|
189
192
|
DUCKDB_API static const DBConfig &GetConfig(const DatabaseInstance &db);
|
|
190
193
|
DUCKDB_API static vector<ConfigurationOption> GetOptions();
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
#include "duckdb/main/extension.hpp"
|
|
15
15
|
|
|
16
16
|
namespace duckdb {
|
|
17
|
+
class BufferManager;
|
|
18
|
+
class DatabaseManager;
|
|
17
19
|
class StorageManager;
|
|
18
20
|
class Catalog;
|
|
19
21
|
class TransactionManager;
|
|
@@ -32,10 +34,9 @@ public:
|
|
|
32
34
|
DBConfig config;
|
|
33
35
|
|
|
34
36
|
public:
|
|
35
|
-
DUCKDB_API
|
|
36
|
-
DUCKDB_API
|
|
37
|
+
DUCKDB_API BufferManager &GetBufferManager();
|
|
38
|
+
DUCKDB_API DatabaseManager &GetDatabaseManager();
|
|
37
39
|
DUCKDB_API FileSystem &GetFileSystem();
|
|
38
|
-
DUCKDB_API TransactionManager &GetTransactionManager();
|
|
39
40
|
DUCKDB_API TaskScheduler &GetScheduler();
|
|
40
41
|
DUCKDB_API ObjectCache &GetObjectCache();
|
|
41
42
|
DUCKDB_API ConnectionManager &GetConnectionManager();
|
|
@@ -56,9 +57,8 @@ private:
|
|
|
56
57
|
void Configure(DBConfig &config);
|
|
57
58
|
|
|
58
59
|
private:
|
|
59
|
-
unique_ptr<
|
|
60
|
-
unique_ptr<
|
|
61
|
-
unique_ptr<TransactionManager> transaction_manager;
|
|
60
|
+
unique_ptr<BufferManager> buffer_manager;
|
|
61
|
+
unique_ptr<DatabaseManager> db_manager;
|
|
62
62
|
unique_ptr<TaskScheduler> scheduler;
|
|
63
63
|
unique_ptr<ObjectCache> object_cache;
|
|
64
64
|
unique_ptr<ConnectionManager> connection_manager;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/main/database_manager.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/common/common.hpp"
|
|
12
|
+
#include "duckdb/common/case_insensitive_map.hpp"
|
|
13
|
+
#include "duckdb/common/mutex.hpp"
|
|
14
|
+
#include "duckdb/common/atomic.hpp"
|
|
15
|
+
|
|
16
|
+
namespace duckdb {
|
|
17
|
+
class AttachedDatabase;
|
|
18
|
+
class Catalog;
|
|
19
|
+
class CatalogSet;
|
|
20
|
+
class ClientContext;
|
|
21
|
+
class DatabaseInstance;
|
|
22
|
+
|
|
23
|
+
//! The DatabaseManager is a class that sits at the root of all attached databases
|
|
24
|
+
class DatabaseManager {
|
|
25
|
+
friend class Catalog;
|
|
26
|
+
|
|
27
|
+
public:
|
|
28
|
+
explicit DatabaseManager(DatabaseInstance &db);
|
|
29
|
+
~DatabaseManager();
|
|
30
|
+
|
|
31
|
+
public:
|
|
32
|
+
static DatabaseManager &Get(DatabaseInstance &db);
|
|
33
|
+
static DatabaseManager &Get(ClientContext &db);
|
|
34
|
+
static DatabaseManager &Get(AttachedDatabase &db);
|
|
35
|
+
|
|
36
|
+
void InitializeSystemCatalog();
|
|
37
|
+
//! Get an attached database with the given name
|
|
38
|
+
AttachedDatabase *GetDatabase(ClientContext &context, const string &name);
|
|
39
|
+
//! Add a new attached database to the database manager
|
|
40
|
+
void AddDatabase(ClientContext &context, unique_ptr<AttachedDatabase> db);
|
|
41
|
+
void DetachDatabase(ClientContext &context, const string &name, bool if_exists);
|
|
42
|
+
//! Returns a reference to the system catalog
|
|
43
|
+
Catalog &GetSystemCatalog();
|
|
44
|
+
static const string &GetDefaultDatabase(ClientContext &context);
|
|
45
|
+
|
|
46
|
+
AttachedDatabase *GetDatabaseFromPath(ClientContext &context, const string &path);
|
|
47
|
+
vector<AttachedDatabase *> GetDatabases(ClientContext &context);
|
|
48
|
+
|
|
49
|
+
transaction_t GetNewQueryNumber() {
|
|
50
|
+
return current_query_number++;
|
|
51
|
+
}
|
|
52
|
+
transaction_t ActiveQueryNumber() const {
|
|
53
|
+
return current_query_number;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
private:
|
|
57
|
+
//! The system database is a special database that holds system entries (e.g. functions)
|
|
58
|
+
unique_ptr<AttachedDatabase> system;
|
|
59
|
+
//! The set of attached databases
|
|
60
|
+
unique_ptr<CatalogSet> databases;
|
|
61
|
+
//! The global catalog version, incremented whenever anything changes in the catalog
|
|
62
|
+
atomic<idx_t> catalog_version;
|
|
63
|
+
//! The current query number
|
|
64
|
+
atomic<transaction_t> current_query_number;
|
|
65
|
+
//! The current default database
|
|
66
|
+
string default_database;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
} // namespace duckdb
|
|
@@ -262,6 +262,16 @@ struct LogQueryPathSetting {
|
|
|
262
262
|
static Value GetSetting(ClientContext &context);
|
|
263
263
|
};
|
|
264
264
|
|
|
265
|
+
struct ImmediateTransactionModeSetting {
|
|
266
|
+
static constexpr const char *Name = "immediate_transaction_mode";
|
|
267
|
+
static constexpr const char *Description =
|
|
268
|
+
"Whether transactions should be started lazily when needed, or immediately when BEGIN TRANSACTION is called";
|
|
269
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN;
|
|
270
|
+
static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter);
|
|
271
|
+
static void ResetGlobal(DatabaseInstance *db, DBConfig &config);
|
|
272
|
+
static Value GetSetting(ClientContext &context);
|
|
273
|
+
};
|
|
274
|
+
|
|
265
275
|
struct MaximumExpressionDepthSetting {
|
|
266
276
|
static constexpr const char *Name = "max_expression_depth";
|
|
267
277
|
static constexpr const char *Description =
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
|
|
15
15
|
namespace duckdb {
|
|
16
16
|
class DatabaseInstance;
|
|
17
|
-
class
|
|
17
|
+
class MetaTransaction;
|
|
18
18
|
|
|
19
19
|
class ValidChecker {
|
|
20
20
|
public:
|
|
21
21
|
ValidChecker();
|
|
22
22
|
|
|
23
23
|
DUCKDB_API static ValidChecker &Get(DatabaseInstance &db);
|
|
24
|
-
DUCKDB_API static ValidChecker &Get(
|
|
24
|
+
DUCKDB_API static ValidChecker &Get(MetaTransaction &transaction);
|
|
25
25
|
|
|
26
26
|
DUCKDB_API void Invalidate(string error);
|
|
27
27
|
DUCKDB_API bool IsInvalidated();
|
|
@@ -16,7 +16,7 @@ namespace duckdb {
|
|
|
16
16
|
//! Represents a function call
|
|
17
17
|
class FunctionExpression : public ParsedExpression {
|
|
18
18
|
public:
|
|
19
|
-
DUCKDB_API FunctionExpression(string schema_name, const string &function_name,
|
|
19
|
+
DUCKDB_API FunctionExpression(string catalog_name, string schema_name, const string &function_name,
|
|
20
20
|
vector<unique_ptr<ParsedExpression>> children,
|
|
21
21
|
unique_ptr<ParsedExpression> filter = nullptr,
|
|
22
22
|
unique_ptr<OrderModifier> order_bys = nullptr, bool distinct = false,
|
|
@@ -26,6 +26,8 @@ public:
|
|
|
26
26
|
unique_ptr<OrderModifier> order_bys = nullptr, bool distinct = false,
|
|
27
27
|
bool is_operator = false, bool export_state = false);
|
|
28
28
|
|
|
29
|
+
//! Catalog of the function
|
|
30
|
+
string catalog;
|
|
29
31
|
//! Schema of the function
|
|
30
32
|
string schema;
|
|
31
33
|
//! Function name
|
|
@@ -29,8 +29,10 @@ enum class WindowBoundary : uint8_t {
|
|
|
29
29
|
//! they inherit from them.
|
|
30
30
|
class WindowExpression : public ParsedExpression {
|
|
31
31
|
public:
|
|
32
|
-
WindowExpression(ExpressionType type, string schema_name, const string &function_name);
|
|
32
|
+
WindowExpression(ExpressionType type, string catalog_name, string schema_name, const string &function_name);
|
|
33
33
|
|
|
34
|
+
//! Catalog of the aggregate function
|
|
35
|
+
string catalog;
|
|
34
36
|
//! Schema of the aggregate function
|
|
35
37
|
string schema;
|
|
36
38
|
//! Name of the aggregate function
|
|
@@ -20,7 +20,7 @@ namespace duckdb {
|
|
|
20
20
|
enum class AlterFunctionType : uint8_t { INVALID = 0, ADD_FUNCTION_OVERLOADS = 1 };
|
|
21
21
|
|
|
22
22
|
struct AlterFunctionInfo : public AlterInfo {
|
|
23
|
-
AlterFunctionInfo(AlterFunctionType type,
|
|
23
|
+
AlterFunctionInfo(AlterFunctionType type, AlterEntryData data);
|
|
24
24
|
virtual ~AlterFunctionInfo() override;
|
|
25
25
|
|
|
26
26
|
AlterFunctionType alter_function_type;
|
|
@@ -35,7 +35,7 @@ public:
|
|
|
35
35
|
// AddFunctionOverloadInfo
|
|
36
36
|
//===--------------------------------------------------------------------===//
|
|
37
37
|
struct AddFunctionOverloadInfo : public AlterFunctionInfo {
|
|
38
|
-
AddFunctionOverloadInfo(
|
|
38
|
+
AddFunctionOverloadInfo(AlterEntryData data, ScalarFunctionSet new_overloads);
|
|
39
39
|
~AddFunctionOverloadInfo() override;
|
|
40
40
|
|
|
41
41
|
ScalarFunctionSet new_overloads;
|
|
@@ -23,13 +23,28 @@ enum class AlterType : uint8_t {
|
|
|
23
23
|
ALTER_FUNCTION = 5
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
+
struct AlterEntryData {
|
|
27
|
+
AlterEntryData() {
|
|
28
|
+
}
|
|
29
|
+
AlterEntryData(string catalog_p, string schema_p, string name_p, bool if_exists)
|
|
30
|
+
: catalog(move(catalog_p)), schema(move(schema_p)), name(move(name_p)), if_exists(if_exists) {
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
string catalog;
|
|
34
|
+
string schema;
|
|
35
|
+
string name;
|
|
36
|
+
bool if_exists;
|
|
37
|
+
};
|
|
38
|
+
|
|
26
39
|
struct AlterInfo : public ParseInfo {
|
|
27
|
-
AlterInfo(AlterType type, string schema, string name, bool if_exists);
|
|
40
|
+
AlterInfo(AlterType type, string catalog, string schema, string name, bool if_exists);
|
|
28
41
|
virtual ~AlterInfo() override;
|
|
29
42
|
|
|
30
43
|
AlterType type;
|
|
31
44
|
//! if exists
|
|
32
45
|
bool if_exists;
|
|
46
|
+
//! Catalog name to alter
|
|
47
|
+
string catalog;
|
|
33
48
|
//! Schema name to alter
|
|
34
49
|
string schema;
|
|
35
50
|
//! Entry name to alter
|
|
@@ -43,6 +58,8 @@ public:
|
|
|
43
58
|
void Serialize(Serializer &serializer) const;
|
|
44
59
|
virtual void Serialize(FieldWriter &writer) const = 0;
|
|
45
60
|
static unique_ptr<AlterInfo> Deserialize(Deserializer &source);
|
|
61
|
+
|
|
62
|
+
AlterEntryData GetAlterEntryData() const;
|
|
46
63
|
};
|
|
47
64
|
|
|
48
65
|
} // namespace duckdb
|