Skip to content

Conversation

@mlafeldt
Copy link
Member

@mlafeldt mlafeldt commented Dec 18, 2025

Having two separate features was confusing:

  • vtab-loadable - macros only
  • loadable-extension - linking changes only

Users needed both for working extensions. Using vtab-loadable alone produced non-functional extensions (DuckDB linked statically into cdylib → two DuckDB instances when loaded → broken).

Before:

duckdb = { features = ["vtab-loadable", "loadable-extension"] }

After:

duckdb = { features = ["loadable-extension"] }

vtab-loadable is preserved as a deprecated alias pointing to loadable-extension. Existing Cargo.toml files continue to work.


What does this mean for https://github.com/duckdb/extension-template-rs?

After the next release, we can change

[dependencies]
duckdb = { version = "=1.4.3", features = ["vtab-loadable"] }
duckdb-loadable-macros = "=0.1.13"
libduckdb-sys = { version = "=1.4.3", features = ["loadable-extension"] }

to

duckdb = { version = "=1.4.4", features = ["loadable-extension"] }

(though the old way will still work)

vtab-loadable is kept as deprecated alias for backwards compatibility.
@mlafeldt mlafeldt self-assigned this Dec 18, 2025
@mlafeldt mlafeldt merged commit b333674 into main Dec 19, 2025
3 checks passed
@mlafeldt mlafeldt deleted the deprecate-vtab-loadable branch December 19, 2025 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants