在duckdb 1.3上编译加载sheetreader插件

sheetreader插件只有支持DuckDB 1.2的版本。

到https://github.com/polydbms/sheetreader-duckdb下载插件源代码压缩包sheetreader-duckdb-main.zip,将其中的src目录解压到/par/sheetreader-duckdb-main/,再到https://github.com/polydbms/sheetreader-core下载核心算法源代码sheetreader-core-main.zip ,将其中的src目录解压到/par/sheetreader-duckdb-main/src/include下。
形成目录树如下

src
 include
  sheetreader-core
   src
  miniz

一开始完全采用duckdb 1.3的头文件,编译报错

sheetreader_extension.cpp:4:10: fatal error: duckdb/common/multi_file_reader.hpp: No such file or directory
#include "duckdb/common/multi_file_reader.hpp"

所以把duckdb 0.10.3的头文件目录也加入

g++ -fPIC -shared -o libtest2.so *.cpp include/miniz/miniz.cpp include/sheetreader-core/src/*.cpp -I /par/duck/src/include
 -lssl -lcrypto -I include -lduckdb -L /par/duck/build/src -I /par/duckdb-0.10.3/include
root@6ae32a5ffcde:/par/sheetreader-duckdb-main/src# python3 /par/appendmetadata.py -l libtest2.so -n sheetreader -dv v1.3.0  --duckdb-platform linux_amd64 --extension-version 0.1 --abi-type ""
Creating extension binary:
 - Input file: libtest2.so
 - Output file: sheetreader.duckdb_extension
 - Metadata:
   - FIELD8 (unused)            = EMPTY
   - FIELD7 (unused)            = EMPTY
   - FIELD6 (unused)            = EMPTY
   - FIELD5 (abi_type)          =
   - FIELD4 (extension_version) = 0.1
   - FIELD3 (duckdb_version)    = v1.3.0
   - FIELD2 (duckdb_platform)   = linux_amd64
   - FIELD1 (header signature)  = 4 (special value to identify a duckdb extension)
root@6ae32a5ffcde:/par/sheetreader-duckdb-main/src# /par/duckdb130 -unsigned
DuckDB v1.3.0 (Ossivalis) 71c5c07cdd
Enter ".help" for usage hints.
D load '/par/sheetreader-duckdb-main/src/sheetreader.duckdb_extension';
D from sheetreader('/par/foods.xlsx') limit 2;
Segmentation fault (core dumped)

加载成功,但执行出错,同样的动态库二进制代码,加上1.2版的元数据,加载就报错,看来混合版本有问题。

root@6ae32a5ffcde:/par/sheetreader-duckdb-main/src# /par/duckdb120 -unsigned
v1.2.0 5f5512b827
Enter ".help" for usage hints.
D load '/par/sheetreader-duckdb-main/src/sheetreader.duckdb_extension';
Invalid Input Error:
Failed to load '/par/sheetreader-duckdb-main/src/sheetreader.duckdb_extension', The file was built specifically for DuckDB version 'v1.3.0' and can only be loaded with that version of DuckDB. (this version of DuckDB is 'v1.2.0') Also, the file was built for the platform 'linux_amd64', but we can only load extensions built for platform 'linux_amd64_gcc4'.
D .exit
root@6ae32a5ffcde:/par/sheetreader-duckdb-main/src# python3 /par/appendmetadata.py -l libtest2.so -n sheetreader -dv v1.2.0  --duckdb-platform linux_amd64_gcc4 --extension-ve
rsion 0.1 --abi-type ""
Creating extension binary:
 - Input file: libtest2.so
 - Output file: sheetreader.duckdb_extension
 - Metadata:
   - FIELD8 (unused)            = EMPTY
   - FIELD7 (unused)            = EMPTY
   - FIELD6 (unused)            = EMPTY
   - FIELD5 (abi_type)          =
   - FIELD4 (extension_version) = 0.1
   - FIELD3 (duckdb_version)    = v1.2.0
   - FIELD2 (duckdb_platform)   = linux_amd64_gcc4
   - FIELD1 (header signature)  = 4 (special value to identify a duckdb extension)
root@6ae32a5ffcde:/par/sheetreader-duckdb-main/src# /par/duckdb120 -unsigned
v1.2.0 5f5512b827
Enter ".help" for usage hints.
D load '/par/sheetreader-duckdb-main/src/sheetreader.duckdb_extension';
Segmentation fault (core dumped)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值