]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When a parse of the sqlite_master table fails, include the name of the
authordrh <drh@noemail.net>
Wed, 19 Mar 2008 13:03:33 +0000 (13:03 +0000)
committerdrh <drh@noemail.net>
Wed, 19 Mar 2008 13:03:33 +0000 (13:03 +0000)
object being parsed as part of the error message. (CVS 4881)

FossilOrigin-Name: 57805b588f6b6d070918102a0ff096ade674279a

12 files changed:
manifest
manifest.uuid
src/prepare.c
src/util.c
test/analyze.test
test/capi3.test
test/capi3c.test
test/corrupt2.test
test/corrupt5.test
test/index3.test
test/trigger7.test
test/vtab_shared.test

index 983e3d7866117ed201297e0a0bbf628b97a31cb7..267623d1540b90d73a204cd5a6c256b619f07c56 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sthe\sdependency\son\sthe\sdirect\sbtree\sinterface\sfrom\sas\smany\stest\nscripts\sas\sis\spractical.\s\sFix\sa\sbug\sin\sthe\soutput\slimiter\sof\sthe\nintegrity_check\spragma\sthat\scame\sup\swhile\smaking\sthis\schange.\s(CVS\s4880)
-D 2008-03-19T00:21:31
+C When\sa\sparse\sof\sthe\ssqlite_master\stable\sfails,\sinclude\sthe\sname\sof\sthe\nobject\sbeing\sparsed\sas\spart\sof\sthe\serror\smessage.\s(CVS\s4881)
+D 2008-03-19T13:03:34
 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
 F Makefile.in 5be94fea84f1599672e5041de03b97990baca593
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -133,7 +133,7 @@ F src/pager.c 2ebd895730163721d0b470aca47afbe28039c5e7
 F src/pager.h 8174615ffd14ccc2cad2b081b919a398fa95e3f9
 F src/parse.y 00f2698c8ae84f315be5e3f10b63c94f531fdd6d
 F src/pragma.c 09128fe3e2b5108d322a66b19a6f2974dac64479
-F src/prepare.c 62e46b1951ff80efca0c35ae1c4bb58a9d24df7f
+F src/prepare.c 88e32e985921e9fb5d3ca22ccc74e054ebfe49f2
 F src/printf.c eb27822ba2eec669161409ca31279a24c26ac910
 F src/random.c 02ef38b469237482f1ea14a78b2087cfbaec48bd
 F src/select.c d0a1e01a2a6c05bd60324e843c7e4581d3605950
@@ -172,7 +172,7 @@ F src/tokenize.c c4b79fd48ddb709b2b8522b7d93a5a3d98168ca4
 F src/trigger.c 9bd3b6fa0beff4a02d262c96466f752ec15a7fc3
 F src/update.c 9b3be169cd2a0b065717164aa0f90aa48f34aed1
 F src/utf.c 32b00d6e19010025e58f2ecb2f921d5e126771b4
-F src/util.c c56e41ed4769c1f2b8af9ffde4757a7b4fb08ed1
+F src/util.c dba9e04121eb17ec4643d6ca231ff859452cf0e2
 F src/vacuum.c 3f34f278809bf3eb0b62ec46ff779e9c385b28f0
 F src/vdbe.c c63fcb1c1259e59477f1312e0a868d148f23a148
 F src/vdbe.h 58a7d931ffb704e034b2a725981cfa5bd406fad9
@@ -191,7 +191,7 @@ F test/alter.test 1426bb4c8609731622a9bf9dd48c39f5931c4d7d
 F test/alter2.test dd55146e812622c8fc51fd2216bcd8dca8880752
 F test/alter3.test 25b95a136708f22b87184fa6a4309eea03d65153
 F test/altermalloc.test 29d4a8400277efb4ba8ffe90804c6dc2fdfbf063
-F test/analyze.test 2f55535aa335785db1a2f97d3f3831c16c09f8b0
+F test/analyze.test 309ae29d81dbc2e4b07c3c16ba615889deb77c46
 F test/async.test aecaa46ed0618a3c338f3651ca4f10fbb4021044
 F test/async2.test 8998e089b0fbb3d84cdd51c25a78833486d721af
 F test/async3.test 9ffa0977a78cc6351862a1583be2b1eecd41736d
