Fix some issues with out-of-memory recovery. (CVS 4710)
FossilOrigin-Name: 23181f86896e7c9e993e00032e735e67ee6b2e71
This commit is contained in:
parent
949f9cd565
commit
0e359b30a9
16
manifest
16
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
|
||||
|
@ -1 +1 @@
|
||||
110c000d86bd4a0b4b946c62d11a435426b02d16
|
||||
23181f86896e7c9e993e00032e735e67ee6b2e71
|
@ -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 <ctype.h>
|
||||
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user