2020#include " iceberg/catalog/memory/in_memory_catalog.h"
2121
2222#include < algorithm>
23- #include < iterator> // IWYU pragma: keep
23+ #include < iterator>
24+ #include < mutex>
2425
25- #include " iceberg/exception.h"
2626#include " iceberg/table.h"
2727#include " iceberg/table_metadata.h"
2828#include " iceberg/util/macros.h"
@@ -337,42 +337,42 @@ std::string_view InMemoryCatalog::name() const { return catalog_name_; }
337337
338338Status InMemoryCatalog::CreateNamespace (
339339 const Namespace& ns, const std::unordered_map<std::string, std::string>& properties) {
340- std::unique_lock lock (mutex_);
340+ std::lock_guard guard (mutex_);
341341 return root_namespace_->CreateNamespace (ns, properties);
342342}
343343
344344Result<std::unordered_map<std::string, std::string>>
345345InMemoryCatalog::GetNamespaceProperties (const Namespace& ns) const {
346- std::unique_lock lock (mutex_);
346+ std::lock_guard guard (mutex_);
347347 return root_namespace_->GetProperties (ns);
348348}
349349
350350Result<std::vector<Namespace>> InMemoryCatalog::ListNamespaces (
351351 const Namespace& ns) const {
352- std::unique_lock lock (mutex_);
352+ std::lock_guard guard (mutex_);
353353 return root_namespace_->ListNamespaces (ns);
354354}
355355
356356Status InMemoryCatalog::DropNamespace (const Namespace& ns) {
357- std::unique_lock lock (mutex_);
357+ std::lock_guard guard (mutex_);
358358 return root_namespace_->DropNamespace (ns);
359359}
360360
361361Result<bool > InMemoryCatalog::NamespaceExists (const Namespace& ns) const {
362- std::unique_lock lock (mutex_);
362+ std::lock_guard guard (mutex_);
363363 return root_namespace_->NamespaceExists (ns);
364364}
365365
366366Status InMemoryCatalog::UpdateNamespaceProperties (
367367 const Namespace& ns, const std::unordered_map<std::string, std::string>& updates,
368368 const std::unordered_set<std::string>& removals) {
369- std::unique_lock lock (mutex_);
369+ std::lock_guard guard (mutex_);
370370 return root_namespace_->UpdateNamespaceProperties (ns, updates, removals);
371371}
372372
373373Result<std::vector<TableIdentifier>> InMemoryCatalog::ListTables (
374374 const Namespace& ns) const {
375- std::unique_lock lock (mutex_);
375+ std::lock_guard guard (mutex_);
376376 const auto & table_names = root_namespace_->ListTables (ns);
377377 ICEBERG_RETURN_UNEXPECTED (table_names);
378378 std::vector<TableIdentifier> table_idents;
@@ -405,12 +405,12 @@ Result<std::shared_ptr<Transaction>> InMemoryCatalog::StageCreateTable(
405405}
406406
407407Result<bool > InMemoryCatalog::TableExists (const TableIdentifier& identifier) const {
408- std::unique_lock lock (mutex_);
408+ std::lock_guard guard (mutex_);
409409 return root_namespace_->TableExists (identifier);
410410}
411411
412412Status InMemoryCatalog::DropTable (const TableIdentifier& identifier, bool purge) {
413- std::unique_lock lock (mutex_);
413+ std::lock_guard guard (mutex_);
414414 // TODO(Guotao): Delete all metadata files if purge is true.
415415 return root_namespace_->UnregisterTable (identifier);
416416}
@@ -428,7 +428,7 @@ Result<std::unique_ptr<Table>> InMemoryCatalog::LoadTable(
428428
429429 Result<std::string> metadata_location;
430430 {
431- std::unique_lock lock (mutex_);
431+ std::lock_guard guard (mutex_);
432432 ICEBERG_ASSIGN_OR_RAISE (metadata_location,
433433 root_namespace_->GetTableMetadataLocation (identifier));
434434 }
@@ -443,7 +443,7 @@ Result<std::unique_ptr<Table>> InMemoryCatalog::LoadTable(
443443
444444Result<std::shared_ptr<Table>> InMemoryCatalog::RegisterTable (
445445 const TableIdentifier& identifier, const std::string& metadata_file_location) {
446- std::unique_lock lock (mutex_);
446+ std::lock_guard guard (mutex_);
447447 if (!root_namespace_->NamespaceExists (identifier.ns )) {
448448 return NoSuchNamespace (" table namespace does not exist." );
449449 }
0 commit comments