Skip to content

Commit a2afedb

Browse files
committed
Improved bulk loading example [skip ci]
1 parent c9d776c commit a2afedb

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

examples/loading/example.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,17 @@ await pgvector.registerTypes(client);
2020
await client.query('DROP TABLE IF EXISTS items');
2121
await client.query(`CREATE TABLE items (id bigserial, embedding vector(${dimensions}))`);
2222

23+
function copyRow(stream, line) {
24+
return new Promise((resolve) => {
25+
let ok = stream.write(line);
26+
if (!ok) {
27+
stream.once('drain', () => resolve());
28+
} else {
29+
resolve();
30+
}
31+
});
32+
}
33+
2334
// load data
2435
console.log(`Loading ${embeddings.length} rows`);
2536
const stream = client.query(copyFrom('COPY items (embedding) FROM STDIN'));
@@ -30,7 +41,7 @@ for (const [i, embedding] of embeddings.entries()) {
3041
}
3142

3243
const line = `${pgvector.toSql(embedding)}\n`;
33-
stream.flushChunk(line);
44+
await copyRow(stream, line);
3445
}
3546

3647
stream.on('finish', async function () {

0 commit comments

Comments
 (0)