aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vdbeapi.c')
-rw-r--r--src/vdbeapi.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/vdbeapi.c b/src/vdbeapi.c
index 920780a89..885b17f76 100644
--- a/src/vdbeapi.c
+++ b/src/vdbeapi.c
@@ -1815,6 +1815,22 @@ int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt){
}
/*
+** Set the explain mode for a statement.
+*/
+int sqlite3_stmt_explain(sqlite3_stmt *pStmt, int eMode){
+ Vdbe *v = (Vdbe*)pStmt;
+ int rc;
+ if( v->eVdbeState!=VDBE_READY_STATE ) return SQLITE_BUSY;
+ if( v->explain==eMode ) return SQLITE_OK;
+ if( v->zSql==0 || eMode<0 || eMode>2 ) return SQLITE_ERROR;
+ sqlite3_mutex_enter(v->db->mutex);
+ v->explain = eMode;
+ rc = sqlite3Reprepare(v);
+ sqlite3_mutex_leave(v->db->mutex);
+ return rc;
+}
+
+/*
** Return true if the prepared statement is in need of being reset.
*/
int sqlite3_stmt_busy(sqlite3_stmt *pStmt){