Skip to content

Commit e98e05d

Browse files
committed
fix: update ROADMAP.md
1 parent 3f7c0d0 commit e98e05d

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

ROADMAP.md

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,41 @@
1-
Roadmap Items:
1+
# DuckDB ADBC Extension Roadmap
22

3-
3. Implement INSERT INTO for attached tables.
4-
* Roadmap for pseudo rows its.
5-
3. Implement partition parallelism for scans. Snowflake can produce partition data in parallel, DuckDB could consume in parallel.
3+
## Near Term (weeks)
64

5+
1. **Partition parallelism for table scans** — Snowflake can produce result data in partitions; DuckDB could consume that data in parallel.
76

8-
To implement ATTACH we need to implement a catalog then a replacement scan lookup.
7+
2. **Connection pooling** — Similar to duckdb-postgres, pool connections when an attached ADBC database is referenced multiple times in the same query.
98

10-
The problem with predicate pushdown is that the entire predicate can have DuckDB specific functions that may not be possible to send to the remote server, so it would be nice if the TableFunction can have a dynamic predicate pushdown result.
9+
3. **Driver connectivity examples** — Provide documentation and examples for all available ADBC drivers.
1110

11+
## Medium Term
12+
13+
1. **INSERT INTO fallback** — Support `INSERT INTO` for drivers that lack ADBC bulk copy. FlightSQL is one.
14+
15+
## Longer Term
16+
17+
All items below apply to ADBC databases created via `ATTACH`:
18+
19+
1. **UPDATE/DELETE without row IDs** — The Airport extension demonstrates a possible approach using a custom optimizer pass with replacement `LogicalOperators`.
20+
21+
2. **DDL support** — Implement `CREATE TABLE` and `DROP TABLE`.
22+
23+
3. **Query passthrough** — When the DuckDB parser detects that a query operates entirely on an attached ADBC database, send it directly to the foreign server. This would enable server-side aggregation.
24+
25+
4. **Transaction support** — Enable proper transaction semantics for attached ADBC databases.
26+
27+
---
28+
29+
## ADBC Feature Gaps (as of 2025-12-13)
30+
31+
The following capabilities would strengthen ADBC as a database federation layer. However, ADBC's primary focus appears to be connectivity rather than federation, so these may be out of scope for the project.
32+
33+
| Gap | Description |
34+
|-----|-------------|
35+
| **Type mapping** | A mapping from Arrow types to driver-native types would allow translating DuckDB → Arrow → driver-specific types for table creation. |
36+
| **Identifier escaping** | A driver-specific method to properly escape table and column names. |
37+
| **Parameter binding introspection** | A way for drivers to indicate whether they support positional bound parameters (`?`). Currently, `adbc_scanner` can perform predicate pushdown but cannot determine if the driver actually accepts parameterized queries. |
38+
| **Row ID support** | DuckDB's `UPDATE` and `DELETE` rely on a `row_id` pseudocolumn, scanning the table first to identify rows to modify. Drivers could indicate whether they support an equivalent concept. |
39+
| **Column constraint metadata** | Drivers could expose constraints such as `NOT NULL`, `UNIQUE`, and primary keys alongside column metadata. |
40+
41+
This roadmap is subject to change, if you'd like to accelerate any of it please contact [Query.Farm](https://query.farm)

duckdb

Submodule duckdb updated 68 files

0 commit comments

Comments
 (0)