DuckDB FDW 构建指南

如何构建 DuckDB FDW 及其依赖的 libduckdb.so 动态链接库。

DuckDB FDW 依赖 libduckdb.so 动态链接库。在 Ubuntu 与 Debian 上,可以直接使用由 DuckDB 官方提供的预编译二进制。

在 EL 系操作系统上,需要从头编译 libduckdb 并使用此版本编译 duckdb_fdw

Pigsty 的 github.com/pgsty/pgsql-rpm 仓库提供了预置的构建模板:

DuckDB 官方已经提供了 libduckdb-src.zip 源码,可以方便地进行构建。


构建注意事项

在 Ubuntu / Debian 上,可以直接使用 DuckDB 官方提供的预编译二进制 libduckdb.so

在 EL8 和 EL9 上需要从源码编译构建 libduckdb

要构建 libduckdb-src,你需要使用与构建 duckdb_fdw 一致的编译环境与参数:

clang++ -c -fPIC -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 duckdb.cpp -o duckdb.o
clang++ -shared -o libduckdb.so *.o

构建 libduckdb RPM 包,可以使用以下命令:

cd ~/rpmbuild/SPECS && make libduckdb

要构建 duckdb_fdw RPM 包,可以使用以下命令:

cd ~/rpmbuild/SPECS && make duckdb_fdw

Last modified 2024-08-04: add extensions (25d8a2b)