diff --git a/manifest b/manifest index 6517b285f1..baee7203de 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C An\soptimization:\savoid\sthe\suse\sof\san\sintermediate\stable\son\sUNION\sALL\sif\sthere\nis\sno\sORDER\sBY\sclause.\s(CVS\s637) -D 2002-06-22T02:33:38 +C Fix\sa\sVDBE\sstack\sleak\sin\sLEFT\sOUTER\sJOIN.\s\sFix\sa\sbug\sin\sthe\scode\sgenerator\nfor\sJOIN\s...\sUSING(...).\s(CVS\s638) +D 2002-06-24T12:20:23 F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495 F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0 @@ -37,7 +37,7 @@ F src/pager.h 6fddfddd3b73aa8abc081b973886320e3c614f0e F src/parse.y 2285d8967d7334d52a2188089e5a881d73ba56f6 F src/printf.c 236ed7a79386feed4456fa728fff8be793f1547c F src/random.c 19e8e00fe0df32a742f115773f57651be327cabe -F src/select.c d71b59805fe8dd8eb9dd87b50860c07820ec7918 +F src/select.c 3e83a18baeeb5c89936ca84bde0bb0d18709b6b5 F src/shell.c 1d22fe870ee852cfb975fd000dbe3973713d0a15 F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e F src/sqlite.h.in 7c8882e352cb70818cfaf9bdb5b1b3bee81ef144 @@ -54,7 +54,7 @@ F src/update.c 6f6a4dcd71cd9ff730b7f12c83de5498cde4924f F src/util.c 876b259f9186e84b944b72e793dd3dad50e63e95 F src/vdbe.c 774f79483ce809b27c3bdb02afd7295cc3c7acd4 F src/vdbe.h a9292f2b5fcecef924fa255fb74609e9cbc776c2 -F src/where.c 1fdb7aca26c1963eb42615a95e0fc2978eec566a +F src/where.c 5ff862869a8ab704070df2ef75a3424c782422cf F test/all.test e4d3821eeba751829b419cd47814bd20af4286d1 F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578 F test/btree.test bf326f546a666617367a7033fa2c07451bd4f8e1 @@ -137,7 +137,7 @@ F www/speed.tcl da8afcc1d3ccc5696cfb388a68982bc3d9f7f00f F www/sqlite.tcl 8b5884354cb615049aed83039f8dfe1552a44279 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218 -P 9d5523107937e3700c76666fb058694babdd672c -R 8009c7f3df0b06e96c68ea3fa98dc912 +P 8aa73ce61268a50d353d9a5c878461290195525f +R 2b416ef8a3e6fcbc67f7c234a7a7ee0f U drh -Z 29b6ba248298ad91adb3978ba4b0728d +Z f4ef2a81bcc41a1ff76332fb25825e47 diff --git a/manifest.uuid b/manifest.uuid index 24233c1e4b..b19dc370c7 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8aa73ce61268a50d353d9a5c878461290195525f \ No newline at end of file +d861489e1f7dffd1105c271fe8597f73e5b1703c \ No newline at end of file diff --git a/src/select.c b/src/select.c index 206e7b8914..d17dd23a4b 100644 --- a/src/select.c +++ b/src/select.c @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** -** $Id: select.c,v 1.97 2002/06/22 02:33:38 drh Exp $ +** $Id: select.c,v 1.98 2002/06/24 12:20:23 drh Exp $ */ #include "sqliteInt.h" @@ -244,14 +244,14 @@ static int sqliteProcessJoin(Parse *pParse, Select *p){ assert( inSrc-1 ); pList = pTerm->pUsing; for(j=0; jnId; j++){ - if( columnIndex(pTerm->pTab, pList->a[i].zName)<0 || - columnIndex(pOther->pTab, pList->a[i].zName)<0 ){ + if( columnIndex(pTerm->pTab, pList->a[j].zName)<0 || + columnIndex(pOther->pTab, pList->a[j].zName)<0 ){ sqliteSetString(&pParse->zErrMsg, "cannot join using column ", - pList->a[i].zName, " - column not present in both tables", 0); + pList->a[j].zName, " - column not present in both tables", 0); pParse->nErr++; return 1; } - addWhereTerm(pList->a[i].zName, pTerm->pTab, pOther->pTab, &p->pWhere); + addWhereTerm(pList->a[j].zName, pTerm->pTab, pOther->pTab, &p->pWhere); } } } @@ -1745,14 +1745,14 @@ int sqliteSelect( }else{ int iMem = pParse->nMem++; sqliteVdbeAddOp(v, OP_Integer, -p->nLimit, 0); - sqliteVdbeAddOp(v, OP_MemStore, iMem, 0); + sqliteVdbeAddOp(v, OP_MemStore, iMem, 1); p->nLimit = iMem; if( p->nOffset<=0 ){ p->nOffset = 0; }else{ iMem = pParse->nMem++; sqliteVdbeAddOp(v, OP_Integer, -p->nOffset, 0); - sqliteVdbeAddOp(v, OP_MemStore, iMem, 0); + sqliteVdbeAddOp(v, OP_MemStore, iMem, 1); p->nOffset = iMem; } } diff --git a/src/where.c b/src/where.c index 0eb4a6a855..00f19d6f04 100644 --- a/src/where.c +++ b/src/where.c @@ -13,7 +13,7 @@ ** the WHERE clause of SQL statements. Also found here are subroutines ** to generate VDBE code to evaluate expressions. ** -** $Id: where.c,v 1.53 2002/06/19 14:27:06 drh Exp $ +** $Id: where.c,v 1.54 2002/06/24 12:20:23 drh Exp $ */ #include "sqliteInt.h" @@ -1057,7 +1057,7 @@ void sqliteWhereEnd(WhereInfo *pWInfo){ if( pLevel->iLeftJoin ){ int addr; addr = sqliteVdbeAddOp(v, OP_MemLoad, pLevel->iLeftJoin, 0); - sqliteVdbeAddOp(v, OP_NotNull, 0, addr+4); + sqliteVdbeAddOp(v, OP_NotNull, 1, addr+4); sqliteVdbeAddOp(v, OP_NullRow, base+i, 0); sqliteVdbeAddOp(v, OP_Goto, 0, pLevel->top); }