@@ -226,9 +226,9 @@ F test/btree9.test 5d8711b241145b90f65dd1795d5dd8290846fa5e
 F test/busy.test 76b4887f8b9160ba903c1ac22e8ff406ad6ae2f0
 F test/cache.test 3ff445c445742a7b6b9ba6e1d62a25263f9424b9
 F test/capi2.test cc64df7560a96f848f919ea2926c60acf639684b
-F test/capi3.test 8abe9bc7b21c6d402628e66fee1b77a47f3800b7
+F test/capi3.test 928999c4fb7c70239a4c7b8f9fa52d5cdba9b568
 F test/capi3b.test 664eb55318132f292f2c436f90906f578cad6b97
-F test/capi3c.test f17c6936835213fae25a6686f7fbbbf024c94b5e
+F test/capi3c.test 976673c1c5caef84201473ea5f7bb7b3093935a8
 F test/cast.test ce8f14fc80f70b30ed984480cc0d8914a459e8f9
 F test/check.test 024ed399600b799160378cf9d9f436bdf5dfd184
 F test/collate1.test e3eaa48c21e150814be1a7b852d2a8af24458d04
@@ -244,10 +244,10 @@ F test/collateA.test 84ff3239d530c1a2c784159594b2ae05238e3ff7
 F test/colmeta.test 087c42997754b8c648819832241daf724f813322
 F test/conflict.test bb29b052c60a1f7eb6382be77902061d1f305318
 F test/corrupt.test 18c7a995b1af76a8c8600b996257f2c7b7bff083
-F test/corrupt2.test 572f8df0303d0ce63ddad5c5c9101a83a345ae46
+F test/corrupt2.test 8059c7354aaba91e7405b4503b79f456c816df8e
 F test/corrupt3.test 263e8bb04e2728df832fddf6973cf54c91db0c32
 F test/corrupt4.test acdb01afaedf529004b70e55de1a6f5a05ae7fff
-F test/corrupt5.test 36073300a786b546fb17d39955d5105b9c8b3582
+F test/corrupt5.test 7796d5bdfe155ed824cee9dff371f49da237cfe0
 F test/crash.test 1b6ac8410689ff78028887f445062dc897c9ac89
 F test/crash2.test 26d7a4c5520201e5de2c696ea51ab946b59dc0e9
 F test/crash3.test 0b09687ae1a3ccbcefdfaeb4b963e26e36255d76
@@ -343,7 +343,7 @@ F test/incrvacuum2.test a958e378c193c4012cb3787804d863487f1dfad1
 F test/incrvacuum_ioerr.test cb331403b8dea3c5bae6163861ff25037b0df56a
 F test/index.test cbf301cdb2da43e4eac636c3400c2439af1834ad
 F test/index2.test ee83c6b5e3173a3d7137140d945d9a5d4fdfb9d6
-F test/index3.test f66718cd92ce1216819d47e6a156755e4b2c4ca1
+F test/index3.test 727d55dceb9a4ec36675057bb5becfc265e28ca6
 F test/insert.test aef273dd1cee84cc92407469e6bd1b3cdcb76908
 F test/insert2.test 4f3a04d168c728ed5ec2c88842e772606c7ce435
 F test/insert3.test 9a4ef3526fd3cca8b05278020ec3100448b4c677
@@ -510,7 +510,7 @@ F test/trigger3.test 9102fd3933db294dc654b5aee9edfe9e94f2b9e2
 F test/trigger4.test 8e90ee98cba940cd5f96493f82e55083806ab8a0
 F test/trigger5.test 619391a3e9fc194081d22cefd830d811e7badf83
 F test/trigger6.test 0e411654f122552da6590f0b4e6f781048a4a9b9
-F test/trigger7.test 0afa870be2ce1b132cdb85b17a4a4ef45aa8cece
+F test/trigger7.test 194984b3f6f851eb905cd0a7bffac09f36cf1244
 F test/trigger8.test 3a09275aa2214fdff56f731b1e775d8dfee4408a
 F test/trigger9.test b42703c378916d52a5e240ba98b25b155d3927a3
 F test/triggerA.test 8dbf5bffa3190bd513785a24a573a166a885fc1b
