Add Quack protocol support for remote DuckDB connections (beta)#744
Add Quack protocol support for remote DuckDB connections (beta)#744VahOkan wants to merge 2 commits into
Conversation
Introduces a QuackEnvironment that connects to remote DuckDB servers via the Quack HTTP-based RPC protocol (DuckDB v1.5.2+). Uses a local in-memory DuckDB as a driver that ATTACHes the remote server. Supported: table, view, seed, incremental (append strategy only). Quack beta limitations (DELETE/MERGE/ALTER RENAME not yet supported) are handled with clear error messages rather than workarounds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Hey @VahOkan — thanks for the work here, Quack support is definitely something we want to add. My hesitation is timing: Quack shipped a week ago and is targeting v2.0 stability in ~September. The bulk of this PR (the macro branches in There are also a few design issues worth fixing in what would remain — the Would you be up for revisiting this against v2.0? The permanent core (the |
@jwills I was also unaware of the limitations. I realized them after the tests. So, yes, I agree about the timing and the workarounds. However, I was unsure if the limitations were solely due to the fact that it’s a beta version or if they will indeed take a long time to resolve in the future. If you have more insights or information about this, I’d be happy to freeze this PR. |
|
@VahOkan yeah, not clear to me either. What would be interesting to me would be a BuenaVista-esque environment that didn't actually require a local DuckDB package to be installed to work-- like, a quack-protocol only version of this that didn't actually have DuckDB in the deps would be interesting and kind of cool |
Summary
Adds native support for connecting dbt-duckdb to remote DuckDB servers via the Quack protocol (DuckDB v1.5.2+, beta).
QuackEnvironment— local in-memory DuckDB driver that ATTACHes the remote server and routes all SQL viaUSEsqlite_masterfor relation listing, unqualified schema names, skipDROP SCHEMAConfiguration
Current known beta limitations (handled with errors, not workarounds)
DELETE,UPDATE,MERGE— not yet supported by the Quack catalog proxyALTER TABLE ... RENAME— not supportedDROP SCHEMA— skipped with warninginformation_schema.tables— empty for remote tables (usessqlite_masterinstead)duckdb_databases()— not implementedThese are Quack extension implementation gaps, not fundamental limitations. When Quack adds DML support, the gating can simply be removed and all incremental strategies will work.