测试DuckDB-rs项目中的示例程序
下载最新源代码
进入解压后的目录,执行运行命令,结果链接出错,没有找到duckdb库
:/par/duckdb-rs-main# cargo run --example basic= note: mold: fatal: library not found: duckdbcollect2: error: ld returned 1 exit status
下载最新duckdb动态库https://github.com/duckdb/duckdb/releases/download/v1.4.0/libduckdb-linux-amd64.zip
解压缩到/par/libduckdb目录,然后将其添加到LIBRARY_PATH, 重新运行示例即可。
export LIBRARY_PATH=$LIBRARY_PATH:/par/libduckdb
/par/duckdb-rs-main# export LD_LIBRARY_PATH=$LIBRARY_PATH
/par/duckdb-rs-main# cargo run --example basic --releaseFinished `release` profile [optimized] target(s) in 56.46sRunning `target/release/examples/basic`
Found person Person { _id: 1, name: "Steven", data: None }
+----+--------+------+
| id | name | data |
+----+--------+------+
| 1 | Steven | |
+----+--------+------+
还有其他几个示例,repl是一个CLI工具,hello-ext是一个插件
/par/duckdb-rs-main# cargo run --example hello-ext --release
error: example target `hello-ext` is a library and cannot be executed
/par/duckdb-rs-main# cargo run --example repl --releaseCompiling libduckdb-sys v1.4.0 (/par/duckdb-rs-main/crates/libduckdb-sys)Compiling duckdb v1.4.0 (/par/duckdb-rs-main/crates/duckdb)Finished `release` profile [optimized] target(s) in 9.22sRunning `target/release/examples/repl`
duckdb-rs v1.4.0 🦀
Type '.help' for help.
> create table t(i int,a varchar);
> insert into t values(1,'a');
> from t;
+-------+------+
| i | a |
| Int32 | Utf8 |
+-------+------+
| 1 | a |
+-------+------+
>
appender 示例原来是往内存表插入,把它改成实体表,可以从repl中读取。
/par/duckdb-rs-main# cargo run --example appender --releaseCompiling duckdb v1.4.0 (/par/duckdb-rs-main/crates/duckdb)Finished `release` profile [optimized] target(s) in 6.11sRunning `target/release/examples/appender`
/par/duckdb-rs-main# cargo run --example repl --releaseCompiling duckdb v1.4.0 (/par/duckdb-rs-main/crates/duckdb)Finished `release` profile [optimized] target(s) in 6.66sRunning `target/release/examples/repl`
duckdb-rs v1.4.0 🦀
Type '.help' for help.
> attach '10m.db' as db10m;
> use db10m;
> show tables;
+------+
| name |
| Utf8 |
+------+
| test |
+------+
> select count(*) from test;
+--------------+
| count_star() |
| Int64 |
+--------------+
| 10000000 |
+--------------+