]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make REINDEX robust in the face of malloc() errors. (CVS 3990)
authordrh <drh@noemail.net>
Sat, 12 May 2007 15:00:14 +0000 (15:00 +0000)
committerdrh <drh@noemail.net>
Sat, 12 May 2007 15:00:14 +0000 (15:00 +0000)
FossilOrigin-Name: dbe417745d3d4ed875715ad7083d7345d1b6a56f

manifest
manifest.uuid
src/build.c
test/mallocA.test

index 04150e8fd3a359a758dc28c49c65c4f39bf8d0ad..b2d0924d9d8e87029ccc50c9c1aabd7191726042 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sthe\sANALYZE\scommand\srobust\sin\sthe\sface\sof\smalloc()\sfailures.\s(CVS\s3989)
-D 2007-05-12T12:08:51
+C Make\sREINDEX\srobust\sin\sthe\sface\sof\smalloc()\serrors.\s(CVS\s3990)
+D 2007-05-12T15:00:15
 F Makefile.in 87b200ad9970907f76df734d29dff3d294c10935
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -64,7 +64,7 @@ F src/auth.c 902f4722661c796b97f007d9606bd7529c02597f
 F src/btree.c 0c2f9b06c90d7c59925c03153c9d47fd739c8ca5
 F src/btree.h 1d527bf61ed176f980c34999d5793a0fd45dcf8c
 F src/btreeInt.h cb3c0e9eb842d06079a62cdf3492c90c5db7ba75
-F src/build.c 5789303291d40a1d37bfede83c1c769be22c88ab
+F src/build.c 8e744caf66d4411143985863108736887096d634
 F src/callback.c 9c12535669a638f90a67e10440b99c7b93c0fbf4
 F src/complete.c 7d1a44be8f37de125fcafd3d3a018690b3799675
 F src/date.c 6049db7d5a8fdf2c677ff7d58fa31d4f6593c988
@@ -296,7 +296,7 @@ F test/malloc6.test 025ae0b78542e0ddd000d23f79d93e9be9ba0f15
 F test/malloc7.test 1cf52834509eac7ebeb92105dacd4669f9ca9869
 F test/malloc8.test e4054ca2a87ab1d42255bec009b177ba20b5a487
 F test/malloc9.test 8381041fd89c31fba60c8a1a1c776bb022108572
-F test/mallocA.test d8b8de87bf2e605e6d4507f96b87fa1d891693e2
+F test/mallocA.test 525674e6e0775a9bf85a33f1da1c6bbddc712c30
 F test/manydb.test 8de36b8d33aab5ef295b11d9e95310aeded31af8
 F test/memdb.test a67bda4ff90a38f2b19f6c7f95aa7289e051d893
 F test/memleak.test d2d2a1ff7105d32dc3fdf691458cf6cba58c7217
@@ -490,7 +490,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 260338c4b2b18c9f4da8bc7fe3eda306dcaa4e38
-R f6d6bb84867a23616a67a2ab24e70c0a
+P c08658e1f8598941ebddddb98942b98cfcb86e7a
+R 72a1de25bc540615c732aa41aeba85b0
 U drh
-Z 29e801396d63998d48f02963b7838607
+Z 5ad3bb426ed54207061f91dbb90ceab1
index abd9bcc1ef2f6222599bea132bc13ce8a480226b..288f9db600fd8e4c4ed84217a4ba6d54b75e9403 100644 (file)
@@ -1 +1 @@
-c08658e1f8598941ebddddb98942b98cfcb86e7a
\ No newline at end of file
+dbe417745d3d4ed875715ad7083d7345d1b6a56f
\ No newline at end of file
index a96a8faf2e2709c86256480ca25464e759afed6f..4d4a30e8030e5c9efa0f5c3fc81744f02b9cf72f 100644 (file)
@@ -22,7 +22,7 @@
 **     COMMIT
 **     ROLLBACK
 **
-** $Id: build.c,v 1.429 2007/05/08 20:59:49 drh Exp $
+** $Id: build.c,v 1.430 2007/05/12 15:00:15 drh Exp $
 */
 #include "sqliteInt.h"
 #include <ctype.h>
@@ -3306,6 +3306,7 @@ void sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2){
   iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pObjName);
   if( iDb<0 ) return;
   z = sqlite3NameFromToken(pObjName);
+  if( z==0 ) return;
   zDb = db->aDb[iDb].zName;
   pTab = sqlite3FindTable(db, z, zDb);
   if( pTab ){
index 507b90727e09d40b903edcc22b5a77dd1dc65182..be2b816610ddf5c157f2cfa5b3dad55747013442 100644 (file)
@@ -10,7 +10,7 @@
 #***********************************************************************
 # This file contains additional out-of-memory checks (see malloc.tcl).
 #
-# $Id: mallocA.test,v 1.1 2007/05/12 12:08:51 drh Exp $
+# $Id: mallocA.test,v 1.2 2007/05/12 15:00:15 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -118,7 +118,7 @@ proc do_malloc_test {tn args} {
 #
 file delete -force test.db.bu
 db eval {
-  CREATE TABLE t1(a,b,c);
+  CREATE TABLE t1(a COLLATE NOCASE,b,c);
   INSERT INTO t1 VALUES(1,2,3);
   INSERT INTO t1 VALUES(1,2,4);
   INSERT INTO t1 VALUES(2,3,4);
@@ -134,6 +134,18 @@ sqlite3 db test.db
 do_malloc_test 1 -sqlbody {
   ANALYZE
 }
+do_malloc_test 2 -sqlbody {
+  REINDEX;
+}
+do_malloc_test 3 -sqlbody {
+  REINDEX t1;
+}
+do_malloc_test 4 -sqlbody {
+  REINDEX main.t1;
+}
+do_malloc_test 5 -sqlbody {
+  REINDEX nocase;
+}
 
 # Ensure that no file descriptors were leaked.
 do_test malloc-99.X {