Return a better error message when problems are encountered parsing a
TEMP trigger or TEMP view that references objects in other databases that have been modified or dropped. Ticket #3810. (CVS 6956) FossilOrigin-Name: 102785b9fbc5ab5dd740110243f080e3f3661e87
This commit is contained in:
parent
a0e0d8ea98
commit
35ccb3d3bc
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Add\sa\stestcase\sfor\sticket\s#3810.\s(CVS\s6955)
|
||||
D 2009-08-01T15:54:26
|
||||
C Return\sa\sbetter\serror\smessage\swhen\sproblems\sare\sencountered\sparsing\sa\nTEMP\strigger\sor\sTEMP\sview\sthat\sreferences\sobjects\sin\sother\sdatabases\sthat\nhave\sbeen\smodified\sor\sdropped.\s\sTicket\s#3810.\s(CVS\s6956)
|
||||
D 2009-08-01T16:27:00
|
||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||
F Makefile.in df9359da7a726ccb67a45db905c5447d5c00c6ef
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@ -154,7 +154,7 @@ F src/pcache.c c92ffd4f3e1279b3766854c6d18b5bf4aac0d1fa
|
||||
F src/pcache.h 435ef324197f79391f9c92b71d7f92b548ad7a36
|
||||
F src/pcache1.c 6dc833c89feac405dd8b4858232c97e679f182ec
|
||||
F src/pragma.c 9eb44ac1d3dc1ac3ea4f444abe1a10ae8acaa16c
|
||||
F src/prepare.c 312ba96867ae9df6bd1a57cb84a9fd315e61cf8d
|
||||
F src/prepare.c 153f3eb168c3447ff770c445609bfec012daeba1
|
||||
F src/printf.c 508a1c59433353552b6553cba175eaa7331f8fc1
|
||||
F src/random.c 676b9d7ac820fe81e6fb2394ac8c10cff7f38628
|
||||
F src/resolve.c 4a61d03e49b15440878096e6030863fc628828f0
|
||||
@ -646,7 +646,7 @@ F test/tkt3762.test 2a9f3b03df44ec49ec0cfa8d5da6574c2a7853df
|
||||
F test/tkt3773.test 430b06567ce40285dfd2c4834a2a61816403efeb
|
||||
F test/tkt3791.test a6624b9a80b216a26cf473607f42f3e51898c267
|
||||
F test/tkt3793.test 754b73f0e6a9349c70dc57e522cf3247272ecd5d
|
||||
F test/tkt3810.test c51a9cd94971231ed45011eae316d1730b57beaf
|
||||
F test/tkt3810.test 9b666811c5cd504f23d07e29039b8df8cf906dba
|
||||
F test/tkt3824.test 3da2f5c81b057e3ff355f5dfc9aa0cf0a92e0206
|
||||
F test/tkt3832.test 7ebd5ac82d1e430accd5eec9768044133a94c2aa
|
||||
F test/tkt3838.test 2a1525946bc9d3751e1d49ce95f3a2472f2b7408
|
||||
@ -741,7 +741,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746
|
||||
P 359d78e144c2399791d341eda1760eb486f9740a
|
||||
R 624db1eaa8d87e6b2697962c8db1bbed
|
||||
P 29972f7445cede64d99c2433742572120c92b393
|
||||
R ff18f397fd87c0e1701eae3715427eb1
|
||||
U drh
|
||||
Z b5928333d6bd809b9819c0f1cdd1949f
|
||||
Z a6872a7f6773f3439623a0342ef806df
|
||||
|
@ -1 +1 @@
|
||||
29972f7445cede64d99c2433742572120c92b393
|
||||
102785b9fbc5ab5dd740110243f080e3f3661e87
|
@ -13,7 +13,7 @@
|
||||
** interface, and routines that contribute to loading the database schema
|
||||
** from disk.
|
||||
**
|
||||
** $Id: prepare.c,v 1.129 2009/07/24 17:58:53 danielk1977 Exp $
|
||||
** $Id: prepare.c,v 1.130 2009/08/01 16:27:00 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
|
||||
@ -27,13 +27,18 @@ static void corruptSchema(
|
||||
const char *zExtra /* Error information */
|
||||
){
|
||||
sqlite3 *db = pData->db;
|
||||
if( pData->iDb==1 && zObj && zExtra ){
|
||||
*pData->pzErrMsg = sqlite3MPrintf(db, "in %s: %s", zObj, zExtra);
|
||||
pData->rc = SQLITE_ERROR;
|
||||
return;
|
||||
}
|
||||
if( !db->mallocFailed && (db->flags & SQLITE_RecoveryMode)==0 ){
|
||||
if( zObj==0 ) zObj = "?";
|
||||
sqlite3SetString(pData->pzErrMsg, pData->db,
|
||||
"malformed database schema (%s)", zObj);
|
||||
sqlite3SetString(pData->pzErrMsg, db,
|
||||
"malformed database schema (%s)", zObj);
|
||||
if( zExtra ){
|
||||
*pData->pzErrMsg = sqlite3MAppendf(pData->db, *pData->pzErrMsg, "%s - %s",
|
||||
*pData->pzErrMsg, zExtra);
|
||||
*pData->pzErrMsg = sqlite3MAppendf(db, *pData->pzErrMsg,
|
||||
"%s - %s", *pData->pzErrMsg, zExtra);
|
||||
}
|
||||
}
|
||||
pData->rc = db->mallocFailed ? SQLITE_NOMEM : SQLITE_CORRUPT;
|
||||
|
@ -11,14 +11,14 @@
|
||||
#
|
||||
# Tests to make sure #3810 is fixed.
|
||||
#
|
||||
# $Id: tkt3810.test,v 1.1 2009/08/01 15:54:26 drh Exp $
|
||||
# $Id: tkt3810.test,v 1.2 2009/08/01 16:27:00 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
|
||||
# Create a table using the first database connection.
|
||||
#
|
||||
do_test tkt3810-1 {
|
||||
do_test tkt3810-1.1 {
|
||||
execsql {
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(123);
|
||||
@ -46,8 +46,10 @@ do_test tkt3810-3 {
|
||||
CREATE TEMP TRIGGER r1 AFTER INSERT ON t1 BEGIN
|
||||
INSERT INTO t1 VALUES(2345);
|
||||
END;
|
||||
SELECT * FROM t1;
|
||||
}
|
||||
} {}
|
||||
catchsql {
|
||||
SELECT * FROM t1;
|
||||
}
|
||||
} {1 {in r1: no such table: t1}}
|
||||
|
||||
finish_test
|
||||
|
Loading…
x
Reference in New Issue
Block a user