@rocicorp/zero-sqlite3 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/objects/statement.cpp +23 -3
- package/src/objects/statement.hpp +1 -0
package/lib/index.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ declare namespace BetterSqlite3 {
|
|
|
43
43
|
scanStatusV2(idx: number, opcode: ScanStatOpcode.SQLITE_SCANSTAT_PARENTID, resetFlag: number): number | undefined;
|
|
44
44
|
scanStatusV2(idx: number, opcode: ScanStatOpcode.SQLITE_SCANSTAT_NCYCLE, resetFlag: number): number | undefined;
|
|
45
45
|
scanStatusV2(idx: number, opcode: ScanStatOpcode, resetFlag: number): number | string | undefined;
|
|
46
|
+
scanStatusReset(): this;
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
interface ColumnDefinition {
|
package/package.json
CHANGED
|
@@ -65,6 +65,7 @@ INIT(Statement::Init) {
|
|
|
65
65
|
SetPrototypeMethod(isolate, data, t, "safeIntegers", JS_safeIntegers);
|
|
66
66
|
SetPrototypeMethod(isolate, data, t, "columns", JS_columns);
|
|
67
67
|
SetPrototypeMethod(isolate, data, t, "scanStatusV2", JS_scanStatusV2);
|
|
68
|
+
SetPrototypeMethod(isolate, data, t, "scanStatusReset", JS_scanStatusReset);
|
|
68
69
|
SetPrototypeGetter(isolate, data, t, "busy", JS_busy);
|
|
69
70
|
return t->GetFunction(OnlyContext).ToLocalChecked();
|
|
70
71
|
}
|
|
@@ -416,12 +417,22 @@ NODE_METHOD(Statement::JS_scanStatusV2) {
|
|
|
416
417
|
}
|
|
417
418
|
return;
|
|
418
419
|
}
|
|
420
|
+
case SQLITE_SCANSTAT_SELECTID:
|
|
421
|
+
case SQLITE_SCANSTAT_PARENTID: {
|
|
422
|
+
// Integer opcodes (int)
|
|
423
|
+
int pOut;
|
|
424
|
+
rc = sqlite3_stmt_scanstatus_v2(stmt->handle, idx, opcode, flags, (void*)&pOut);
|
|
425
|
+
if (rc == SQLITE_OK) {
|
|
426
|
+
info.GetReturnValue().Set(v8::Number::New(isolate, (double)pOut));
|
|
427
|
+
} else {
|
|
428
|
+
info.GetReturnValue().Set(v8::Undefined(isolate));
|
|
429
|
+
}
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
419
432
|
case SQLITE_SCANSTAT_NLOOP:
|
|
420
433
|
case SQLITE_SCANSTAT_NVISIT:
|
|
421
|
-
case SQLITE_SCANSTAT_SELECTID:
|
|
422
|
-
case SQLITE_SCANSTAT_PARENTID:
|
|
423
434
|
case SQLITE_SCANSTAT_NCYCLE: {
|
|
424
|
-
// Integer opcodes
|
|
435
|
+
// Integer opcodes (int64)
|
|
425
436
|
sqlite3_int64 pOut;
|
|
426
437
|
rc = sqlite3_stmt_scanstatus_v2(stmt->handle, idx, opcode, flags, (void*)&pOut);
|
|
427
438
|
if (rc == SQLITE_OK) {
|
|
@@ -440,6 +451,15 @@ NODE_METHOD(Statement::JS_scanStatusV2) {
|
|
|
440
451
|
}
|
|
441
452
|
}
|
|
442
453
|
|
|
454
|
+
NODE_METHOD(Statement::JS_scanStatusReset) {
|
|
455
|
+
Statement* stmt = Unwrap<Statement>(info.This());
|
|
456
|
+
REQUIRE_DATABASE_OPEN(stmt->db->GetState());
|
|
457
|
+
REQUIRE_DATABASE_NOT_BUSY(stmt->db->GetState());
|
|
458
|
+
|
|
459
|
+
sqlite3_stmt_scanstatus_reset(stmt->handle);
|
|
460
|
+
info.GetReturnValue().Set(info.This());
|
|
461
|
+
}
|
|
462
|
+
|
|
443
463
|
NODE_GETTER(Statement::JS_busy) {
|
|
444
464
|
Statement* stmt = Unwrap<Statement>(info.This());
|
|
445
465
|
info.GetReturnValue().Set(stmt->alive && stmt->locked);
|