aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm/tester1.c-pp.js
diff options
context:
space:
mode:
authorstephan <stephan@noemail.net>2024-07-13 14:07:47 +0000
committerstephan <stephan@noemail.net>2024-07-13 14:07:47 +0000
commit55a4bea72a63412f9cecb78b208794d00e9e8a83 (patch)
tree7f9acc4e3f25ac9ba14759a52e40c86b95dae235 /ext/wasm/tester1.c-pp.js
parent0b9efaffd7eaf7881196b9d443670809f949be60 (diff)
downloadsqlite-55a4bea72a63412f9cecb78b208794d00e9e8a83.tar.gz
sqlite-55a4bea72a63412f9cecb78b208794d00e9e8a83.zip
Add JS bindings for sqlite3_stmt_busy() and sqlite3_stmt_explain().
FossilOrigin-Name: b772edfb44143107d4993bde600d0f4c45184f29a4deee403105c64748c36523
Diffstat (limited to 'ext/wasm/tester1.c-pp.js')
-rw-r--r--ext/wasm/tester1.c-pp.js34
1 files changed, 32 insertions, 2 deletions
diff --git a/ext/wasm/tester1.c-pp.js b/ext/wasm/tester1.c-pp.js
index a6befb54e..68a1ab89c 100644
--- a/ext/wasm/tester1.c-pp.js
+++ b/ext/wasm/tester1.c-pp.js
@@ -1475,7 +1475,8 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
let st = db.prepare("update t set b=:b where a='blob'");
try {
- T.assert(0===st.columnCount);
+ T.assert(0===st.columnCount)
+ .assert( false===st.isReadOnly() );
const ndx = st.getParamIndex(':b');
T.assert(1===ndx);
st.bindAsBlob(ndx, "ima blob")
@@ -3215,7 +3216,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
////////////////////////////////////////////////////////////////////////
T.g('Misc. APIs')
- .t('bind_parameter', function(sqlite3){
+ .t('bind_parameter_...', function(sqlite3){
const db = new sqlite3.oo1.DB();
db.exec("create table t(a)");
const stmt = db.prepare("insert into t(a) values($a)");
@@ -3233,6 +3234,35 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
})
////////////////////////////////////////////////////////////////////
+ .t("Misc. stmt_...", function(sqlite3){
+ const db = new sqlite3.oo1.DB();
+ db.exec(["create table t(a);","insert into t(a) values(123)"]);
+ const stmt = db.prepare("select a from t");
+ T.assert( stmt.isReadOnly() )
+ .assert( 0===capi.sqlite3_stmt_isexplain(stmt) )
+ .assert( 0===capi.sqlite3_stmt_explain(stmt, 1) )
+ .assert( 0!==capi.sqlite3_stmt_isexplain(stmt) )
+ .assert( 0===capi.sqlite3_stmt_explain(stmt, 2) )
+ .assert( 0!==capi.sqlite3_stmt_isexplain(stmt) )
+ .assert( 0===capi.sqlite3_stmt_explain(stmt, 0) )
+ .assert( 0===capi.sqlite3_stmt_isexplain(stmt) );
+ while( capi.SQLITE_ROW === capi.sqlite3_step(stmt) ){
+ T.assert( 0!==capi.sqlite3_stmt_explain(stmt, 1),
+ "Because stmt is busy" )
+ .assert( capi.sqlite3_stmt_busy(stmt) )
+ .assert( stmt.isBusy() )
+ .assert( 0!==capi.sqlite3_stmt_readonly(stmt) )
+ .assert( true===stmt.isReadOnly() );
+ const sv = capi.sqlite3_column_value(stmt, 0);
+ T.assert( 123===capi.sqlite3_value_int(sv) );
+ }
+ T.assert( 0===capi.sqlite3_stmt_busy(stmt) )
+ .assert( !stmt.isBusy() );
+ stmt.finalize();
+ db.close();
+ })
+
+ ////////////////////////////////////////////////////////////////////
.t("interrupt", function(sqlite3){
const db = new sqlite3.oo1.DB();
T.assert( 0===capi.sqlite3_is_interrupted(db) );