0.26.2 • Published 6 months ago

databend-driver v0.26.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
6 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

6 months ago

0.26.1

7 months ago

0.26.0

7 months ago

0.25.6

7 months ago

0.25.5

7 months ago

0.25.4

8 months ago

0.25.3

8 months ago

0.25.2

8 months ago

0.25.1

8 months ago

0.25.0

8 months ago

0.24.8

8 months ago

0.24.7

9 months ago

0.24.5

9 months ago

0.24.4

9 months ago

0.24.3

10 months ago

0.24.2

10 months ago

0.23.2

10 months ago

0.23.1

10 months ago

0.23.0

10 months ago

0.22.2

11 months ago

0.22.0

11 months ago

0.21.1

11 months ago

0.20.1

1 year ago

0.20.0

1 year ago

0.19.0

1 year ago

0.19.4

1 year ago

0.19.5

1 year 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

2 years ago

0.13.3

2 years ago

0.13.2

2 years ago

0.13.0

2 years ago

0.13.1

2 years ago

0.12.5

2 years ago

0.12.4

2 years ago

0.12.3

2 years ago

0.12.2

2 years 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