:-) (CVS 56)

FossilOrigin-Name: b52dd82fe32c38c999aef4f07d046d0428336965
This commit is contained in:
drh 2000-06-06 03:31:22 +00:00
parent fef5208c15
commit cfab11bcba
4 changed files with 19 additions and 11 deletions

View File

@ -1,5 +1,5 @@
C :-)\s(CVS\s55) C :-)\s(CVS\s56)
D 2000-06-06T01:50:43 D 2000-06-06T03:31:22
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644 F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
@ -10,7 +10,7 @@ F src/build.c 6c9454b2e2b866979527fb41b19ad8bc49c27a20
F src/dbbe.c ae8b5d2cdb4fa7dd11313059984be9457fa77f63 F src/dbbe.c ae8b5d2cdb4fa7dd11313059984be9457fa77f63
F src/dbbe.h a8a46f71238e0f09f3ec08fd9d1c8c7f4cdc49bf F src/dbbe.h a8a46f71238e0f09f3ec08fd9d1c8c7f4cdc49bf
F src/delete.c e11433c14ed5cc8553cba14296b3baa3c23054bc F src/delete.c e11433c14ed5cc8553cba14296b3baa3c23054bc
F src/expr.c b309517f59017f3a7c0db76a54bc3bc00e8fea38 F src/expr.c 278ff688ac72602ad985f4ccadcae665d245b13b
F src/insert.c 5e69dd70c3f91cf5ec5090f39fd6cd8e135af9bf F src/insert.c 5e69dd70c3f91cf5ec5090f39fd6cd8e135af9bf
F src/main.c 93a7ad14bb5a82ad13ad59da23ef674a94b0c3d6 F src/main.c 93a7ad14bb5a82ad13ad59da23ef674a94b0c3d6
F src/parse.y 9c459212441d4786bb011945d6a587568368e202 F src/parse.y 9c459212441d4786bb011945d6a587568368e202
@ -22,7 +22,7 @@ F src/tclsqlite.c 9f358618ae803bedf4fb96da5154fd45023bc1f7
F src/tokenize.c f190e16ebb82dd60497796022f1e56e2e0527975 F src/tokenize.c f190e16ebb82dd60497796022f1e56e2e0527975
F src/update.c 3f05d5082fd2c34f15d1e4a4db17355ad8807a78 F src/update.c 3f05d5082fd2c34f15d1e4a4db17355ad8807a78
F src/util.c 33f9baa01e45394ef0cf85361a0e872987884315 F src/util.c 33f9baa01e45394ef0cf85361a0e872987884315
F src/vdbe.c 03177425b174d865f2c37b188a9df8a37f4eaff2 F src/vdbe.c 7d00f9ff05cf1287ee21c2a73d9ba0ebdf07b4b6
F src/vdbe.h 49e0f9c6742860e224cd81d1278059f5d029dfb6 F src/vdbe.h 49e0f9c6742860e224cd81d1278059f5d029dfb6
F src/where.c 6b840a726b06b5122f112e3bc3c142a230af6251 F src/where.c 6b840a726b06b5122f112e3bc3c142a230af6251
F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7 F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7
@ -48,7 +48,7 @@ F www/c_interface.tcl 8867d76ddd416d2fbd41e4cb3de8efa9cef105a5
F www/changes.tcl 567cc6066d87460bdedff8e5bbc20f41ddaadf77 F www/changes.tcl 567cc6066d87460bdedff8e5bbc20f41ddaadf77
F www/index.tcl f8189a7898f6d06307c34047b9d7e00860026e44 F www/index.tcl f8189a7898f6d06307c34047b9d7e00860026e44
F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd
P e9ed5d2a3639161fb58856275ba9495f21d366bf P bd8b2645cc16759571c8c622dce4752bd35c04cf
R ad06a10e10e9d51600332d684a457b6e R 712a80d7b1f5a98574f5dc5cddb6e092
U drh U drh
Z b21141bb852afc7c732c3c3467253d37 Z b053febfd62b58b2d6d5fa997754fe2c