@@ -537,7 +537,7 @@ F test/vtab9.test ea58d2b95d61955f87226381716b2d0b1d4e4f9b
 F test/vtabA.test 9cb6b1afead6fdd91bbdf1ca65c44ccfd9b10936
 F test/vtab_alter.test 3a299749fee97ca3d53bd55717f536e4a2284856
 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
-F test/vtab_shared.test d631d1f820c38c18939d53aab1fc35db5f0a8094
+F test/vtab_shared.test c19b2555b807ef2ee014c882cdda5bc8d84fcf48
 F test/where.test 5ff4a1bda6352b73354faf1a97706bbfa0d47dfe
 F test/where2.test 7012c0ad022a54430dd22c98288d3f4d6599dbcf
 F test/where3.test 0a30fe9808b0fa01c46d0fcf4fac0bf6cf75bb30
@@ -623,7 +623,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 074ee55ffd1f0b7bb120a440d8bcf19e249ada96
-R bac1ef9b629a837280f01f7433baefc9
+P 24e769972eb6052b82dc94d20444c186a213e104
+R 4b77bcd32296c6d86f572479659c9d8c
 U drh
-Z 6a01323dbd724dd5c8307094b92f096d
+Z a9c107b0ba3f9820562b16ec8e95592e
index 6377c766b252856ad8383cdc97edfec33ef05acc..2f3bc693281ce8c634bcaf5476d752df40e64bf7 100644 (file)
@@ -1 +1 @@
-24e769972eb6052b82dc94d20444c186a213e104
\ No newline at end of file
+57805b588f6b6d070918102a0ff096ade674279a
\ No newline at end of file
index 8bda5e7899c1b4b40a2488398c234319c0551f40..0118f65cad67d49005a4a76e5c5c8c373c52133f 100644 (file)
@@ -13,7 +13,7 @@
 ** interface, and routines that contribute to loading the database schema
 ** from disk.
 **
-** $Id: prepare.c,v 1.78 2008/03/08 12:23:31 drh Exp $
+** $Id: prepare.c,v 1.79 2008/03/19 13:03:34 drh Exp $
 */
 #include "sqliteInt.h"
 #include <ctype.h>
 ** Fill the InitData structure with an error message that indicates
 ** that the database is corrupt.
 */
