aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2010-12-21 21:28:38 +0000
committerdrh <drh@noemail.net>2010-12-21 21:28:38 +0000
commit2a58e9cc32dad4e437ba880a951aa06bb69691e5 (patch)
treebf5191ffce1013d21124f25e88e2509434f954b0 /src
parente0a55f443bdb7f90046ef4b87112a0231b868051 (diff)
downloadsqlite-2a58e9cc32dad4e437ba880a951aa06bb69691e5.tar.gz
sqlite-2a58e9cc32dad4e437ba880a951aa06bb69691e5.zip
Add test cases for the new lookaside hit and miss status outputs. Add
the output of lookaside hit and miss to the command-line shell statistics. FossilOrigin-Name: b0888047bb6d9ac55e29b9224df2ff650728bb78
Diffstat (limited to 'src')
-rw-r--r--src/shell.c8
-rw-r--r--src/test_malloc.c13
2 files changed, 16 insertions, 5 deletions
diff --git a/src/shell.c b/src/shell.c
index 0609e4231..33dc1ac38 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -984,7 +984,7 @@ static int display_stats(
fprintf(pArg->out, "Memory Used: %d (max %d) bytes\n", iCur, iHiwtr);
iHiwtr = iCur = -1;
sqlite3_status(SQLITE_STATUS_MALLOC_COUNT, &iCur, &iHiwtr, bReset);
- fprintf(pArg->out, "Number of Allocations: %d (max %d)\n", iCur, iHiwtr);
+ fprintf(pArg->out, "Number of Outstanding Allocations: %d (max %d)\n", iCur, iHiwtr);
/*
** Not currently used by the CLI.
** iHiwtr = iCur = -1;
@@ -1023,6 +1023,12 @@ static int display_stats(
iHiwtr = iCur = -1;
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_USED, &iCur, &iHiwtr, bReset);
fprintf(pArg->out, "Lookaside Slots Used: %d (max %d)\n", iCur, iHiwtr);
+ sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_HIT, &iCur, &iHiwtr, bReset);
+ fprintf(pArg->out, "Successful lookaside attempts: %d\n", iHiwtr);
+ sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, &iCur, &iHiwtr, bReset);
+ fprintf(pArg->out, "Lookaside failures due to size: %d\n", iHiwtr);
+ sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL, &iCur, &iHiwtr, bReset);
+ fprintf(pArg->out, "Lookaside failures due to OOM: %d\n", iHiwtr);
iHiwtr = iCur = -1;
sqlite3_db_status(db, SQLITE_DBSTATUS_CACHE_USED, &iCur, &iHiwtr, bReset);
fprintf(pArg->out, "Pager Heap Usage: %d bytes\n", iCur);
diff --git a/src/test_malloc.c b/src/test_malloc.c
index 08642c9fe..c63ded703 100644
--- a/src/test_malloc.c
+++ b/src/test_malloc.c
@@ -1290,10 +1290,13 @@ static int test_db_status(
const char *zName;
int op;
} aOp[] = {
- { "SQLITE_DBSTATUS_LOOKASIDE_USED", SQLITE_DBSTATUS_LOOKASIDE_USED },
- { "SQLITE_DBSTATUS_CACHE_USED", SQLITE_DBSTATUS_CACHE_USED },
- { "SQLITE_DBSTATUS_SCHEMA_USED", SQLITE_DBSTATUS_SCHEMA_USED },
- { "SQLITE_DBSTATUS_STMT_USED", SQLITE_DBSTATUS_STMT_USED }
+ { "LOOKASIDE_USED", SQLITE_DBSTATUS_LOOKASIDE_USED },
+ { "CACHE_USED", SQLITE_DBSTATUS_CACHE_USED },
+ { "SCHEMA_USED", SQLITE_DBSTATUS_SCHEMA_USED },
+ { "STMT_USED", SQLITE_DBSTATUS_STMT_USED },
+ { "LOOKASIDE_HIT", SQLITE_DBSTATUS_LOOKASIDE_HIT },
+ { "LOOKASIDE_MISS_SIZE", SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE },
+ { "LOOKASIDE_MISS_FULL", SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL }
};
Tcl_Obj *pResult;
if( objc!=4 ){
@@ -1302,6 +1305,8 @@ static int test_db_status(
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
zOpName = Tcl_GetString(objv[2]);
+ if( memcmp(zOpName, "SQLITE_", 7)==0 ) zOpName += 7;
+ if( memcmp(zOpName, "DBSTATUS_", 9)==0 ) zOpName += 9;
for(i=0; i<ArraySize(aOp); i++){
if( strcmp(aOp[i].zName, zOpName)==0 ){
op = aOp[i].op;