Skip to content

Commit 5aaa488

Browse files
committed
Newer deno needs updated vendor’d sqlite
1 parent 41a6961 commit 5aaa488

File tree

3 files changed

+39
-151
lines changed

3 files changed

+39
-151
lines changed

vendor/sqlite3@0.10.0/src/database.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,9 @@ export class Database {
189189
}
190190
}
191191

192-
const pHandle = new Uint32Array(2);
192+
const pHandle = new BigUint64Array(1);
193193
const result = sqlite3_open_v2(toCString(this.#path), pHandle, flags, null);
194-
this.#handle = Deno.UnsafePointer.create(pHandle[0] + 2 ** 32 * pHandle[1]);
194+
this.#handle = Deno.UnsafePointer.create(pHandle[0]);
195195
if (result !== 0) sqlite3_close_v2(this.#handle);
196196
unwrap(result);
197197

@@ -264,15 +264,15 @@ export class Database {
264264
const { sqlite3_exec, sqlite3_free, sqlite3_changes } = ffi()
265265

266266
if (params.length === 0) {
267-
const pErr = new Uint32Array(2);
267+
const pErr = new BigUint64Array(1);
268268
sqlite3_exec(
269269
this.#handle,
270270
toCString(sql),
271271
null,
272272
null,
273273
new Uint8Array(pErr.buffer),
274274
);
275-
const errPtr = Deno.UnsafePointer.create(pErr[0] + 2 ** 32 * pErr[1]);
275+
const errPtr = Deno.UnsafePointer.create(pErr[0]);
276276
if (errPtr !== null) {
277277
const err = readCstr(errPtr);
278278
sqlite3_free(errPtr);
@@ -405,7 +405,7 @@ export class Database {
405405
const args: any[] = [];
406406
for (let i = 0; i < nArgs; i++) {
407407
const arg = Deno.UnsafePointer.create(
408-
Number(argptr.getBigUint64(i * 8)),
408+
argptr.getBigUint64(i * 8),
409409
);
410410
const type = sqlite3_value_type(arg);
411411
switch (type) {
@@ -459,15 +459,16 @@ export class Database {
459459
} else if (typeof result === "boolean") {
460460
sqlite3_result_int(ctx, result ? 1 : 0);
461461
} else if (typeof result === "number") {
462-
if (Number.isSafeInteger(result)) sqlite3_result_int64(ctx, result);
463-
else sqlite3_result_double(ctx, result);
462+
if (Number.isSafeInteger(result)) {
463+
sqlite3_result_int64(ctx, BigInt(result));
464+
} else sqlite3_result_double(ctx, result);
464465
} else if (typeof result === "bigint") {
465466
sqlite3_result_int64(ctx, result);
466467
} else if (typeof result === "string") {
467468
const buffer = new TextEncoder().encode(result);
468-
sqlite3_result_text(ctx, buffer, buffer.byteLength, 0);
469+
sqlite3_result_text(ctx, buffer, buffer.byteLength, 0n);
469470
} else if (result instanceof Uint8Array) {
470-
sqlite3_result_blob(ctx, result, result.length, -1);
471+
sqlite3_result_blob(ctx, result, result.length, -1n);
471472
} else {
472473
const buffer = new TextEncoder().encode(
473474
`Invalid return value: ${Deno.inspect(result)}`,

vendor/sqlite3@0.10.0/src/ffi.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,6 @@ const symbols = {
7676
result: "i32",
7777
},
7878

79-
sqlite3_step_cb: {
80-
name: "sqlite3_step",
81-
callback: true,
82-
parameters: [
83-
"pointer", // sqlite3_stmt *pStmt
84-
],
85-
result: "i32",
86-
},
87-
8879
sqlite3_column_count: {
8980
parameters: [
9081
"pointer", // sqlite3_stmt *pStmt

0 commit comments

Comments
 (0)