diff --git a/manifest b/manifest index bd32e047c5..fbc3bd3483 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sfurther\stest\scases\sfor\scompile\stime\slimits.\s(CVS\s3963) -D 2007-05-09T11:37:23 +C Fix\san\sobscure\scache\scorruption\sthat\scould\soccur\safter\san\sSQLITE_FULL\serror.\s(CVS\s3964) +D 2007-05-09T15:56:40 F Makefile.in 87b200ad9970907f76df734d29dff3d294c10935 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -92,7 +92,7 @@ F src/os_unix.c cb1fb044b84870c7b1b8b2902e9d7be779f8b7ce F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e F src/os_win.c 3b6169038101d06c54b4f04662bfd44b6cf2f289 F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b -F src/pager.c 8799ca4265f3c24f5ef0f7a18290caeb6f23633c +F src/pager.c 42c77875451d04c149a27cea2bd4c917014ace4e F src/pager.h 94110a5570dca30d54a883e880a3633b2e4c05ae F src/parse.y fe7efcbf0ef1727cb2c08c1a10869b4ac9d5e71d F src/pragma.c 0703152b9edd6601eea95e1d474b3bc2962d7920 @@ -340,7 +340,7 @@ F test/shared_err.test cc528f6e78665787e93d9ce3a782a2ce5179d821 F test/sort.test 0e4456e729e5a92a625907c63dcdedfbe72c5dc5 F test/speed1.test 22e1b27af0683ed44dcd2f93ed817a9c3e65084a F test/speed2.test 53177056baf6556dcbdcf032bbdfc41c1aa74ded -F test/sqllimits1.test f06a5574698513b3d3e48892b36bc0549ef87295 +F test/sqllimits1.test d5d0047bd2d3f5a50c596cf0800cee223fe32ff9 F test/subquery.test ae324ee928c5fb463a3ce08a8860d6e7f1ca5797 F test/subselect.test 974e87f8fc91c5f00dd565316d396a5a6c3106c4 F test/sync.test d05397b8f89f423dd6dba528692019ab036bc1c3 @@ -486,7 +486,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P 8819617b7cf7ccd64bf6bb4ba208f37126964ec2 -R 54a1b89c49a017368635873118232ab3 +P 9bf2c594a48a4661700f0833562ee2b3ff7b761c +R e6e433ce97807ce8e1a14237202d778b U danielk1977 -Z 4e9b895f8f222ff1332fffb6b3691a1c +Z 5e57374f56d07a6eac9a76bd05073c8d diff --git a/manifest.uuid b/manifest.uuid index e4dc7baa38..42a3f4d97a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9bf2c594a48a4661700f0833562ee2b3ff7b761c \ No newline at end of file +e8e879aca67dee959bab42627028964c474da72f \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index 288d8cb5bc..0cc99dcddd 100644 --- a/src/pager.c +++ b/src/pager.c @@ -18,7 +18,7 @@ ** file simultaneously, or one process from reading the database while ** another is writing. ** -** @(#) $Id: pager.c,v 1.338 2007/05/08 21:45:28 drh Exp $ +** @(#) $Id: pager.c,v 1.339 2007/05/09 15:56:40 danielk1977 Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -3077,6 +3077,7 @@ int sqlite3PagerAcquire( */ if( nMax<(int)pgno || MEMDB || (noContent && !pPager->alwaysRollback) ){ if( pgno>pPager->mxPgno ){ + sqlite3PagerUnref(pPg); return SQLITE_FULL; } memset(PGHDR_TO_DATA(pPg), 0, pPager->pageSize); diff --git a/test/sqllimits1.test b/test/sqllimits1.test index 7cba40dd35..0dcbaa121f 100644 --- a/test/sqllimits1.test +++ b/test/sqllimits1.test @@ -12,7 +12,7 @@ # This file contains tests to verify that the limits defined in # sqlite source file limits.h are enforced. # -# $Id: sqllimits1.test,v 1.5 2007/05/09 11:37:23 danielk1977 Exp $ +# $Id: sqllimits1.test,v 1.6 2007/05/09 15:56:40 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -157,7 +157,6 @@ do_test sqllimits1-3.6 { } } {0 7} - #-------------------------------------------------------------------- # Test cases sqllimits1-4.* test the SQLITE_MAX_COLUMN limit. # @@ -243,6 +242,20 @@ do_test sqllimits-1.4.9 { # the expression. # # TODO +do_test sqllimits-1.5.1 { + execsql { + PRAGMA max_page_count = 1000000; -- 1 GB + CREATE TABLE v0(a); + } + db transaction { + for {set i 1} {$i < 2000} {incr i} { + set expr "([string repeat {a AND } 50]a AND a) AS a" + execsql [subst { + CREATE VIEW v${i} AS SELECT $expr FROM v0 + }] + } + } +} {} #-------------------------------------------------------------------- # Test cases sqllimits-6.* test that the SQLITE_MAX_VDBE_OP