View File

@ -1 +1 @@
bd8b2645cc16759571c8c622dce4752bd35c04cf b52dd82fe32c38c999aef4f07d046d0428336965

View File

@ -23,7 +23,7 @@
************************************************************************* *************************************************************************
** This file contains C code routines used for processing expressions ** 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" #include "sqliteInt.h"
@ -179,6 +179,9 @@ int sqliteExprResolveIds(Parse *pParse, IdList *pTabList, Expr *pExpr){
v = pParse->pVdbe = sqliteVdbeCreate(pParse->db->pBe); v = pParse->pVdbe = sqliteVdbeCreate(pParse->db->pBe);
} }
if( v==0 ) return 1; if( v==0 ) return 1;
if( sqliteExprResolveIds(pParse, pTabList, pExpr->pLeft) ){
return 1;
}
if( pExpr->pSelect ){ if( pExpr->pSelect ){
/* Case 1: expr IN (SELECT ...) /* Case 1: expr IN (SELECT ...)
** **
@ -228,6 +231,7 @@ int sqliteExprResolveIds(Parse *pParse, IdList *pTabList, Expr *pExpr){
} }
} }
} }
break;
} }
case TK_SELECT: { case TK_SELECT: {
@ -589,6 +593,7 @@ void sqliteExprIfTrue(Parse *pParse, Expr *pExpr, int dest){
break; break;
} }
case TK_IN: { case TK_IN: {
sqliteExprCode(pParse, pExpr->pLeft);
if( pExpr->pSelect ){ if( pExpr->pSelect ){
sqliteVdbeAddOp(v, OP_Found, pExpr->iTable, dest, 0, 0); sqliteVdbeAddOp(v, OP_Found, pExpr->iTable, dest, 0, 0);
}else{ }else{
@ -679,6 +684,7 @@ void sqliteExprIfFalse(Parse *pParse, Expr *pExpr, int dest){
break; break;
} }
case TK_IN: { case TK_IN: {
sqliteExprCode(pParse, pExpr->pLeft);
if( pExpr->pSelect ){ if( pExpr->pSelect ){
sqliteVdbeAddOp(v, OP_NotFound, pExpr->iTable, dest, 0, 0); sqliteVdbeAddOp(v, OP_NotFound, pExpr->iTable, dest, 0, 0);
}else{ }else{

View File

@ -41,7 +41,7 @@
** But other routines are also provided to help in building up ** But other routines are also provided to help in building up
** a program instruction by instruction. ** 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 "sqliteInt.h"
#include <unistd.h> #include <unistd.h>
@ -476,7 +476,7 @@ static void SetInsert(Set *p, char *zKey){
for(pElem=p->apHash[h]; pElem; pElem=pElem->pHash){ for(pElem=p->apHash[h]; pElem; pElem=pElem->pHash){
if( strcmp(pElem->zKey, zKey)==0 ) return; if( strcmp(pElem->zKey, zKey)==0 ) return;
} }
pElem = sqliteMalloc( sizeof(pElem) + strlen(zKey) ); pElem = sqliteMalloc( sizeof(*pElem) + strlen(zKey) );
if( pElem==0 ) return; if( pElem==0 ) return;
strcpy(pElem->zKey, zKey); strcpy(pElem->zKey, zKey);
pElem->pNext = p->pAll; pElem->pNext = p->pAll;
@ -2893,6 +2893,7 @@ int sqliteVdbeExec(
pc = pOp->p2 - 1; pc = pOp->p2 - 1;
} }
PopStack(p, 1); PopStack(p, 1);
break;
} }
/* Opcode: SetNotFound P1 P2 * /* Opcode: SetNotFound P1 P2 *
@ -2910,6 +2911,7 @@ int sqliteVdbeExec(
pc = pOp->p2 - 1; pc = pOp->p2 - 1;
} }
PopStack(p, 1); PopStack(p, 1);
break;
} }
/* An other opcode is illegal... /* An other opcode is illegal...