:-) (CVS 56)
FossilOrigin-Name: b52dd82fe32c38c999aef4f07d046d0428336965
diff --git a/src/expr.c b/src/expr.c
index 1b3e852..857d727 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 @@
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 @@
}
}
}
+ break;
}
case TK_SELECT: {
@@ -589,6 +593,7 @@
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 @@
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 d52e187..a563d98 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 <unistd.h>
@@ -476,7 +476,7 @@
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 @@
pc = pOp->p2 - 1;
}
PopStack(p, 1);
+ break;
}
/* Opcode: SetNotFound P1 P2 *
@@ -2910,6 +2911,7 @@
pc = pOp->p2 - 1;
}
PopStack(p, 1);
+ break;
}
/* An other opcode is illegal...