-C Moved\scheck\sand\sdefine\sfor\sOS_WINCE\sfrom\sos_win.c\sto\sos.h\s(with\sthe\sother\sOS_*\sdefines).\s\sThis\sallows\sOS_WINCE\sto\sbe\savailable\sfor\smutex_w32.c\swhich\sis\sincluded\searlier\sthan\sos_win.c\sin\sthe\salmagamation.\s(CVS\s5176)
-D 2008-05-29T03:54:27
+C Fix\scosmetic\sissues\sspotted\swhile\sworking\son\sticket\s#3146\s(CVS\s5177)
+D 2008-05-29T05:23:42
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in 62b2a40ff5944dd33c9c3184b21f720ea8e48a44
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/test_osinst.c c684ee6d480f30e36cb564dcbc94f5f8467468a8
F src/test_schema.c e3f93725f7c5b2cff84a69dc4332040dfbc8f81a
F src/test_server.c 7e579eb9bf6fbe9cc45e84e4c74d3d06d049a825
-F src/test_tclvar.c b2d1115e4d489179d3f029e765211b2ad527ba59
+F src/test_tclvar.c e99b975614735553fa1c43503d85b0dd988c0e77
F src/test_thread.c e297dd41db0b249646e69f97d36ec13e56e8b730
F src/tokenize.c 8d77af8584cf027dc21375f0efa5818cb303c995
F src/trigger.c 1e751f8d5ceeb328d26bf1ccfb2de50653670d49
F src/utf.c 8c94fa10efc78c2568d08d436acc59df4df7191b
F src/util.c 43277088f8fea4109a640aa46731b8752c3fb4a7
F src/vacuum.c a5c289e561ed72283e97d2485491986bc7d684eb
-F src/vdbe.c 4666906aa7d50154a890dac714c92e9993370f57
+F src/vdbe.c efe92d0925bc0a6f76c5bbfaf4cfee1665ae8799
F src/vdbe.h f4bb70962d9c13e0f65b215c90e8acea1ae6e8ee
F src/vdbeInt.h ede1a31cfa74d4718f41da491bd1d2b3abc137fc
F src/vdbeapi.c 22b01ed175e4d4c613ee82cabc7a44a275641206
F src/vdbefifo.c 1644a41c6366ff25a920df4ca675f12d3f559687
F src/vdbemem.c a39a822e6ae61c4cab4a512df4a315888b206911
F src/vtab.c ce9d19ca9053812a557010fd4be7e842f8ebba2d
-F src/where.c d074da73e1ffe0cc2836c274c5f0d34ef3b767ab
+F src/where.c ad88aefac0e6469b3899477a81ef81b6bdc82913
F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/all.test d56a3ca8acdf761204aff0a2e7aa5eb8e11b31e6
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c e74126bc12178fa29904f711bb100212a5448041
F tool/speedtest8inst1.c 025879132979a5fdec11218472cba6cf8f6ec854
-P 7e6847852d4517b1d14bebb8f0ae4d938b0b6f6d
-R 91aa8ed903089be5892cc06ca20f01b5
-U shane
-Z 71f9353c7030348ee2a7d1aadf46f880
+P ad6a782e7c408f6c3ebff5f2715c629b75c8002d
+R 486eefc4a3f966d0ff0a629a9a11c14c
+U drh
+Z 38197e0cbfc994144353080aecc69a7d
-ad6a782e7c408f6c3ebff5f2715c629b75c8002d
\ No newline at end of file
+5f6eab65dba421a736659a6673a51a0e487d68ac
\ No newline at end of file
** The emphasis of this file is a virtual table that provides
** access to TCL variables.
**
-** $Id: test_tclvar.c,v 1.14 2007/08/21 10:44:16 drh Exp $
+** $Id: test_tclvar.c,v 1.15 2008/05/29 05:23:42 drh Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"
for(ii=0; ii<pIdxInfo->nConstraint; ii++){
struct sqlite3_index_constraint const *pCons = &pIdxInfo->aConstraint[ii];
- if( pCons->iColumn==0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ ){
+ if( pCons->iColumn==0 && pCons->usable
+ && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ ){
struct sqlite3_index_constraint_usage *pUsage;
pUsage = &pIdxInfo->aConstraintUsage[ii];
pUsage->omit = 0;
for(ii=0; ii<pIdxInfo->nConstraint; ii++){
struct sqlite3_index_constraint const *pCons = &pIdxInfo->aConstraint[ii];
- if( pCons->iColumn==0 && pCons->op==SQLITE_INDEX_CONSTRAINT_MATCH ){
+ if( pCons->iColumn==0 && pCons->usable
+ && pCons->op==SQLITE_INDEX_CONSTRAINT_MATCH ){
struct sqlite3_index_constraint_usage *pUsage;
pUsage = &pIdxInfo->aConstraintUsage[ii];
pUsage->omit = 1;
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
-** $Id: vdbe.c,v 1.742 2008/05/29 03:12:55 drh Exp $
+** $Id: vdbe.c,v 1.743 2008/05/29 05:23:42 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
** This opcode invokes the xFilter method on the virtual table specified
** by P1. The integer query plan parameter to xFilter is stored in register
** P3. Register P3+1 stores the argc parameter to be passed to the
-** xFilter method. Registers P3+2..P3+1+argc are the argc additional
-** parametersneath additional parameters which are passed to
+** xFilter method. Registers P3+2..P3+1+argc are the argc
+** additional parameters which are passed to
** xFilter as argv. Register P3+2 becomes argv[0] when passed to xFilter.
**
** A jump is made to P2 if the result set after filtering would be empty.
** so is applicable. Because this module is responsible for selecting
** indices, you might also think of this module as the "query optimizer".
**
-** $Id: where.c,v 1.305 2008/05/28 18:01:45 shane Exp $
+** $Id: where.c,v 1.306 2008/05/29 05:23:42 drh Exp $
*/
#include "sqliteInt.h"
for(k=0; k<nConstraint; k++){
if( aUsage[k].argvIndex==j ){
int iTerm = aConstraint[k].iTermOffset;
+ assert( pParse->disableColCache );
sqlite3ExprCode(pParse, wc.a[iTerm].pExpr->pRight, iReg+j+1);
break;
}
}
if( k==nConstraint ) break;
}
+ assert( pParse->disableColCache );
pParse->disableColCache--;
sqlite3VdbeAddOp2(v, OP_Integer, pBestIdx->idxNum, iReg);
sqlite3VdbeAddOp2(v, OP_Integer, j-1, iReg+1);
pBestIdx->needToFreeIdxStr ? P4_MPRINTF : P4_STATIC);
sqlite3ReleaseTempRange(pParse, iReg, nConstraint+2);
pBestIdx->needToFreeIdxStr = 0;
- for(j=0; j<pBestIdx->nConstraint; j++){
+ for(j=0; j<nConstraint; j++){
if( aUsage[j].omit ){
int iTerm = aConstraint[j].iTermOffset;
disableTerm(pLevel, &wc.a[iTerm]);
if( pRangeStart ){
int dcc = pParse->disableColCache;
if( pRangeEnd ){
- pParse->disableColCache = 1;
+ pParse->disableColCache++;
}
sqlite3ExprCode(pParse, pRangeStart->pExpr->pRight, regBase+nEq);
pParse->disableColCache = dcc;