diff --git a/manifest b/manifest index 84b6a5a032..7b80d9ef2e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C The\ssqlite3_trace()\scallback\snow\sprints\sa\smessage\sas\seach\strigger\sfires\nwithin\sa\sstatement.\s(CVS\s4709) -D 2008-01-12T21:35:57 +C Fix\ssome\sissues\swith\sout-of-memory\srecovery.\s(CVS\s4710) +D 2008-01-13T19:02:11 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 F Makefile.in 30789bf70614bad659351660d76b8e533f3340e9 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -92,7 +92,7 @@ F src/complete.c 4cf68fd75d60257524cbe74f87351b9848399131 F src/date.c 49c5a6d2de6c12000905b4d36868b07d3011bbf6 F src/delete.c 00e536847b8eedc5d35f89f7f38a8a7c1d2a22f9 F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b -F src/expr.c 14130c27fba6fa3c14dcfc4891c534a8ee71cc3c +F src/expr.c be1018f2911bd93e6fc34f216ed263ce733569b6 F src/func.c 996071cf0af9d967e58b69fce1909555059ebc7d F src/hash.c 45a7005aac044b6c86bd7e49c44bc15d30006d6c F src/hash.h 031cd9f915aff27e12262cb9eb570ac1b8326b53 @@ -131,7 +131,7 @@ F src/pragma.c b4e77e057990bb2c295c63327406d9bcbf6c9c08 F src/prepare.c c31a879d6795f4765fd0b113675c6debbc96b7fd F src/printf.c eb27822ba2eec669161409ca31279a24c26ac910 F src/random.c 4a22746501bf36b0a088c66e38dde5daba6a35da -F src/select.c 34c138d90771a5919fa181f7ddde75277d6a9fc6 +F src/select.c 16ba6ec0b3de4971579e66964ba2f25e0b43c78b F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96 F src/shell.c 5391e889384d2062249f668110d64ed16f601c4b F src/sqlite.h.in 2a7e3776534bbe6ff2cdc058f3abebe91e7e429f @@ -163,7 +163,7 @@ F src/test_server.c a6ece6c835e7eae835054124e09e947e422b1ac5 F src/test_tclvar.c b2d1115e4d489179d3f029e765211b2ad527ba59 F src/test_thread.c e297dd41db0b249646e69f97d36ec13e56e8b730 F src/tokenize.c a4e04438c11fed2c67ec47fe3edbef9cca2d1b48 -F src/trigger.c da3e11df34d34c4341d9417d8033facbae16d9e8 +F src/trigger.c 3a863b9952164ab5de58406c26daf06144bbddc4 F src/update.c aad823f97a930e6982264299863837d4c6107d3b F src/utf.c ef4b7d83bae533b76c3e1bf635b113fdad86a736 F src/util.c 05f31144bbd3f1a24f4139ae029c42545cb72624 @@ -606,7 +606,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P 426f31ecdd05d1179a2e49c2ca1666011cede9c6 -R 3435d52d4f2b4750bec1183c99c98b94 +P 110c000d86bd4a0b4b946c62d11a435426b02d16 +R f95030f95502c6367aca6894c92c5e05 U drh -Z 0d14628a3647710d605d98d6d56b6e09 +Z 562fbfe4435b61e96b57af5488c68d5b diff --git a/manifest.uuid b/manifest.uuid index a8a5ebd4e0..09b6698ccb 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -110c000d86bd4a0b4b946c62d11a435426b02d16 \ No newline at end of file +23181f86896e7c9e993e00032e735e67ee6b2e71 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index 9f27266571..52a0f29def 100644 --- a/src/expr.c +++ b/src/expr.c @@ -12,7 +12,7 @@ ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** -** $Id: expr.c,v 1.344 2008/01/12 19:03:49 drh Exp $ +** $Id: expr.c,v 1.345 2008/01/13 19:02:11 drh Exp $ */ #include "sqliteInt.h" #include @@ -2418,7 +2418,8 @@ int sqlite3ExprCodeTemp(Parse *pParse, Expr *pExpr, int *pReg){ */ int sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){ int inReg = sqlite3ExprCodeTarget(pParse, pExpr, target); - if( inReg!=target ){ + assert( pParse->pVdbe || pParse->db->mallocFailed ); + if( inReg!=target && pParse->pVdbe ){ sqlite3VdbeAddOp2(pParse->pVdbe, (inReg>0 ? OP_SCopy : OP_Move), inReg, target); } diff --git a/src/select.c b/src/select.c index f5547aa8cf..fa9f457631 100644 --- a/src/select.c +++ b/src/select.c @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** -** $Id: select.c,v 1.400 2008/01/12 21:35:57 drh Exp $ +** $Id: select.c,v 1.401 2008/01/13 19:02:11 drh Exp $ */ #include "sqliteInt.h" @@ -3540,7 +3540,7 @@ int sqlite3Select( flag = minMaxQuery(pParse, p); if( flag ){ pMinMax = sqlite3ExprListDup(db, p->pEList->a[0].pExpr->pList); - if( pMinMax ){ + if( pMinMax && !db->mallocFailed ){ pMinMax->a[0].sortOrder = ((flag==ORDERBY_MIN)?0:1); pMinMax->a[0].pExpr->op = TK_COLUMN; pDel = pMinMax; diff --git a/src/trigger.c b/src/trigger.c index 3d3348d759..310d60f1ba 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -765,6 +765,7 @@ int sqlite3CodeRowTrigger( u32 *piNewColMask /* OUT: Mask of columns used from the NEW.* table */ ){ Trigger *p; + sqlite3 *db = pParse->db; TriggerStack trigStackEntry; trigStackEntry.oldColMask = 0; @@ -777,7 +778,6 @@ int sqlite3CodeRowTrigger( for(p=pTab->pTrigger; p; p=p->pNext){ int fire_this = 0; - sqlite3 *db = pParse->db; /* Determine whether we should code this trigger */ if( @@ -808,7 +808,7 @@ int sqlite3CodeRowTrigger( #ifndef SQLITE_OMIT_TRACE sqlite3VdbeAddOp4(pParse->pVdbe, OP_Trace, 0, 0, 0, - sqlite3_mprintf("-- TRIGGER %s", p->name), + sqlite3MPrintf(db, "-- TRIGGER %s", p->name), P4_DYNAMIC); #endif memset(&sNC, 0, sizeof(sNC));