0.26.2 • Published 4 months ago

databend-driver v0.26.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months ago

databend-driver

Databend Node.js Client

image License image

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

Databend Types

General Data Types

DatabendNode.js
BOOLEANBoolean
TINYINTNumber
SMALLINTNumber
INTNumber
BIGINTBigInt
FLOATNumber
DOUBLENumber
DECIMALString
DATEDate
TIMESTAMPDate
VARCHARString
BINARYBuffer

Semi-Structured Data Types

DatabendNode.js
ARRAYArray
TUPLEArray
MAPObject
VARIANTString / Object
BITMAPString
GEOMETRYString
GEOGRAPHYString

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
0.26.2

4 months ago

0.26.1

4 months ago

0.26.0

4 months ago

0.25.6

5 months ago

0.25.5

5 months ago

0.25.4

5 months ago

0.25.3

5 months ago

0.25.2

5 months ago

0.25.1

5 months ago

0.25.0

6 months ago

0.24.8

6 months ago

0.24.7

6 months ago

0.24.5

7 months ago

0.24.4

7 months ago

0.24.3

7 months ago

0.24.2

7 months ago

0.23.2

7 months ago

0.23.1

7 months ago

0.23.0

7 months ago

0.22.2

8 months ago

0.22.0

8 months ago

0.21.1

8 months ago

0.20.1

11 months ago

0.20.0

11 months ago

0.19.0

12 months ago

0.19.4

12 months ago

0.19.5

11 months ago

0.18.2

1 year ago

0.18.3

1 year ago

0.18.1

1 year ago

0.18.0

1 year ago

0.17.3

1 year ago

0.17.2

1 year ago

0.17.1

1 year ago

0.17.0

1 year ago

0.16.3

1 year ago

0.16.2

1 year ago

0.16.1

1 year ago

0.16.0

1 year ago

0.15.0

1 year ago

0.14.0

1 year ago

0.13.3

1 year ago

0.13.2

1 year ago

0.13.0

1 year ago

0.13.1

1 year ago

0.12.5

1 year ago

0.12.4

1 year ago

0.12.3

1 year ago

0.12.2

1 year ago

0.12.1

2 years ago

0.12.0

2 years ago

0.11.3

2 years ago

0.11.2

2 years ago

0.11.1

2 years ago

0.11.0

2 years ago

0.10.0

2 years ago

0.9.5

2 years ago

0.9.4

2 years ago

0.9.3

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.9.0

2 years ago

0.8.2

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.6.7

2 years ago

0.6.6

2 years ago

0.6.5

2 years ago

0.6.4

2 years ago

0.6.3

2 years ago

0.6.2

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.7

2 years ago

0.4.6

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago