Skip to content

Commit aac4c09

Browse files
committedJan 29, 2025
fix(dialect-bun-worker): use stmt.columnNames.length > 0 to detect whether to use stmt.all()
1 parent 60465bc commit aac4c09

File tree

1 file changed

+14
-9
lines changed
  • packages/dialect-bun-worker/src/worker

1 file changed

+14
-9
lines changed
 

‎packages/dialect-bun-worker/src/worker/utils.ts

+14-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Statement } from 'bun:sqlite'
22
import type { MessageHandleFn } from 'kysely-generic-sqlite/worker'
33
import type { InitData } from '../type'
44
import Database from 'bun:sqlite'
5-
import { buildQueryFn, type IGenericSqlite, parseBigInt, type Promisable } from 'kysely-generic-sqlite'
5+
import { type IGenericSqlite, parseBigInt, type Promisable } from 'kysely-generic-sqlite'
66
import { createWebOnMessageCallback } from 'kysely-generic-sqlite/worker-helper-web'
77

88
async function* iterateData(
@@ -49,20 +49,25 @@ export function createOnMessageCallback(
4949

5050
function createSqliteExecutor(db: Database, cache: boolean): IGenericSqlite<Database> {
5151
const fn = cache ? 'query' : 'prepare'
52-
const getStmt = (sql: string) => db[fn](sql)
52+
const getStmt = (sql: string, parameters?: any[]) => db[fn](sql, parameters)
5353

5454
return {
5555
db,
56-
query: buildQueryFn({
57-
all: (sql, parameters) => getStmt(sql).all(...parameters || []),
58-
run: (sql, parameters) => {
59-
const { changes, lastInsertRowid } = getStmt(sql).run(...parameters || [])
56+
query: (_, sql, parameters) => {
57+
const stmt = getStmt(sql, parameters as any[])
58+
if (stmt.columnNames.length > 0) {
59+
return {
60+
rows: stmt.all(),
61+
}
62+
} else {
63+
const { changes, lastInsertRowid } = stmt.run()
6064
return {
61-
insertId: parseBigInt(lastInsertRowid),
6265
numAffectedRows: parseBigInt(changes),
66+
insertId: parseBigInt(lastInsertRowid),
67+
rows: [],
6368
}
64-
},
65-
}),
69+
}
70+
},
6671
close: () => db.close(),
6772
iterator: (_, sql, parameters) => iterateData(getStmt(sql), parameters),
6873
}

0 commit comments

Comments
 (0)
Please sign in to comment.