-C Fix\sa\ssyntax\serror\sin\sthe\stclsqlite.c\sfile.\s(CVS\s678)
-D 2002-07-15T20:58:48
+C Fix\sfor\sticket\s#100:\sCorrectly\shandle\sON\sand\sUSING\sclauses\sof\sJOINs\swithin\na\sVIEW.\s(CVS\s679)
+D 2002-07-16T02:05:44
F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c
F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495
F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
F src/build.c 81d0f42ae58af35d6331402e71a4fb2d2898586c
F src/delete.c 215492ffcea4262a993e55f3c4a67dc9fea4da9c
F src/encode.c 346b12b46148506c32038524b95c4631ab46d760
-F src/expr.c 4b25ee5e65f351d40dea8575b998605762556d76
+F src/expr.c 5c3b241a680dff98afdf5f0ba6e14a3b19669914
F src/func.c e45cd908b9b723d9b91473d09e12c23f786b3fc2
F src/hash.c 6a6236b89c8c060c65dabd300a1c8ce7c10edb72
F src/hash.h cd0433998bc1a3759d244e1637fe5a3c13b53bf8
F test/unique.test 572aa791327c1e8d797932263e9d67f176cfdb44
F test/update.test a0aa0bf83e6fad8407d0e4ad25ebb09b513f5bf4
F test/vacuum.test 059871b312eb910bbe49dafde1d01490cc2c6bbe
-F test/view.test 28700c1f9a10121242eaad77622f603cf59a548b
+F test/view.test 3afca084dab44c7a5772d3c6a326adf93ad52050
F test/where.test 1f87bec674bf85d74ac1cc5b2cd3d89be1e87b1d
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
F tool/lemon.c 459cb2bb3738a1ad5cb0ad8b805587a88a885d95
F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
-P 7e918c8b0df5120e3630811f164defb8c9fedd6d
-R 80d0f442519bb19c84eac71b236ad54c
+P 47997d7f3ad2dd486a00dc13b7a8c48bb4751e5d
+R 5268df3b683caf62c45fc04db3c4a2fd
U drh
-Z a6f748da86333d939a65f771a8458e68
+Z 2216eae1017a9d0dde05f2fc78d38393
-47997d7f3ad2dd486a00dc13b7a8c48bb4751e5d
\ No newline at end of file
+93710f7ed7e1baa6acbf4bc32982e046f61ffa44
\ No newline at end of file
** 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>
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);
# This file implements regression tests for SQLite library. The
# focus of this file is testing VIEW statements.
#
-# $Id: view.test,v 1.7 2002/07/02 13:05:05 drh Exp $
+# $Id: view.test,v 1.8 2002/07/16 02:05:45 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
}
} {11 12 13 14 39}
+do_test view-7.1 {
+ execsql {
+ CREATE TABLE test1(id integer primary key, a);
+ CREATE TABLE test2(id integer, b);
+ INSERT INTO test1 VALUES(1,2);
+ INSERT INTO test2 VALUES(1,3);
+ CREATE VIEW test AS
+ SELECT test1.id, a, b
+ FROM test1 JOIN test2 ON test2.id=test1.id;
+ SELECT * FROM test;
+ }
+} {1 2 3}
+do_test view-7.2 {
+ db close
+ sqlite db test.db
+ execsql {
+ SELECT * FROM test;
+ }
+} {1 2 3}
+do_test view-7.3 {
+ execsql {
+ DROP VIEW test;
+ CREATE VIEW test AS
+ SELECT test1.id, a, b
+ FROM test1 JOIN test2 USING(id);
+ SELECT * FROM test;
+ }
+} {1 2 3}
+do_test view-7.4 {
+ db close
+ sqlite db test.db
+ execsql {
+ SELECT * FROM test;
+ }
+} {1 2 3}
+do_test view-7.5 {
+ execsql {
+ DROP VIEW test;
+ CREATE VIEW test AS
+ SELECT test1.id, a, b
+ FROM test1 NATURAL JOIN test2;
+ SELECT * FROM test;
+ }
+} {1 2 3}
+do_test view-7.6 {
+ db close
+ sqlite db test.db
+ execsql {
+ SELECT * FROM test;
+ }
+} {1 2 3}
finish_test