-static void corruptSchema(InitData *pData, const char *zExtra){
+static void corruptSchema(
+  InitData *pData,     /* Initialization context */
+  const char *zObj,    /* Object being parsed at the point of error */
+  const char *zExtra   /* Error information */
+){
   if( !pData->db->mallocFailed ){
-    sqlite3SetString(pData->pzErrMsg, "malformed database schema",
+    if( zObj==0 ) zObj = "?";
+    sqlite3SetString(pData->pzErrMsg, "malformed database schema (",  zObj, ")",
        zExtra!=0 && zExtra[0]!=0 ? " - " : (char*)0, zExtra, (char*)0);
   }
   pData->rc = SQLITE_CORRUPT;
@@ -51,14 +56,14 @@ int sqlite3InitCallback(void *pInit, int argc, char **argv, char **azColName){
   pData->rc = SQLITE_OK;
   DbClearProperty(db, iDb, DB_Empty);
   if( db->mallocFailed ){
-    corruptSchema(pData, 0);
+    corruptSchema(pData, argv[0], 0);
     return SQLITE_NOMEM;
   }
 
   assert( argc==3 );
   if( argv==0 ) return 0;   /* Might happen if EMPTY_RESULT_CALLBACKS are on */
   if( argv[1]==0 ){
-    corruptSchema(pData, 0);
+    corruptSchema(pData, argv[0], 0);
     return 1;
   }
   assert( iDb>=0 && iDb<db->nDb );
@@ -81,13 +86,13 @@ int sqlite3InitCallback(void *pInit, int argc, char **argv, char **azColName){
       if( rc==SQLITE_NOMEM ){
         db->mallocFailed = 1;
       }else if( rc!=SQLITE_INTERRUPT ){
-        corruptSchema(pData, zErr);
+        corruptSchema(pData, argv[0], zErr);
       }
       sqlite3_free(zErr);
       return 1;
     }
   }else if( argv[0]==0 ){
-    corruptSchema(pData, 0);
+    corruptSchema(pData, 0, 0);
   }else{
     /* If the SQL column is blank it means this is an index that
     ** was created to be the PRIMARY KEY or to fulfill a UNIQUE
index f8f02a4d0927be36315582fbcaaee95615fe07b2..e3395e1cdbd2f76e6001b0c72457b9f57a672225 100644 (file)
@@ -14,7 +14,7 @@
 ** This file contains functions for allocating memory, comparing
 ** strings, and stuff like that.
 **
-** $Id: util.c,v 1.216 2008/01/23 03:03:05 drh Exp $
+** $Id: util.c,v 1.217 2008/03/19 13:03:34 drh Exp $
 */
 #include "sqliteInt.h"
 #include <stdarg.h>
@@ -594,8 +594,7 @@ void sqlite3Put4byte(unsigned char *p, u32 v){
 
 
 
-#if !defined(SQLITE_OMIT_BLOB_LITERAL) || defined(SQLITE_HAS_CODEC) \
-    || defined(SQLITE_TEST)
+#if !defined(SQLITE_OMIT_BLOB_LITERAL) || defined(SQLITE_HAS_CODEC)
 /*
 ** Translate a single byte of Hex into an integer.
 */
@@ -609,7 +608,7 @@ static int hexToInt(int h){
     return h - 'A' + 10;
   }
 }
-#endif /* !SQLITE_OMIT_BLOB_LITERAL || SQLITE_HAS_CODEC || SQLITE_TEST */
+#endif /* !SQLITE_OMIT_BLOB_LITERAL || SQLITE_HAS_CODEC */
 
 #if !defined(SQLITE_OMIT_BLOB_LITERAL) || defined(SQLITE_HAS_CODEC)
 /*
index ded287e6bc12421bd99fd6b76c6908ab49403362..664bdbc13bc6a40acdd8cdb8765527be7f10278f 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.
 # This file implements tests for the ANALYZE command.
 #
-# $Id: analyze.test,v 1.5 2005/09/10 22:40:54 drh Exp $
+# $Id: analyze.test,v 1.6 2008/03/19 13:03:34 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -251,7 +251,7 @@ do_test analyze-99.1 {
   catchsql {
     ANALYZE
   }
-} {1 {malformed database schema - near "nonsense": syntax error}}
+} {1 {malformed database schema (sqlite_stat1) - near "nonsense": syntax error}}
 
 
 finish_test
index f5712934dc54ba56de2b65239d367f79c91f5140..cf3b8bb525edf7aebb7dce6d97c585c0f74a23d3 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this script testing the callback-free C/C++ API.
 #
-# $Id: capi3.test,v 1.60 2008/03/19 00:21:31 drh Exp $
+# $Id: capi3.test,v 1.61 2008/03/19 13:03:34 drh Exp $
 #
 
 set testdir [file dirname $argv0]
@@ -690,7 +690,7 @@ if {![sqlite3 -has-codec]} {
     catchsql {
       SELECT * FROM sqlite_master;
     }
-  } {1 {malformed database schema}}
+  } {1 {malformed database schema (?)}}
   do_test capi3-8.4 {
     # Build a 5-field row record. The first field is a string 'table', and
     # subsequent fields are all NULL.
@@ -709,7 +709,7 @@ if {![sqlite3 -has-codec]} {
     catchsql {
       SELECT * FROM sqlite_master;
     }
-  } {1 {malformed database schema}}
+  } {1 {malformed database schema (?)}}
   db close
 }
 file delete -force test.db
index dcf026a91eee2c368e6b4140824559e667579ed9..5ba1cc5bc0a5f8a30f07d414990b13efc59c1d29 100644 (file)
@@ -13,7 +13,7 @@
 # This is a copy of the capi3.test file that has been adapted to
 # test the new sqlite3_prepare_v2 interface.
 #
-# $Id: capi3c.test,v 1.15 2008/03/19 00:21:31 drh Exp $
+# $Id: capi3c.test,v 1.16 2008/03/19 13:03:34 drh Exp $
 #
 
 set testdir [file dirname $argv0]
@@ -675,7 +675,7 @@ if {![sqlite3 -has-codec]} {
     catchsql {
       SELECT * FROM sqlite_master;
     }
-  } {1 {malformed database schema}}
+  } {1 {malformed database schema (?)}}
   do_test capi3c-8.4 {
     # Build a 5-field row record. The first field is a string 'table', and
     # subsequent fields are all NULL.
@@ -694,7 +694,7 @@ if {![sqlite3 -has-codec]} {
     catchsql {
       SELECT * FROM sqlite_master;
     }
-  } {1 {malformed database schema}}
+  } {1 {malformed database schema (?)}}
   db close
 }
 file delete -force test.db
index cba53f6d25d992f535313bbf4a5e7e380387bd16..515669154afbbb0834598ccc3609312376aa1643 100644 (file)
@@ -13,7 +13,7 @@
 # This file implements tests to make sure SQLite does not crash or
 # segfault if it sees a corrupt database file.
 #
-# $Id: corrupt2.test,v 1.4 2007/03/13 16:32:25 danielk1977 Exp $
+# $Id: corrupt2.test,v 1.5 2008/03/19 13:03:34 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -128,7 +128,7 @@ do_test corrupt2-2.1 {
   catchsql {
     SELECT * FROM sqlite_master;
   } db2
-} {1 {malformed database schema - index a3 already exists}}
+} {1 {malformed database schema (a3) - index a3 already exists}}
 
 db2 close
 
index 07f0ff6e877cb0f4bc7efd11f4cd7d7bfbaf1288..0ee85f8134515a2e77ab595c60109d412cc7df11 100644 (file)
@@ -13,7 +13,7 @@
 # This file implements tests to make sure SQLite does not crash or
 # segfault if it sees a corrupt database file.
 #
-# $Id: corrupt5.test,v 1.1 2008/01/22 16:35:37 drh Exp $
+# $Id: corrupt5.test,v 1.2 2008/03/19 13:03:34 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -39,6 +39,6 @@ do_test corrupt5-1.1 {
   catchsql {
     SELECT * FROM t1
   }
-} {1 {malformed database schema}}
+} {1 {malformed database schema (?)}}
 
 finish_test
index c6c6ff4e096e6863d8b2b383e91cd04ae137b860..9549f55b0599f45e62b84ab469e27e7ee04209eb 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the CREATE INDEX statement.
 #
-# $Id: index3.test,v 1.2 2005/08/20 03:03:04 drh Exp $
+# $Id: index3.test,v 1.3 2008/03/19 13:03:34 drh Exp $
 
 
 set testdir [file dirname $argv0]
@@ -53,6 +53,6 @@ do_test index3-99.1 {
   catchsql {
     DROP INDEX i1;
   }
-} {1 {malformed database schema - near "nonsense": syntax error}}
+} {1 {malformed database schema (t1) - near "nonsense": syntax error}}
 
 finish_test
index dfaf18fd7d595f260cb147139351550bc9bf2b2d..2eacd040ae39687c6331fe9b36116412693d9fb3 100644 (file)
@@ -12,7 +12,7 @@
 #
 # This file implements tests to increase coverage of trigger.c.
 #
-# $Id: trigger7.test,v 1.1 2005/08/19 02:26:27 drh Exp $
+# $Id: trigger7.test,v 1.2 2008/03/19 13:03:34 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -116,6 +116,6 @@ do_test trigger7-99.1 {
   catchsql {
     DROP TRIGGER t2r5
   }
-} {1 {malformed database schema - near "nonsense": syntax error}}
+} {1 {malformed database schema (t1) - near "nonsense": syntax error}}
 
 finish_test
index 04ba1ecd8d70aa2581fc1a529c32c570eaf1c46f..cfc48d9a6fdfdb43564c1047078937b95026ff69 100644 (file)
@@ -11,7 +11,7 @@
 # This file tests interactions between the virtual table and
 # shared-schema functionality.
 #
-# $Id: vtab_shared.test,v 1.1 2007/04/16 15:49:42 danielk1977 Exp $
+# $Id: vtab_shared.test,v 1.2 2008/03/19 13:03:34 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -54,9 +54,8 @@ do_test vtab_shared-1.2 {
     SELECT * FROM t1;
   }
 } [list 1 \
-  {malformed database schema - Cannot use virtual tables in shared-cache mode}]
+  {malformed database schema (t1) - Cannot use virtual tables in shared-cache mode}]
 
 db close
 sqlite3_enable_shared_cache 0
 finish_test
-