Attach a directory of Delta tables as a single DuckDB database with automatic schema discovery
Compatibility Matrix
This table covers all DuckDB releases that have not reached end-of-life, including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 |
|---|---|---|---|---|---|
| Linux AMD64 | |||||
| Linux ARM64 | |||||
| macOS AMD64 | |||||
| macOS ARM64 | |||||
| Windows AMD64 | |||||
| Windows ARM64 | |||||
| WebAssembly |
Installing and Loading
INSTALL delta_classic FROM community;
LOAD delta_classic;
Example
-- Load required extensions
LOAD delta;
LOAD delta_classic;
-- Attach a directory of Delta tables as a single database
ATTACH 's3://bucket/lake' AS mydb (TYPE delta_classic, PIN_SNAPSHOT);
-- Query tables directly
SELECT * FROM mydb.main.orders LIMIT 10;
-- Time travel on one table
SELECT count(*) FROM mydb.main.orders AT (VERSION => 3);
-- Read every table as of a point in time
ATTACH 's3://bucket/lake' AS asof (TYPE delta_classic, TIMESTAMP '2026-10-01 00:00:00+00');
About delta_classic
Delta Classic lets you attach a directory of Delta Lake tables as a single DuckDB database, instead of attaching each table individually. It discovers tables by scanning for subdirectories containing a _delta_log folder.
The extension supports three layouts:
- Single table: the attached path is itself a Delta table
- Single-schema: the attached path directly contains Delta tables
- Multi-schema: the attached path contains subdirectories, each treated as a schema, with Delta tables inside them
All Delta reading is delegated to the Delta extension via internal ATTACH … (TYPE DELTA). The ATTACH options PIN_SNAPSHOT, TIMESTAMP, PUSHDOWN_FILTERS and PUSHDOWN_PARTITION_INFO are passed to every table, and AT (VERSION => …) / AT (TIMESTAMP => …) work per query. Works with all storage backends (local filesystem, S3 and S3-compatible stores, ABFSS, GCS). Read-only. Not available in DuckDB-WASM, because the Delta extension has no WASM build.
Added Functions
This extension does not add any functions.
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
This extension does not add any settings.