mirror of https://github.com/sqlite/sqlite
Working on the pager (CVS 212)
FossilOrigin-Name: 1f07abe46e2de8c5d9659bd5a78efe4ce23144ae
This commit is contained in:
parent
d9b0257a24
commit
d79caeba1c
14
manifest
14
manifest
|
@ -1,5 +1,5 @@
|
|||
C Pager\sis\sworking,\smostly.\s(CVS\s211)
|
||||
D 2001-04-15T00:37:09
|
||||
C Working\son\sthe\spager\s(CVS\s212)
|
||||
D 2001-04-15T02:27:25
|
||||
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
|
||||
F Makefile.in ac01d6145714b0d1c9e99382caf03cf30d6f4c8d
|
||||
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
|
||||
|
@ -26,7 +26,7 @@ F src/ex/sizes.tcl f54bad4a2ac567624be59131a6ee42d71b41a3d7
|
|||
F src/expr.c c4c24c3af1eba094a816522eb0e085bed518ee16
|
||||
F src/insert.c aa528e20a787af85432a61daaea6df394bd251d7
|
||||
F src/main.c 92ce30a89f622ba36cc8b7d912829e14a480722c
|
||||
F src/pager.c 52dc932c937cfd5ccdd3c40527ea57878994a99c
|
||||
F src/pager.c cc49d7e22a4fc0264f584d7938f990a1897f7edd
|
||||
F src/pager.h 8678d9a97fdf1c111b619a13a351e5c8ab97cb81
|
||||
F src/parse.y 8fc096948994a7ffbf61ba13129cc589f794a9cb
|
||||
F src/printf.c b1e22a47be8cdf707815647239991e08e8cb69f9
|
||||
|
@ -59,7 +59,7 @@ F test/insert2.test 732405e30331635af8d159fccabe835eea5cd0c6
|
|||
F test/lock.test bca7d53de73138b1f670a2fbdb1f481ff7eaa45a
|
||||
F test/main.test da635f9e078cd21ddf074e727381a715064489ff
|
||||
F test/malloc.test 3daa97f6a9577d8f4c6e468b274333af19ce5861
|
||||
F test/pager.test 2317ccf5821f15a637b84fa5f4d36b4c85a52a12
|
||||
F test/pager.test 4c27be3e0da89caa36fa3c2b84468785f330acca
|
||||
F test/printf.test 4c71871e1a75a2dacb673945fc13ddb30168798f
|
||||
F test/rowid.test 128453599def7435e988216f7fe89c7450b8a9a3
|
||||
F test/select1.test 223507655cdb4f9901d83fa7f5c5328e022c211f
|
||||
|
@ -101,7 +101,7 @@ F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
|
|||
F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
|
||||
F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2
|
||||
F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad
|
||||
P 42c2f3fe68c8a6bab96e035371ecd64296c5491f
|
||||
R 558a8ad440acd3c96149b89f77d45a0d
|
||||
P f82fa7070ae281804c019e6b05cd767dadaf0827
|
||||
R 6b66dff388a84887995d516ce20e212a
|
||||
U drh
|
||||
Z 6080de1bb9d6e86286ceffe08ee69ef0
|
||||
Z cd993793033a1da271251878dcd01e6e
|
||||
|
|
|
@ -1 +1 @@
|
|||
f82fa7070ae281804c019e6b05cd767dadaf0827
|
||||
1f07abe46e2de8c5d9659bd5a78efe4ce23144ae
|
|
@ -27,7 +27,7 @@
|
|||
** all writes in order to support rollback. Locking is used to limit
|
||||
** access to one or more reader or on writer.
|
||||
**
|
||||
** @(#) $Id: pager.c,v 1.3 2001/04/15 00:37:09 drh Exp $
|
||||
** @(#) $Id: pager.c,v 1.4 2001/04/15 02:27:25 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
#include "pager.h"
|
||||
|
@ -456,7 +456,7 @@ int sqlitepager_open(Pager **ppPager, const char *zFilename, int mxPage){
|
|||
pPager->nRef = 0;
|
||||
pPager->dbSize = -1;
|
||||
pPager->nPage = 0;
|
||||
pPager->mxPage = mxPage>10 ? mxPage : 10;
|
||||
pPager->mxPage = mxPage>5 ? mxPage : 10;
|
||||
pPager->state = SQLITE_UNLOCK;
|
||||
pPager->errMask = 0;
|
||||
pPager->pFirst = 0;
|
||||
|
@ -620,6 +620,7 @@ int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage){
|
|||
pPager->pAll->pPrevAll = pPg;
|
||||
}
|
||||
pPg->pPrevAll = 0;
|
||||
pPager->pAll = pPg;
|
||||
pPager->nPage++;
|
||||
}else{
|
||||
/* Recycle an older page. First locate the page to be recycled.
|
||||
|
@ -776,7 +777,7 @@ int sqlitepager_unref(void *pData){
|
|||
int sqlitepager_write(void *pData){
|
||||
PgHdr *pPg = DATA_TO_PGHDR(pData);
|
||||
Pager *pPager = pPg->pPager;
|
||||
int rc;
|
||||
int rc = SQLITE_OK;
|
||||
|
||||
if( pPager->errMask ){
|
||||
return pager_errcode(pPager);
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
# This file implements regression tests for SQLite library. The
|
||||
# focus of this script is page cache subsystem.
|
||||
#
|
||||
# $Id: pager.test,v 1.1 2001/04/15 00:37:21 drh Exp $
|
||||
# $Id: pager.test,v 1.2 2001/04/15 02:27:25 drh Exp $
|
||||
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
|
@ -165,11 +165,50 @@ do_test pager-2.28 {
|
|||
do_test pager-2.29 {
|
||||
page_read $::g1
|
||||
} {Page-One}
|
||||
|
||||
do_test pager-2.99 {
|
||||
pager_close $::p1
|
||||
} {}
|
||||
|
||||
do_test pager-3.1 {
|
||||
set v [catch {
|
||||
set ::p1 [pager_open ptf1.db 5]
|
||||
} msg]
|
||||
if {$v} {lappend v $msg}
|
||||
set v
|
||||
} {0}
|
||||
do_test pager-3.2 {
|
||||
pager_pagecount $::p1
|
||||
} {1}
|
||||
do_test pager-3.3 {
|
||||
set v [catch {
|
||||
set ::g(1) [page_get $::p1 1]
|
||||
} msg]
|
||||
if {$v} {lappend v $msg}
|
||||
set v
|
||||
} {0}
|
||||
do_test pager-3.4 {
|
||||
page_read $::g(1)
|
||||
} {Page-One}
|
||||
do_test pager-3.5 {
|
||||
for {set i 2} {$i<=20} {incr i} {
|
||||
set gx [page_get $::p1 $i]
|
||||
page_write $gx "Page-$i"
|
||||
page_unref $gx
|
||||
}
|
||||
pager_commit $::p1
|
||||
} {}
|
||||
for {set i 2} {$i<=20} {incr i} {
|
||||
do_test pager-3.6.[expr {$i-1}] [subst {
|
||||
set gx \[page_get $::p1 $i\]
|
||||
set v \[page_read \$gx\]
|
||||
page_unref \$gx
|
||||
set v
|
||||
}] "Page-$i"
|
||||
}
|
||||
do_test pager-3.99 {
|
||||
pager_close $::p1
|
||||
} {}
|
||||
|
||||
|
||||
} ;# end if( not mem: and has pager_open command );
|
||||
|
||||
|
|
Loading…
Reference in New Issue