diff --git a/manifest b/manifest index dd6f7aa3b0..4041a7b6de 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C :-)\s(CVS\s55) -D 2000-06-06T01:50:43 +C :-)\s(CVS\s56) +D 2000-06-06T03:31:22 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4 F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958 @@ -10,7 +10,7 @@ F src/build.c 6c9454b2e2b866979527fb41b19ad8bc49c27a20 F src/dbbe.c ae8b5d2cdb4fa7dd11313059984be9457fa77f63 F src/dbbe.h a8a46f71238e0f09f3ec08fd9d1c8c7f4cdc49bf F src/delete.c e11433c14ed5cc8553cba14296b3baa3c23054bc -F src/expr.c b309517f59017f3a7c0db76a54bc3bc00e8fea38 +F src/expr.c 278ff688ac72602ad985f4ccadcae665d245b13b F src/insert.c 5e69dd70c3f91cf5ec5090f39fd6cd8e135af9bf F src/main.c 93a7ad14bb5a82ad13ad59da23ef674a94b0c3d6 F src/parse.y 9c459212441d4786bb011945d6a587568368e202 @@ -22,7 +22,7 @@ F src/tclsqlite.c 9f358618ae803bedf4fb96da5154fd45023bc1f7 F src/tokenize.c f190e16ebb82dd60497796022f1e56e2e0527975 F src/update.c 3f05d5082fd2c34f15d1e4a4db17355ad8807a78 F src/util.c 33f9baa01e45394ef0cf85361a0e872987884315 -F src/vdbe.c 03177425b174d865f2c37b188a9df8a37f4eaff2 +F src/vdbe.c 7d00f9ff05cf1287ee21c2a73d9ba0ebdf07b4b6 F src/vdbe.h 49e0f9c6742860e224cd81d1278059f5d029dfb6 F src/where.c 6b840a726b06b5122f112e3bc3c142a230af6251 F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7 @@ -48,7 +48,7 @@ F www/c_interface.tcl 8867d76ddd416d2fbd41e4cb3de8efa9cef105a5 F www/changes.tcl 567cc6066d87460bdedff8e5bbc20f41ddaadf77 F www/index.tcl f8189a7898f6d06307c34047b9d7e00860026e44 F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd -P e9ed5d2a3639161fb58856275ba9495f21d366bf -R ad06a10e10e9d51600332d684a457b6e +P bd8b2645cc16759571c8c622dce4752bd35c04cf +R 712a80d7b1f5a98574f5dc5cddb6e092 U drh -Z b21141bb852afc7c732c3c3467253d37 +Z b053febfd62b58b2d6d5fa997754fe2c diff --git a/manifest.uuid b/manifest.uuid index fc58e72f7b..9ac7f98a32 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bd8b2645cc16759571c8c622dce4752bd35c04cf \ No newline at end of file +b52dd82fe32c38c999aef4f07d046d0428336965 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index 1b3e8527f5..857d7277c6 100644 --- a/src/expr.c +++ b/src/expr.c @@ -23,7 +23,7 @@ ************************************************************************* ** This file contains C code routines used for processing expressions ** -** $Id: expr.c,v 1.7 2000/06/06 01:50:43 drh Exp $ +** $Id: expr.c,v 1.8 2000/06/06 03:31:22 drh Exp $ */ #include "sqliteInt.h" @@ -179,6 +179,9 @@ int sqliteExprResolveIds(Parse *pParse, IdList *pTabList, Expr *pExpr){ v = pParse->pVdbe = sqliteVdbeCreate(pParse->db->pBe); } if( v==0 ) return 1; + if( sqliteExprResolveIds(pParse, pTabList, pExpr->pLeft) ){ + return 1; + } if( pExpr->pSelect ){ /* Case 1: expr IN (SELECT ...) ** @@ -228,6 +231,7 @@ int sqliteExprResolveIds(Parse *pParse, IdList *pTabList, Expr *pExpr){ } } } + break; } case TK_SELECT: { @@ -589,6 +593,7 @@ void sqliteExprIfTrue(Parse *pParse, Expr *pExpr, int dest){ break; } case TK_IN: { + sqliteExprCode(pParse, pExpr->pLeft); if( pExpr->pSelect ){ sqliteVdbeAddOp(v, OP_Found, pExpr->iTable, dest, 0, 0); }else{ @@ -679,6 +684,7 @@ void sqliteExprIfFalse(Parse *pParse, Expr *pExpr, int dest){ break; } case TK_IN: { + sqliteExprCode(pParse, pExpr->pLeft); if( pExpr->pSelect ){ sqliteVdbeAddOp(v, OP_NotFound, pExpr->iTable, dest, 0, 0); }else{ diff --git a/src/vdbe.c b/src/vdbe.c index d52e187c87..a563d983b5 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -41,7 +41,7 @@ ** But other routines are also provided to help in building up ** a program instruction by instruction. ** -** $Id: vdbe.c,v 1.18 2000/06/06 01:50:43 drh Exp $ +** $Id: vdbe.c,v 1.19 2000/06/06 03:31:22 drh Exp $ */ #include "sqliteInt.h" #include @@ -476,7 +476,7 @@ static void SetInsert(Set *p, char *zKey){ for(pElem=p->apHash[h]; pElem; pElem=pElem->pHash){ if( strcmp(pElem->zKey, zKey)==0 ) return; } - pElem = sqliteMalloc( sizeof(pElem) + strlen(zKey) ); + pElem = sqliteMalloc( sizeof(*pElem) + strlen(zKey) ); if( pElem==0 ) return; strcpy(pElem->zKey, zKey); pElem->pNext = p->pAll; @@ -2893,6 +2893,7 @@ int sqliteVdbeExec( pc = pOp->p2 - 1; } PopStack(p, 1); + break; } /* Opcode: SetNotFound P1 P2 * @@ -2910,6 +2911,7 @@ int sqliteVdbeExec( pc = pOp->p2 - 1; } PopStack(p, 1); + break; } /* An other opcode is illegal...