Skip to content

Commit 394f88a

Browse files
committed
Lock on table
1 parent 0be8007 commit 394f88a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/Storages/StorageMerge.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
#include <Processors/QueryPlan/ExpressionStep.h>
4242
#include <Processors/QueryPlan/QueryPlan.h>
4343
#include <Processors/QueryPlan/ReadFromMergeTree.h>
44+
#include <Processors/Sinks/SinkToStorage.h>
4445
#include <Processors/Sources/NullSource.h>
4546
#include <Processors/Transforms/FilterTransform.h>
4647
#include <Processors/Transforms/MaterializingTransform.h>
@@ -1803,7 +1804,12 @@ SinkToStoragePtr StorageMerge::write(
18031804

18041805
auto database = DatabaseCatalog::instance().getDatabase(table_to_write->database);
18051806
auto table = database->getTable(table_to_write->table, context_);
1806-
return table->write(query, metadata_snapshot, context_, async_insert);
1807+
auto table_lock = table->lockForShare(
1808+
context_->getInitialQueryId(),
1809+
context_->getSettingsRef()[Setting::lock_acquire_timeout]);
1810+
auto sink = table->write(query, metadata_snapshot, context_, async_insert);
1811+
sink->addTableLock(table_lock);
1812+
return sink;
18071813
}
18081814

18091815
void registerStorageMerge(StorageFactory & factory)

0 commit comments

Comments
 (0)