跳到主要内容

安装

duckfn_palette 需要 DuckDB 1.4 或更新。发布产物基于 DuckDB 2.0.0 构建,同样能加载进 1.4.x / 1.5.x (C API 二进制兼容),所以没有单独的 1.5 构建:旧版本用户直接安装同一份 2.0 release 资产即可。它是一个普通的可加载扩展,INSTALL 与 LOAD 就是全部; 没有额外的下载、库文件或配置步骤。

从社区仓安装​

最省事的一条,也是唯一不需要任何命令行开关的:

INSTALL duckfn_palette FROM community;
LOAD duckfn_palette;

DuckDB 会下载一份签过名、且与你本机 DuckDB 版本和平台匹配的构建。INSTALL 只需做一次,但每个新会话 都要重新 LOAD。

关于这条路

INSTALL … FROM community 要等扩展注册进 DuckDB 社区仓之后才可用。注册是维护者做的一步,见 社区扩展;在那之前,用 Release 文件或本地构建的产物。

从 GitHub Release 安装​

每个版本都会发成一个 GitHub Release,里面按平台各挂一份 .duckdb_extension,命名是 duckfn_palette-<平台>.duckdb_extension(windows_amd64、linux_amd64、osx_arm64 等),另有一份给浏览器用的 WebAssembly 构建。下载你平台的那一份,并改名成 duckfn_palette.duckdb_extension 再加载 —— LOAD 收的是扩展名 或本地路径(它不会去下载 URL,下载那条路是 INSTALL '<url>'),而入口点符号由文件名决定,直接用 Release 里的 名字会报 did not contain function "duckfn_palette-windows_amd64_init_c_api":

curl -LO https://github.com/<owner>/<repo>/releases/latest/download/duckfn_palette-windows_amd64.duckdb_extension
mv duckfn_palette-windows_amd64.duckdb_extension duckfn_palette.duckdb_extension
duckdb -unsigned -c "LOAD './duckfn_palette.duckdb_extension';"

Release 里的文件没有用 DuckDB 的发行密钥签名,所以要加 -unsigned。

从本地构建的产物安装​

如果你自己从源码构建了扩展,把 LOAD 指到产物上 —— 同样要用 -unsigned 启动 DuckDB:

LOAD './build/debug/duckfn_palette.duckdb_extension';

怎么构建见开发指南。

确认它加载上了​

duckdb_extensions() 列出可用的扩展,duckdb_functions() 列出可调用的函数:

SELECT extension_name, installed, loaded
FROM duckdb_extensions()
WHERE extension_name = 'duckfn_palette';
SELECT function_name, function_type, return_type
FROM duckdb_functions()
WHERE function_name LIKE 'plt%';

160 个名字就是 160 行(169 个签名,有些名字是重载);如果一行都没有,说明你查的这个会话里没有加载这个扩展。