mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Add the SQLITE_STMTSTATUS_REPREPARE and SQLITE_STMTSTATUS_RUN options to
sqlite3_stmt_status(). Use this for two new columns in the stmts virtual table. FossilOrigin-Name: b0b0c8f8d548ef78584ab714ab120b01c1b83fc0d8ae2fd7626b970bab9fca58
This commit is contained in:
@ -92,20 +92,23 @@ static int stmtsConnect(
|
||||
int rc;
|
||||
|
||||
/* Column numbers */
|
||||
#define STMTS_COLUMN_PTR 0 /* Numeric value of the statement pointer */
|
||||
#define STMTS_COLUMN_SQL 1 /* SQL for the statement */
|
||||
#define STMTS_COLUMN_NCOL 2 /* Number of result columns */
|
||||
#define STMTS_COLUMN_RO 3 /* True if read-only */
|
||||
#define STMTS_COLUMN_BUSY 4 /* True if currently busy */
|
||||
#define STMTS_COLUMN_NSCAN 5 /* SQLITE_STMTSTATUS_FULLSCAN_STEP */
|
||||
#define STMTS_COLUMN_NSORT 6 /* SQLITE_STMTSTATUS_SORT */
|
||||
#define STMTS_COLUMN_NAIDX 7 /* SQLITE_STMTSTATUS_AUTOINDEX */
|
||||
#define STMTS_COLUMN_NSTEP 8 /* SQLITE_STMTSTATUS_VM_STEP */
|
||||
#define STMTS_COLUMN_MEM 9 /* SQLITE_STMTSTATUS_MEMUSED */
|
||||
#define STMTS_COLUMN_PTR 0 /* Numeric value of the statement pointer */
|
||||
#define STMTS_COLUMN_SQL 1 /* SQL for the statement */
|
||||
#define STMTS_COLUMN_NCOL 2 /* Number of result columns */
|
||||
#define STMTS_COLUMN_RO 3 /* True if read-only */
|
||||
#define STMTS_COLUMN_BUSY 4 /* True if currently busy */
|
||||
#define STMTS_COLUMN_NSCAN 5 /* SQLITE_STMTSTATUS_FULLSCAN_STEP */
|
||||
#define STMTS_COLUMN_NSORT 6 /* SQLITE_STMTSTATUS_SORT */
|
||||
#define STMTS_COLUMN_NAIDX 7 /* SQLITE_STMTSTATUS_AUTOINDEX */
|
||||
#define STMTS_COLUMN_NSTEP 8 /* SQLITE_STMTSTATUS_VM_STEP */
|
||||
#define STMTS_COLUMN_REPREP 9 /* SQLITE_STMTSTATUS_REPREPARE */
|
||||
#define STMTS_COLUMN_RUN 10 /* SQLITE_STMTSTATUS_RUN */
|
||||
#define STMTS_COLUMN_MEM 11 /* SQLITE_STMTSTATUS_MEMUSED */
|
||||
|
||||
|
||||
rc = sqlite3_declare_vtab(db,
|
||||
"CREATE TABLE x(ptr,sql,ncol,ro,busy,nscan,nsort,naidx,nstep,mem)");
|
||||
"CREATE TABLE x(ptr,sql,ncol,ro,busy,nscan,nsort,naidx,nstep,"
|
||||
"reprep,run,mem)");
|
||||
if( rc==SQLITE_OK ){
|
||||
pNew = sqlite3_malloc( sizeof(*pNew) );
|
||||
*ppVtab = (sqlite3_vtab*)pNew;
|
||||
@ -187,11 +190,17 @@ static int stmtsColumn(
|
||||
sqlite3_result_int(ctx, sqlite3_stmt_busy(pCur->pStmt));
|
||||
break;
|
||||
}
|
||||
case STMTS_COLUMN_MEM: {
|
||||
i = SQLITE_STMTSTATUS_MEMUSED +
|
||||
STMTS_COLUMN_NSCAN - SQLITE_STMTSTATUS_FULLSCAN_STEP;
|
||||
/* Fall thru */
|
||||
}
|
||||
case STMTS_COLUMN_NSCAN:
|
||||
case STMTS_COLUMN_NSORT:
|
||||
case STMTS_COLUMN_NAIDX:
|
||||
case STMTS_COLUMN_NSTEP:
|
||||
case STMTS_COLUMN_MEM: {
|
||||
case STMTS_COLUMN_REPREP:
|
||||
case STMTS_COLUMN_RUN: {
|
||||
sqlite3_result_int(ctx, sqlite3_stmt_status(pCur->pStmt,
|
||||
i-STMTS_COLUMN_NSCAN+SQLITE_STMTSTATUS_FULLSCAN_STEP, 0));
|
||||
break;
|
||||
|
Reference in New Issue
Block a user