ClickHouse
This page contains the latest information of the releases of RepoDb.ClickHouse library.
View the NuGet package here or download it directly here.
RepoDb.ClickHouse (v1.17.0-alpha1)
Released: October 1, 2026
- Enhancement: Added the property handlers ClickHouseDecimalToDecimalPropertyHandler, ClickHouseDecimalToNullableDecimalPropertyHandler and ClickHouseDecimalToStringPropertyHandler, which map the
Decimal32,Decimal64,Decimal128andDecimal256types into adecimal, adecimal?and astringproperty. #1342 - Enhancement: Added the property handler ClickHouseFixedStringToStringPropertyHandler, which maps the
FixedString(N)type into astringproperty without the trailingNULpadding. #1342 - The property handlers of the
RepoDbcore package that target the ClickHouse types: BigIntegerToUInt128PropertyHandler and BigIntegerToNullableUInt128PropertyHandler (UInt128). - Adopted the Roslyn and Meziantou static code analyzers across the codebase and applied the resulting fixes — including
ConfigureAwait(false)on async calls,ArgumentNullExceptionoverNullReferenceException, and other code-quality corrections. #1328 #1331 - Updated the NuGet package icon to the new logo and refreshed the
READMEwith a consistent header, description and a link to the get started tutorial. - Referenced the
RepoDbpackagev1.17.0-alpha3. - Unsealed
ClickHouseDbSettingand added aUseClickHouse(GlobalConfiguration, ClickHouseDbSetting)overload that accepts any subclass, always applying the given setting even if already initialized — this lets ClickHouseBulkDbSetting (shipped by RepoDb.ClickHouse.BulkOperations) be registered the same way. #1360
RepoDb.ClickHouse (v1.16.0)
Released: September 9, 2026
Version bump only, aligning with the RepoDB ecosystem-wide v1.16.0 release — no functional changes since v1.0.0.
- Referenced the
RepoDbpackagev1.16.0.
RepoDb.ClickHouse (v1.0.0)
Released: September 8, 2026
First general availability (non-preview) release of the ClickHouse provider, promoting the preview below to stable v1.0.0. No functional changes since the preview — see that entry for the full feature set and known limitations.
RepoDb.ClickHouse - Preview
Released: 2026-08-30
New
First release of the dedicated ClickHouse provider for RepoDB, built on top of ClickHouse.Driver. #1242
What’s included
- ClickHouseBootstrap /
ClickHouseGlobalConfiguration.UseClickHouse()— initializes RepoDB for use withClickHouseConnection(GlobalConfiguration.Setup().UseClickHouse()), mapping the ClickHouseDbSetting, ClickHouseDbHelper, and ClickHouseStatementBuilder to everyClickHouseConnection. An overload,UseClickHouse(IDbSetting), accepts a custom setting instance in place of the default ClickHouseDbSetting — see RepoDb.ClickHouse.BulkOperations’s ClickHouseBulkDbSetting. ClickHouseConnection,ClickHouseCommandandClickHouseTransaction— RepoDB-aware subclasses of the driver’s own ADO.NET objects.ClickHouseCommandtransparently strips the leading@RepoDB adds to every parameter name, sinceClickHouse.Driverexpects unprefixed names.ClickHouseTransaction’sCommit()/Rollback()are no-ops, reflecting that ClickHouse has no traditional ACID transactions.- ClickHouseDbSetting — ClickHouse-specific behavior: backtick (
`) opening/closing identifier quotes,@parameter prefix, no table hints, no native upsert keyword, and single-statement command text only (IsMultiStatementExecutable = false). - ClickHouseStatementBuilder — generates ClickHouse-flavored SQL for every operation:
LIMIT/LIMIT ... OFFSETpaging for BatchQuery/skip-take queries,ALTER TABLE ... UPDATE/ALTER TABLE ... DELETEmutations for Update/UpdateAll/Delete, and a plainINSERTfor Merge/MergeAll (deduplication deferred to the table engine). Insert/InsertAll throwNotSupportedExceptionfor entities with an identity field, since ClickHouse has no identity/auto-increment mechanism. - ClickHouseDbHelper — schema/type discovery (
GetFields/GetFieldsAsync) sourced fromsystem.columns.GetScopeIdentity/GetScopeIdentityAsyncalways throwNotSupportedException. - ClickHouseDbTypeNameToClientTypeResolver — maps ClickHouse column type names (unwrapping
Nullable(...)/LowCardinality(...)and parameterized suffixes) to .NET CLR types. - Parameter attributes: ClickHouseType, SourceColumn, SourceColumnNullMapping.
- Targets .NET 8, .NET 9, and .NET 10.
Known limitations (v1)
- No identity/auto-increment/sequence of any kind — key values must always be supplied by the caller.
- No native
MERGE/upsert statement — Merge/MergeAll compile to a plainINSERT; use BulkMerge from RepoDb.ClickHouse.BulkOperations for a real matched/unmatched merge. UPDATE/DELETEare asynchronous mutations (ALTER TABLE ... UPDATE/DELETE) applied by background merges, not immediate row-level changes, and theWHEREclause is mandatory.- Transactions are accepted for API compatibility only —
Commit()/Rollback()are no-ops. Decimalcolumns requireUseCustomDecimals=falseon the connection string; otherwise they are returned as the driver’s ownClickHouseDecimaltype instead of a plaindecimal.- Sub-second
DateTime64precision requires an explicit ClickHouseType attribute on the property — a plainDateTimeCLR parameter is otherwise inferred as whole-second precision.
Bumps
- Referenced the
RepoDbpackage. - Referenced the
ClickHouse.Driverpackagev1.3.0.