IClickHouseBulkDbSetting
This interface extends IDbSetting with a ClickHouse bulk-operations-specific setting. It ships in RepoDb.ClickHouse.BulkOperations — not the core RepoDb.ClickHouse package — and is implemented by ClickHouseBulkDbSetting.
IsWaitForMutationsEnabledis only consulted byBulkMerge/BulkUpdate/BulkDeletein RepoDb.ClickHouse.BulkOperations; the plainUpdate/UpdateAll/Delete/DeleteAlloperations never read it.
Properties
Below is the list of properties, in addition to the ones inherited from IDbSetting.
| Name | Description |
|---|---|
| IsWaitForMutationsEnabled | Gets or sets a value indicating whether BulkMerge/BulkUpdate/BulkDelete (from RepoDb.ClickHouse.BulkOperations) block until their ALTER TABLE mutation completes. Has no effect on the plain Update/UpdateAll/Delete/DeleteAll operations. |
The internal check that consults this setting is written against the concrete ClickHouseBulkDbSetting type, not this interface — subclass ClickHouseBulkDbSetting rather than implementing this interface on an unrelated class if you need it honored.
How to Implement?
Subclass ClickHouseBulkDbSetting itself, rather than implementing this interface from scratch.
public class MyClickHouseBulkDbSetting : ClickHouseBulkDbSetting
{
public MyClickHouseBulkDbSetting()
{
IsWaitForMutationsEnabled = true;
}
}
Usability
Pass it to UseClickHouse(), or map it directly against ClickHouseConnection via DbSettingMapper.
GlobalConfiguration
.Setup()
.UseClickHouse(new MyClickHouseBulkDbSetting());
DbSettingMapper.Add(typeof(ClickHouseConnection), new MyClickHouseBulkDbSetting(), true);