aboutsummaryrefslogtreecommitdiff
path: root/src/test_stat.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-08-11 06:04:19 +0000
committerdan <dan@noemail.net>2010-08-11 06:04:19 +0000
commit216eaab2822b1ac5a91bd6ebaf985e9d8455f35b (patch)
tree767e1276efbce92ddf5185719f38d5140aa21275 /src/test_stat.c
parent84612fec1c94840c7175a4aa03ffac5505960467 (diff)
parent7e68423894fae26d25ef4e1d6b8513469020db07 (diff)
downloadsqlite-216eaab2822b1ac5a91bd6ebaf985e9d8455f35b.tar.gz
sqlite-216eaab2822b1ac5a91bd6ebaf985e9d8455f35b.zip
Merge experimental changes into trunk.
FossilOrigin-Name: aa092ac928dc19bd356d25a1dfd3f432dc145ce6
Diffstat (limited to 'src/test_stat.c')
-rw-r--r--src/test_stat.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/test_stat.c b/src/test_stat.c
index 894be80ec..153462111 100644
--- a/src/test_stat.c
+++ b/src/test_stat.c
@@ -376,7 +376,13 @@ static int statNext(sqlite3_vtab_cursor *pCursor){
if( pCsr->aPage[0].pPg==0 ){
rc = sqlite3_step(pCsr->pStmt);
if( rc==SQLITE_ROW ){
+ int nPage;
u32 iRoot = sqlite3_column_int64(pCsr->pStmt, 1);
+ sqlite3PagerPagecount(pPager, &nPage);
+ if( nPage==0 ){
+ pCsr->isEof = 1;
+ return sqlite3_reset(pCsr->pStmt);
+ }
rc = sqlite3PagerGet(pPager, iRoot, &pCsr->aPage[0].pPg);
pCsr->aPage[0].iPgno = iRoot;
pCsr->aPage[0].iCell = 0;
@@ -486,17 +492,9 @@ static int statFilter(
int idxNum, const char *idxStr,
int argc, sqlite3_value **argv
){
- sqlite3 *db = ((StatTable *)(pCursor->pVtab))->db;
StatCursor *pCsr = (StatCursor *)pCursor;
- int nPage = 0;
statResetCsr((StatCursor *)pCursor);
- sqlite3PagerPagecount(sqlite3BtreePager(db->aDb[0].pBt), &nPage);
- if( nPage==0 ){
- pCsr->isEof = 1;
- return SQLITE_OK;
- }
-
return statNext(pCursor);
}