| 623 | } |
| 624 | |
| 625 | void DatabaseCatalog::attachDatabase(const String & database_name, const DatabasePtr & database) |
| 626 | { |
| 627 | std::lock_guard lock{databases_mutex}; |
| 628 | assertDatabaseDoesntExistUnlocked(database_name); |
| 629 | databases.emplace(database_name, database); |
| 630 | if (!database->isRemoteDatabase()) |
| 631 | databases_without_remote.emplace(database_name, database); |
| 632 | |
| 633 | NOEXCEPT_SCOPE({ |
| 634 | UUID db_uuid = database->getUUID(); |
| 635 | if (db_uuid != UUIDHelpers::Nil) |
| 636 | addUUIDMapping(db_uuid, database, nullptr); |
| 637 | }); |
| 638 | } |
| 639 | |
| 640 | |
| 641 | DatabasePtr DatabaseCatalog::detachDatabase(ContextPtr local_context, const String & database_name, bool drop, bool check_empty) |