-C Don't\sdo\sanything\swhen\sinput\sdoclists\sare\sboth\sempty.\s\sTicket\s#2774\s(CVS\s4546)
-D 2007-11-16T00:23:08
+C Fix\sa\scrash\sthat\scan\soccur\safter\sa\smalloc\sfailure.\sTicket\s#2775.\s(CVS\s4547)
+D 2007-11-16T14:55:46
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in 30c7e3ba426ddb253b8ef037d1873425da6009a8
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/test_tclvar.c b2d1115e4d489179d3f029e765211b2ad527ba59
F src/test_thread.c a98d69cae883e53d3686fc25889a5fa5f51439f8
F src/tokenize.c 67e42600ab34f976f2b1288c499ad6c98d652f0e
-F src/trigger.c 724a77d54609a33bde90618934fbeddfcc729a10
+F src/trigger.c 66695e1375b969ea41a38dec9f40ea28bb0ac767
F src/update.c 2add92a6159fa73128653706574afbcd8fd1dd80
F src/utf.c ef4b7d83bae533b76c3e1bf635b113fdad86a736
F src/util.c 05f31144bbd3f1a24f4139ae029c42545cb72624
F test/lock3.test 615111293cf32aa2ed16d01c6611737651c96fb9
F test/lock4.test f358fa835dff485d462072eee991111f09e87441
F test/main.test 05f585bb70c05caac3e047903b517cbb319ed204
-F test/malloc.test 16ee55742216e3d0fdadb695fb90ad229f46b32c
+F test/malloc.test 93fca57780e221192c74e51c59c4291768f33897
F test/malloc2.test 850471731efad72af5a7748e366a371933ff0b64
F test/malloc3.test 3d690cbd66c93a3d41606ed8cfcbe1c9853e9d83
F test/malloc4.test f0e5e0f639f61e2776a6c3f5308f836b3ad8b3c7
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 3bfee76fa6191c6e3aaa4632949b53253c612f36
-R 71e33fb18b19046ee138d1704767511a
-U shess
-Z 2e4be0fc57c5fedb87f3cd5c96e1d006
+P 75cb46f82a6a95dbe9e279dede299bafa2e91cae
+R db6e8cd2b0253bfa9f1838461fb83598
+U danielk1977
+Z 8aaad7de19e849e912adf927a02f955d
-75cb46f82a6a95dbe9e279dede299bafa2e91cae
\ No newline at end of file
+c91bc8d33306881cb2501070dccced92c82cf165
\ No newline at end of file
for(p=pTab->pTrigger; p; p=p->pNext){
int fire_this = 0;
+ sqlite3 *db = pParse->db;
/* Determine whether we should code this trigger */
if(
p->op==op &&
p->tr_tm==tr_tm &&
- (p->pSchema==p->pTabSchema || p->pSchema==pParse->db->aDb[1].pSchema) &&
+ (p->pSchema==p->pTabSchema || p->pSchema==db->aDb[1].pSchema) &&
(op!=TK_UPDATE||!p->pColumns||checkColumnOverLap(p->pColumns,pChanges))
){
TriggerStack *pS; /* Pointer to trigger-stack entry */
/* code the WHEN clause */
endTrigger = sqlite3VdbeMakeLabel(pParse->pVdbe);
- whenExpr = sqlite3ExprDup(pParse->db, p->pWhen);
- if( sqlite3ExprResolveNames(&sNC, whenExpr) ){
+ whenExpr = sqlite3ExprDup(db, p->pWhen);
+ if( db->mallocFailed || sqlite3ExprResolveNames(&sNC, whenExpr) ){
pParse->trigStack = trigStackEntry.pNext;
sqlite3ExprDelete(whenExpr);
return 1;
# to see what happens in the library if a malloc were to really fail
# due to an out-of-memory situation.
#
-# $Id: malloc.test,v 1.51 2007/10/09 08:29:33 danielk1977 Exp $
+# $Id: malloc.test,v 1.52 2007/11/16 14:55:46 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
BEGIN TRANSACTION;
CREATE TABLE t1(a,b);
CREATE TABLE t2(x,y);
- CREATE TRIGGER r1 AFTER INSERT ON t1 BEGIN
+ CREATE TRIGGER r1 AFTER INSERT ON t1 WHEN new.a = 2 BEGIN
INSERT INTO t2(x,y) VALUES(new.rowid,1);
INSERT INTO t2(x,y) SELECT * FROM t2;
INSERT INTO t2 SELECT * FROM t2;