pg_duckdb 构建指南

构建OLAP扩展 pg_duckdb 的特别注意事项。

pg_duckdb 构建说明

编译此扩展需要额外的依赖:

```bash
if [[ ${OS_VERSION} == "12" ]]; then
    log_info "install deb12 utils"
    sudo apt install -y lz4 unzip wget patch bash lsof sshpass debhelper devscripts fakeroot pkg-config make cmake ncdu rsync #build-essential
    sudo apt install -y postgresql-all postgresql-server-dev-all libreadline-dev flex bison libxml2-dev libxml2-utils xsltproc libc++-dev libc++abi-dev libglib2.0-dev libtinfo5 libstdc++-12-dev liblz4-dev ninja-build
elif [[ ${OS_VERSION} == "22" ]]; then
    log_info "install ubuntu22 utils"
    sudo apt install -y lz4 unzip wget patch bash lsof sshpass debhelper devscripts fakeroot pkg-config make cmake ncdu rsync #build-essential
    sudo apt install -y postgresql-all postgresql-server-dev-all libreadline-dev flex bison libxml2-dev libxml2-utils xsltproc libc++-dev libc++abi-dev libglib2.0-dev libtinfo6 libstdc++-12-dev liblz4-dev ninja-build
elif [[ ${OS_VERSION} == "24" ]]; then
    log_info "install ubuntu24 utils"
    sudo apt install -y lz4 unzip wget patch bash lsof sshpass debhelper devscripts fakeroot pkg-config make cmake ncdu rsync #build-essential
    sudo apt install -y postgresql-all postgresql-server-dev-all libreadline-dev flex bison libxml2-dev libxml2-utils xsltproc libc++-dev libc++abi-dev libglib2.0-dev libtinfo6 libstdc++-12-dev liblz4-dev ninja-build
fi

pg_mooncake 构建说明

构建此扩展需要用到 patchelf 工具:

yum install -y patchelf
apt install -y patchelf

在 EL8 上构建时,编译器版本过低,需要进行如下的 HotFix:

cd ~/rpmbuild/SOURCES
tar -xf pg_mooncake-0.1.2.tar.gz
vi pg_mooncake-0.1.2/src/pgduckdb/scan/postgres_seq_scan.cpp

75G dd dd j dd :q

tar -zcf pg_mooncake-0.1.2.tar.gz pg_mooncake-0.1.2
rm -rf pg_mooncake-0.1.2

最后修改 2025-02-23: update extension doc (0a5bb32)