Duck Delta Share
January 20, 2026 · View on GitHub
DuckDB extension for Delta Sharing protocol. By loading this extension, DuckDB could now act as a Delta Sharing client by using delta_share_list and delta_share_read functions.
- Disclaimer: This extension is in experimental phase. Please do note that the extension might have bugs. If you find any, please raise an issue/discussion.
Functions
-
delta_share_list(<0-2>)→ Can listshares,schemas, andtablesdepending on provided argument/s.delta_share_list()→ List all shares under Delta Sharing serverdelta_share_list('share_name')→ List all schemas undershare_namedelta_share_list('share_name', 'schema_name')→ List all tables underschema_name
-
delta_share_read('share_name', 'schema_name', 'table_name')→ Reads all files undertable_name.- Supports predicate pushdown and partition column isolation (experimental).
-
delta_share_list_files(<3-4>)→ Lists all files under specified table.delta_share_list('share_name', 'schema_name', 'table_name')→ All files under table. No projection forpartition_columns.delta_share_list('share_name', 'schema_name', 'table_name', '<filter_clause>')→ Filter via partition column. i.e.date > 20251231.
Dependencies
httpfsread_parquet
Limitations
SELECT * FROM delta_share_readwill not work if the table has a partition column. This is a trade-off in allowing filter pruning for partition column. Users will have to specify columns.SELECT field FROM delta_share_readis not yet optimized (single-threaded).SELECT COUNT(*) delta_share_readleverages DuckDB parallelism.
Configuration
This extension uses internal config to store Delta Sharing credentials. You can set configuration by doing SET or running DuckDB with environment variables.
delta_share_endpoint→ Base endpoint for Delta Sharing server (i.e.localhost:8080/delta-sharing).delta_share_bearer_token→ Bearer token without theBearerprefix