Search Shortcut cmd + k | ctrl + k
Search cmd+k ctrl+k
1.0 (stable)
Versioning of Extensions

Extension Versioning

Just like DuckDB itself, DuckDB extensions have a version. This version can be used by users to determine which features are available in the extension they have installed, and by developers to understand bug reports. DuckDB extensions can be versioned in different ways:

Extensions whose source lives in DuckDB's main repository (in-tree extensions) are tagged with the short git hash of the repository. For example, the parquet extension is built into DuckDB version v0.10.3 (which has commit 70fd6a8a24):

SELECT extension_name, extension_version, install_mode
FROM duckdb_extensions()
WHERE extension_name='parquet';
extension_name extension_version install_mode
parquet 70fd6a8a24 STATICALLY_LINKED

Extensions whose source lives in a separate repository (out-of-tree extensions) have their own version. This version is either the short git hash of the separate repository, or the git version tag in Semantic Versioning format. For example, in DuckDB version v0.10.3, the azure extension could be versioned as follows:

SELECT extension_name, extension_version, install_mode
FROM duckdb_extensions()
WHERE extension_name = 'azure';
extension_name extension_version install_mode
azure 49b63dc REPOSITORY

Updating Extensions

This feature was introduced in DuckDB 0.10.3.

DuckDB has a dedicated statement that will automatically update all extensions to their latest version. The output will give the user information on which extensions were updated to/from which version. For example:

UPDATE EXTENSIONS;
extension_name repository update_result previous_version current_version
httpfs core NO_UPDATE_AVAILABLE 70fd6a8a24 70fd6a8a24
delta core UPDATED d9e5cc1 04c61e4
azure core NO_UPDATE_AVAILABLE 49b63dc 49b63dc
aws core_nightly NO_UPDATE_AVAILABLE 42c78d3 42c78d3

Note that DuckDB will look for updates in the source repository for each extension. So if an extension was installed from core_nightly, it will be updated with the latest nightly build.

The update statement can also be provided with a list of specific extensions to update:

UPDATE EXTENSIONS (httpfs, azure);
extension_name repository update_result previous_version current_version
httpfs core NO_UPDATE_AVAILABLE 70fd6a8a24 70fd6a8a24
azure core NO_UPDATE_AVAILABLE 49b63dc 49b63dc

Target DuckDB Version

Currently, when extensions are compiled, they are tied to a specific version of DuckDB. What this means is that, for example, an extension binary compiled for v0.10.3 does not work for v1.0.0. In most cases, this will not cause any issues and is fully transparent; DuckDB will automatically ensure it installs the correct binary for its version. For extension developers, this means that they must ensure that new binaries are created whenever a new version of DuckDB is released. However, note that DuckDB provides an extension template that makes this fairly simple.

About this page

Last modified: 2024-06-22