| 4649 | } |
| 4650 | |
| 4651 | StorageID Context::tryResolveStorageID(StorageID storage_id, StorageNamespace where) const |
| 4652 | { |
| 4653 | if (storage_id.uuid != UUIDHelpers::Nil) |
| 4654 | return storage_id; |
| 4655 | |
| 4656 | StorageID resolved = StorageID::createEmpty(); |
| 4657 | { |
| 4658 | auto lock = getLock(); // checked |
| 4659 | resolved = resolveStorageIDImpl(std::move(storage_id), where, nullptr); |
| 4660 | } |
| 4661 | if (resolved && !resolved.hasUUID() && resolved.database_name != DatabaseCatalog::TEMPORARY_DATABASE) |
| 4662 | { |
| 4663 | auto db = DatabaseCatalog::instance().tryGetDatabase(resolved.database_name, shared_from_this()); |
| 4664 | if (db) |
| 4665 | resolved.uuid = db->tryGetTableUUID(resolved.table_name); |
| 4666 | } |
| 4667 | return resolved; |
| 4668 | } |
| 4669 | |
| 4670 | // TODO(renming) |
| 4671 | // table -> first check in temporary table, then resolve as current_catalog.current_database.table |
no test coverage detected