diff options
Diffstat (limited to 'src/vdbeapi.c')
-rw-r--r-- | src/vdbeapi.c | 16 |
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){ |