diff options
author | drh <drh@noemail.net> | 2002-07-16 02:05:43 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2002-07-16 02:05:43 +0000 |
commit | 0c36cbe0c2987c3c53ef74d1a1bea2b2eb3d6d85 (patch) | |
tree | 859d0005ef5bdcd9f946c3cc1dd991fcfee5ea4c /src/expr.c | |
parent | 704027f16db4e135404ebe90ffbf011e7c752c01 (diff) | |
download | sqlite-0c36cbe0c2987c3c53ef74d1a1bea2b2eb3d6d85.tar.gz sqlite-0c36cbe0c2987c3c53ef74d1a1bea2b2eb3d6d85.zip |
Fix for ticket #100: Correctly handle ON and USING clauses of JOINs within
a VIEW. (CVS 679)
FossilOrigin-Name: 93710f7ed7e1baa6acbf4bc32982e046f61ffa44
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c index df2feb873..4798ddb3b 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.77 2002/07/02 13:05:05 drh Exp $ +** $Id: expr.c,v 1.78 2002/07/16 02:05:44 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -137,9 +137,18 @@ void sqliteExprListMoveStrings(ExprList *pList, int offset){ sqliteExprMoveStrings(pList->a[i].pExpr, offset); } } +static void sqliteSrcListMoveStrings(SrcList *pSrc, int offset){ + int i; + if( pSrc==0 ) return; + for(i=0; i<pSrc->nSrc; i++){ + sqliteSelectMoveStrings(pSrc->a[i].pSelect, offset); + sqliteExprMoveStrings(pSrc->a[i].pOn, offset); + } +} void sqliteSelectMoveStrings(Select *pSelect, int offset){ if( pSelect==0 ) return; sqliteExprListMoveStrings(pSelect->pEList, offset); + sqliteSrcListMoveStrings(pSelect->pSrc, offset); sqliteExprMoveStrings(pSelect->pWhere, offset); sqliteExprListMoveStrings(pSelect->pGroupBy, offset); sqliteExprMoveStrings(pSelect->pHaving, offset); |