Memory DB works with autovacuum. (CVS 3041)

FossilOrigin-Name: 34dff874a2bf8331be87310809ba11d813fadb7d
This commit is contained in:
drh 2006-01-30 22:48:44 +00:00
parent 9051a420d6
commit 3caf58ea65
4 changed files with 35 additions and 11 deletions

View File

@ -1,5 +1,5 @@
C Make\ssure\sthe\s3rd\sparameter\sto\ssqlite3_prepare()\sis\shonored.\s\sTicket\s#1650.\s(CVS\s3040) C Memory\sDB\sworks\swith\sautovacuum.\s(CVS\s3041)
D 2006-01-30T22:35:44 D 2006-01-30T22:48:44
F Makefile.in e936c6fc3134838318aa0335a85041e6da31f6ee F Makefile.in e936c6fc3134838318aa0335a85041e6da31f6ee
F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -59,7 +59,7 @@ F src/os_unix.c 73c5e722a661ed98d8919f204911e4e34e51fa41
F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
F src/os_win.c 566bf7b41b72556fd7dca390bceaa2769dc395e9 F src/os_win.c 566bf7b41b72556fd7dca390bceaa2769dc395e9
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
F src/pager.c c9fdc3f4026f22e73d8fa586c4f58e14129036bb F src/pager.c b5b380ea7a36f84e50c3adc1a414820a0eb3baa6
F src/pager.h e0acb095b3ad0bca48f2ab00c87346665643f64f F src/pager.h e0acb095b3ad0bca48f2ab00c87346665643f64f
F src/parse.y 4285cd2d0f31a8db4c4d54325f88e500452fa029 F src/parse.y 4285cd2d0f31a8db4c4d54325f88e500452fa029
F src/pragma.c 4496cc77dc35824e1c978c3d1413b8a5a4c777d3 F src/pragma.c 4496cc77dc35824e1c978c3d1413b8a5a4c777d3
@ -195,7 +195,7 @@ F test/malloc3.test fd4186bee73c2a2638f4e2a05a684c06836f725b
F test/malloc4.test 59cd02f71b363302a04c4e77b97c0a1572eaa210 F test/malloc4.test 59cd02f71b363302a04c4e77b97c0a1572eaa210
F test/malloc5.test 7425272e263325fda7d32cb55706e52b5c09e7e0 F test/malloc5.test 7425272e263325fda7d32cb55706e52b5c09e7e0
F test/manydb.test 8de36b8d33aab5ef295b11d9e95310aeded31af8 F test/manydb.test 8de36b8d33aab5ef295b11d9e95310aeded31af8
F test/memdb.test ed97df0414a6e33e043e3eeffccb54d06098d0ae F test/memdb.test a67bda4ff90a38f2b19f6c7f95aa7289e051d893
F test/memleak.test df2b2b96e77f8ba159a332299535b1e5f18e49ac F test/memleak.test df2b2b96e77f8ba159a332299535b1e5f18e49ac
F test/minmax.test cad887abca5504396718e2cd5729ca40758743e8 F test/minmax.test cad887abca5504396718e2cd5729ca40758743e8
F test/misc1.test 5a9cfffc59e5da583492a1c07efcb08a48cd1135 F test/misc1.test 5a9cfffc59e5da583492a1c07efcb08a48cd1135
@ -349,7 +349,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P 8efc8c57103cab61bc06842391744bec69c24428 P 9d53cc880fd2aa3bd4b4a59f666b57b0b7864e8f
R 67662a16bac53c6b6882b43161155881 R a00b5e878885404ba1ff7012291e506f
U drh U drh
Z 3ce9dce65c4451fa921d25ff4c0e8dad Z 3c9e0a653cb5ce6429201a9bb17db65f

View File

@ -1 +1 @@
9d53cc880fd2aa3bd4b4a59f666b57b0b7864e8f 34dff874a2bf8331be87310809ba11d813fadb7d

View File

@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while ** file simultaneously, or one process from reading the database while
** another is writing. ** another is writing.
** **
** @(#) $Id: pager.c,v 1.256 2006/01/24 13:09:33 danielk1977 Exp $ ** @(#) $Id: pager.c,v 1.257 2006/01/30 22:48:44 drh Exp $
*/ */
#ifndef SQLITE_OMIT_DISKIO #ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h" #include "sqliteInt.h"
@ -2676,7 +2676,7 @@ int sqlite3pager_get(Pager *pPager, Pgno pgno, void **ppPage){
/* Populate the page with data, either by reading from the database /* Populate the page with data, either by reading from the database
** file, or by setting the entire page to zero. ** file, or by setting the entire page to zero.
*/ */
if( sqlite3pager_pagecount(pPager)<(int)pgno ){ if( sqlite3pager_pagecount(pPager)<(int)pgno || MEMDB ){
memset(PGHDR_TO_DATA(pPg), 0, pPager->pageSize); memset(PGHDR_TO_DATA(pPg), 0, pPager->pageSize);
}else{ }else{
assert( MEMDB==0 ); assert( MEMDB==0 );

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The # This file implements regression tests for SQLite library. The
# focus of this script is in-memory database backend. # focus of this script is in-memory database backend.
# #
# $Id: memdb.test,v 1.14 2006/01/17 09:35:02 danielk1977 Exp $ # $Id: memdb.test,v 1.15 2006/01/30 22:48:44 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
@ -388,6 +388,30 @@ ifcapable subquery {
} }
} }
# Ticket #1524
#
do_test memdb-8.1 {
db close
sqlite3 db {:memory:}
execsql {
PRAGMA auto_vacuum=TRUE;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES(randstr(5000,6000));
INSERT INTO t1 VALUES(randstr(5000,6000));
INSERT INTO t1 VALUES(randstr(5000,6000));
INSERT INTO t1 VALUES(randstr(5000,6000));
INSERT INTO t1 VALUES(randstr(5000,6000));
SELECT count(*) FROM t1;
}
} 5
do_test memdb-8.2 {
execsql {
DELETE FROM t1;
SELECT count(*) FROM t1;
}
} 0
} ;# ifcapable memorydb } ;# ifcapable memorydb
finish_test finish_test