aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2002-07-16 02:05:43 +0000
committerdrh <drh@noemail.net>2002-07-16 02:05:43 +0000
commit0c36cbe0c2987c3c53ef74d1a1bea2b2eb3d6d85 (patch)
tree859d0005ef5bdcd9f946c3cc1dd991fcfee5ea4c /src/expr.c
parent704027f16db4e135404ebe90ffbf011e7c752c01 (diff)
downloadsqlite-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.c11
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);