Known limitations
Stated as limitations, with where each stands. The specs linked are in the repository.
- Experimental. v0.2.0 for DuckDB v2.0.0, v0.1.2 for v1.5.6, from the community extensions repository (Releases).
- Mutually exclusive with the stock
ducklakeextension, and it must be loaded before the firstATTACH 'ducklake:…'(why). - Measured on one benchmark. v0.2.0 is faster than the PostgreSQL backend on it: 0.63× of the time on equal Azure VMs, at 500 tables. One workload, one region and one VM size, on pre-release builds (Performance). On v0.1.2 (DuckDB v1.5.6) the same benchmark ran at 1.54× of the PostgreSQL time.
- On DuckDB v1.5.6, every first touch of a table pays a plan compile in the mssql extension's per-table metadata query when the catalog's database is not forced-parameterized: ~35 ms each. The shaping applies the database option. mssql v0.3.0, the DuckDB 2.0 build, parameterizes that query itself (hugr-lab/mssql-extension#334).
- Types stored as text in inlined data: floating point, nanosecond timestamps, 128-bit and
unsigned 64-bit integers, intervals, enums, geometry and nested types are stored as text in the
inlined-data tables — lossless, not filterable server-side (Writing).
VARIANTcolumns are never inlined. - A rolled-back commit can leave an empty
ducklake_inlined_data_*orducklake_inlined_delete_*table behind — they are created outside the transaction so that the commit can see them; harmless, andducklake_cleanup_old_filesdoes not remove them. A flush leaves the emptied inlined tables in place — DuckLake's behaviour on every backend. - On DuckDB v1.5.6,
mssql_scan()inside a transaction must be the sole source of its query, which is a rule of mssql v0.2.5. A plan mixing it with a catalog scan fails depending on execution order. A user query joiningmssql_scan()against the lake inside a transaction may hit it. mssql v0.3.0, the DuckDB 2.0 build, fixes it (#314). - Fabric Warehouse and Synapse dedicated pools cannot hold a catalog (Requirements).
- No WebAssembly build — the mssql extension is raw TDS sockets.
- Concurrent writers rely on DuckLake's retry loop. No writer loses a commit in the measured
runs.
- mssql v0.3.0 adds a
transaction_isolationATTACH option, withSNAPSHOTas one choice (#331). - This extension does not set it for the catalog connection.
- mssql v0.3.0 adds a