databend-driver v0.26.2
databend-driver
Databend Node.js Client
Usage
const { Client } = require("databend-driver");
const client = new Client(
"databend://root:root@localhost:8000/?sslmode=disable",
);
const conn = await client.getConn();
await conn.exec(`CREATE TABLE test (
i64 Int64,
u64 UInt64,
f64 Float64,
s String,
s2 String,
d Date,
t DateTime
);`);
// get rows of value array
const rows = await conn.queryIter("SELECT * FROM test");
let row = await rows.next();
while (row) {
console.log(row.values());
row = await rows.next();
}
// get rows of map
const rows = await conn.queryIter("SELECT * FROM test");
let row = await rows.next();
while (row) {
console.log(row.data());
row = await rows.next();
}
// iter rows
const rows = await conn.queryIter("SELECT * FROM test");
for await (const row of rows) {
console.log(row.values());
}
// pipe rows
import { Transform } from "node:stream";
import { finished, pipeline } from "node:stream/promises";
const rows = await conn.queryIter("SELECT * FROM test");
const stream = rows.stream();
const transformer = new Transform({
readableObjectMode: true,
writableObjectMode: true,
transform(row, _, callback) {
console.log(row.data());
},
});
await pipeline(stream, transformer);
await finished(stream);
Type Mapping
General Data Types
Databend | Node.js |
---|---|
BOOLEAN | Boolean |
TINYINT | Number |
SMALLINT | Number |
INT | Number |
BIGINT | BigInt |
FLOAT | Number |
DOUBLE | Number |
DECIMAL | String |
DATE | Date |
TIMESTAMP | Date |
VARCHAR | String |
BINARY | Buffer |
Semi-Structured Data Types
Databend | Node.js |
---|---|
ARRAY | Array |
TUPLE | Array |
MAP | Object |
VARIANT | String / Object |
BITMAP | String |
GEOMETRY | String |
GEOGRAPHY | String |
Note: VARIANT
is a json encoded string. Example:
CREATE TABLE example (
data VARIANT
);
INSERT INTO example VALUES ('{"a": 1, "b": "hello"}');
const row = await conn.queryRow("SELECT * FROM example limit 1;");
const data = row.values()[0];
const value = JSON.parse(data);
console.log(value);
We also provide a helper function to convert VARIANT
to Object
:
const row = await conn.queryRow("SELECT * FROM example limit 1;");
row.setOpts({ variantAsObject: true });
console.log(row.data());
Parameter binding
const row = await this.conn.queryRow(
"SELECT $1, $2, $3, $4",
(params = [3, false, 4, "55"]),
);
const row = await this.conn.queryRow(
"SELECT :a, :b, :c, :d",
(params = { a: 3, b: false, c: 4, d: "55" }),
);
const row = await this.conn.queryRow("SELECT ?, ?, ?, ?", [3, false, 4, "55"]);
Development
cd bindings/nodejs
pnpm install
pnpm run build:debug
pnpm run test
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago