diff options
author | dan <dan@noemail.net> | 2010-08-11 06:04:19 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2010-08-11 06:04:19 +0000 |
commit | 216eaab2822b1ac5a91bd6ebaf985e9d8455f35b (patch) | |
tree | 767e1276efbce92ddf5185719f38d5140aa21275 /src/test_stat.c | |
parent | 84612fec1c94840c7175a4aa03ffac5505960467 (diff) | |
parent | 7e68423894fae26d25ef4e1d6b8513469020db07 (diff) | |
download | sqlite-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.c | 14 |
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); } |