aboutsummaryrefslogtreecommitdiff
path: root/src/test1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/test1.c')
-rw-r--r--src/test1.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test1.c b/src/test1.c
index 8a0d09a71..b79bbd082 100644
--- a/src/test1.c
+++ b/src/test1.c
@@ -14,6 +14,7 @@
** testing of the SQLite library.
*/
#include "sqliteInt.h"
+#include "vdbeInt.h"
#include "tcl.h"
#include <stdlib.h>
#include <string.h>
@@ -2326,6 +2327,32 @@ static int test_stmt_readonly(
return TCL_OK;
}
+/*
+** Usage: uses_stmt_journal STMT
+**
+** Return true if STMT uses a statement journal.
+*/
+static int uses_stmt_journal(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+){
+ sqlite3_stmt *pStmt;
+ int rc;
+
+ if( objc!=2 ){
+ Tcl_AppendResult(interp, "wrong # args: should be \"",
+ Tcl_GetStringFromObj(objv[0], 0), " STMT", 0);
+ return TCL_ERROR;
+ }
+
+ if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;
+ rc = sqlite3_stmt_readonly(pStmt);
+ Tcl_SetObjResult(interp, Tcl_NewBooleanObj(((Vdbe *)pStmt)->usesStmtJournal));
+ return TCL_OK;
+}
+
/*
** Usage: sqlite3_reset STMT
@@ -5583,6 +5610,7 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
{ "sqlite3_sql", test_sql ,0 },
{ "sqlite3_next_stmt", test_next_stmt ,0 },
{ "sqlite3_stmt_readonly", test_stmt_readonly ,0 },
+ { "uses_stmt_journal", uses_stmt_journal ,0 },
{ "sqlite3_release_memory", test_release_memory, 0},
{ "sqlite3_soft_heap_limit", test_soft_heap_limit, 0},