Skip to content

Commit 5235bcc

Browse files
committed
scanstatus reset
1 parent 570a98d commit 5235bcc

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

lib/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ declare namespace BetterSqlite3 {
4343
scanStatusV2(idx: number, opcode: ScanStatOpcode.SQLITE_SCANSTAT_PARENTID, resetFlag: number): number | undefined;
4444
scanStatusV2(idx: number, opcode: ScanStatOpcode.SQLITE_SCANSTAT_NCYCLE, resetFlag: number): number | undefined;
4545
scanStatusV2(idx: number, opcode: ScanStatOpcode, resetFlag: number): number | string | undefined;
46+
scanStatusReset(): this;
4647
}
4748

4849
interface ColumnDefinition {

src/objects/statement.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ INIT(Statement::Init) {
6565
SetPrototypeMethod(isolate, data, t, "safeIntegers", JS_safeIntegers);
6666
SetPrototypeMethod(isolate, data, t, "columns", JS_columns);
6767
SetPrototypeMethod(isolate, data, t, "scanStatusV2", JS_scanStatusV2);
68+
SetPrototypeMethod(isolate, data, t, "scanStatusReset", JS_scanStatusReset);
6869
SetPrototypeGetter(isolate, data, t, "busy", JS_busy);
6970
return t->GetFunction(OnlyContext).ToLocalChecked();
7071
}
@@ -450,6 +451,15 @@ NODE_METHOD(Statement::JS_scanStatusV2) {
450451
}
451452
}
452453

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+
453463
NODE_GETTER(Statement::JS_busy) {
454464
Statement* stmt = Unwrap<Statement>(info.This());
455465
info.GetReturnValue().Set(stmt->alive && stmt->locked);

src/objects/statement.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Statement : public node::ObjectWrap { friend class StatementIterator;
4444
static NODE_METHOD(JS_safeIntegers);
4545
static NODE_METHOD(JS_columns);
4646
static NODE_METHOD(JS_scanStatusV2);
47+
static NODE_METHOD(JS_scanStatusReset);
4748
static NODE_GETTER(JS_busy);
4849

4950
Database* const db;

0 commit comments

Comments
 (0)