94个版本 (19个破坏性更新)
| 新 0.20.1 | 2024年8月9日 | 
|---|---|
| 0.19.5 | 2024年7月23日 | 
| 0.16.0 | 2024年3月25日 | 
| 0.12.1 | 2023年12月26日 | 
| 0.1.3 | 2023年3月30日 | 
#694 在 数据库接口
每月 1,411 次下载
用于  3 个crate
205KB
 4.5K  SLoC
dataBend驱动
dataBend统一的RestAPI和FlightSQL SQL客户端
用法
exec
use databend_driver::Client;
let dsn = "databend://root:@localhost:8000/default?sslmode=disable".to_string();
let client = Client::new(dsn);
let conn = client.get_conn().await.unwrap();
let sql_create = "CREATE TABLE books (
    title VARCHAR,
    author VARCHAR,
    date Date
);";
conn.exec(sql_create).await.unwrap();
let sql_insert = "INSERT INTO books VALUES ('The Little Prince', 'Antoine de Saint-Exupéry', '1943-04-06');";
conn.exec(sql_insert).await.unwrap();
查询行
let row = conn.query_row("SELECT * FROM books;").await.unwrap();
let (title,author,date): (String,String,i32) = row.unwrap().try_into().unwrap();
println!("{} {} {}", title, author, date);
查询迭代器
let mut rows = conn.query_iter("SELECT * FROM books;").await.unwrap();
while let Some(row) = rows.next().await {
    let (title,author,date): (String,String,chrono::NaiveDate) = row.unwrap().try_into().unwrap();
    println!("{} {} {}", title, author, date);
}
类型映射
通用数据类型
| dataBend | Rust | 
|---|---|
| BOOLEAN | bool | 
| TINYINT | i8,u8 | 
| SMALLINT | i16,u16 | 
| INT | i32,u32 | 
| BIGINT | i64,u64 | 
| FLOAT | f32 | 
| DOUBLE | f64 | 
| DECIMAL | String | 
| DATE | chrono::NaiveDate | 
| TIMESTAMP | chrono::NaiveDateTime | 
| VARCHAR | String | 
| BINARY | Vec<u8> | 
半结构化数据类型
| dataBend | Rust | 
|---|---|
| ARRAY[T] | Vec<T> | 
| TUPLE[T,U] | (T,U) | 
| MAP[K,V] | HashMap<K, V> | 
| VARIANT | String | 
| BITMAP | String | 
| GEOMETRY | String | 
注意: VARIANT 是一个json编码的字符串。示例
CREATE TABLE example (
    data VARIANT
);
INSERT INTO example VALUES ('{"a": 1, "b": "hello"}');
let row = conn.query_row("SELECT * FROM example limit 1;").await.unwrap();
let (data,): (String,) = row.unwrap().try_into().unwrap();
let value: serde_json::Value = serde_json::from_str(&data).unwrap();
println!("{:?}", value);
依赖项
~25–40MB
~636K SLoC