All notable changes to clickhouse_adapter_ecto are documented here.
This project adheres to Semantic Versioning.
0.4.0 - 2026-08-27
Added
with_cte/3support inall/2: non-recursive common table expressions (both the^existing_queryandfragment(...)forms) render onto ClickHouse'sWITH name AS (subquery) SELECT ...clause. Recursive CTEs (recursive_ctes(query, true)), the Postgres-only:materializedoption, and any:operationother than:allraise a clearEcto.QueryErrorinstead of being silently dropped -- ClickHouse has noWITH RECURSIVEorMATERIALIZED/NOT MATERIALIZEDCTE modifier, and itsWITHclause only ever takes aSELECTsubquery.lock: "FINAL"support (viafrom(x in X, lock: "FINAL")orEcto.Query.lock(query, "FINAL")): appends ClickHouse'sFINALmodifier to the queried table, forcing merge-time collapsing ofReplacingMergeTree/AggregatingMergeTreerows at query time for that query only. Any otherlock:value raises, since ClickHouse has no row-locking concept.
0.3.4 - 2026-08-26
Changed
- Requires
ch_driver ~> 0.4, which addsTuple(...)decoding and fixesLowCardinality(Nullable(T))columns dropping the connection. Both are selectable through this adapter (verified viaRepo.query/2and a schema field throughRepo.all/1), so the constraint moves with them.
0.3.3 - 2026-08-26
Changed
- Requires
ch_driver ~> 0.3. The:utc_datetime_usecmigration type already generatedDateTime64(6)DDL, so selecting such a column back failed on ch_driver 0.2, which could not decodeDateTime64. That release also fixes silent row mis-splitting onArray(LowCardinality(...))columns; see ch_driver's changelog.
Fixed
- Documentation: the Usage section defined a repo and its config but never
started it, so following it verbatim left the connection pool unstarted
and every query failing with
could not lookup Ecto repo ... because it was not started or it does not exist. Now shows theapplication.exsupervision-tree step, plus theconfig :my_app, ecto_repos: [...]themix ecto.*tasks warn about when missing.
0.3.2 - 2026-08-03
Changed
- Trimmed the README for Hex.
0.3.1 - 2026-08-01
Changed
- Requires
ch_driver ~> 0.2, which fixesDatedecoding. The adapter's:datemigration column type already exposed that bug. - Supports a
:settingsoption for passing real ClickHouseSETTINGS.
0.3.0 - 2026-08-01
Added
fragment/1support.
0.2.0 - 2026-08-01
Added
- A
table_options/1migration helper forENGINE,ORDER BY,PARTITION BYandSETTINGS. RIGHT,FULLandCROSSjoin support.- A ClickHouse-specific error for
LATERALjoin qualifiers, which ClickHouse does not support.
Changed
- Rewrote the published documentation with real usage examples.
0.1.0 - 2026-07-31
Initial release. An Ecto.Adapters.SQL-based adapter for ClickHouse,
speaking its native TCP protocol via ch_driver.