In where.c::findIndexCol - make sure that the Expr.op is TK_COLUMN before
accessing the Expr.iColumn and Expr.iTable fields. Also fix a couple of unreachable branches. FossilOrigin-Name: 418a4da2a96cf33055f18c9a667754fad2111cf3
This commit is contained in:
parent
6f25e89d27
commit
f1d3e32909
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
|||||||
C Change\sthe\sdefault\schunk\ssize\son\stest_multiplex.c\sto\s2147418112\sbytes\n(formerly\s1073741824\sbytes)\sand\smake\sthe\sdefault\sconfigurable\sat\scompile-time\nusing\sSQLITE_MULTIPLEX_CHUNK_SIZE\sand\sat\srun-time\susing\sthe\s"chunksize"\nURI\squery\sparameter.\s\sAdd\ssupport\sfo\stest_multiplex\sto\sthe\sshell.
|
C In\swhere.c::findIndexCol\s-\smake\ssure\sthat\sthe\sExpr.op\sis\sTK_COLUMN\sbefore\naccessing\sthe\sExpr.iColumn\sand\sExpr.iTable\sfields.\s\sAlso\sfix\sa\scouple\sof\nunreachable\sbranches.
|
||||||
D 2011-07-08T17:02:57.508
|
D 2011-07-09T13:00:41.795
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in c1d7a7f4fd8da6b1815032efca950e3d5125407e
|
F Makefile.in c1d7a7f4fd8da6b1815032efca950e3d5125407e
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@ -250,7 +250,7 @@ F src/vtab.c 901791a47318c0562cd0c676a2c6ff1bc530e582
|
|||||||
F src/wal.c 0c70ad7b1cac6005fa5e2cbefd23ee05e391c290
|
F src/wal.c 0c70ad7b1cac6005fa5e2cbefd23ee05e391c290
|
||||||
F src/wal.h 66b40bd91bc29a5be1c88ddd1f5ade8f3f48728a
|
F src/wal.h 66b40bd91bc29a5be1c88ddd1f5ade8f3f48728a
|
||||||
F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f
|
F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f
|
||||||
F src/where.c defae982c6a5ced7c9a972a5a4850ad140a6d631
|
F src/where.c ce7cce80c5cb07ba40e9bf38a33ef806c61f55f2
|
||||||
F test/8_3_names.test b93687beebd17f6ebf812405a6833bae5d1f4199
|
F test/8_3_names.test b93687beebd17f6ebf812405a6833bae5d1f4199
|
||||||
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
||||||
F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
|
F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
|
||||||
@ -951,7 +951,7 @@ F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5
|
|||||||
F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576
|
F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576
|
||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
F tool/warnings.sh 2ebae31e1eb352696f3c2f7706a34c084b28c262
|
F tool/warnings.sh 2ebae31e1eb352696f3c2f7706a34c084b28c262
|
||||||
P 9f14fa56ba31afe3de8b0cf26ed09573a2cc2283
|
P e305b5a931374e2a1d2e66ea0a1248b9d4aecb19
|
||||||
R e83eed2583035b436dc963e6112fe3df
|
R 9f2366d63a9041cf0166a322890b593c
|
||||||
U drh
|
U drh
|
||||||
Z 8b9b6b1bb1eb76d53c04bd9c864821f0
|
Z 1af89a162ab75877f31c3bef94a3cd45
|
||||||
|
@ -1 +1 @@
|
|||||||
e305b5a931374e2a1d2e66ea0a1248b9d4aecb19
|
418a4da2a96cf33055f18c9a667754fad2111cf3
|
@ -1420,9 +1420,12 @@ static int findIndexCol(
|
|||||||
|
|
||||||
for(i=0; i<pList->nExpr; i++){
|
for(i=0; i<pList->nExpr; i++){
|
||||||
Expr *p = pList->a[i].pExpr;
|
Expr *p = pList->a[i].pExpr;
|
||||||
if( pIdx->aiColumn[iCol]==p->iColumn && iBase==p->iTable ){
|
if( p->op==TK_COLUMN
|
||||||
|
&& p->iColumn==pIdx->aiColumn[iCol]
|
||||||
|
&& p->iTable==iBase
|
||||||
|
){
|
||||||
CollSeq *pColl = sqlite3ExprCollSeq(pParse, p);
|
CollSeq *pColl = sqlite3ExprCollSeq(pParse, p);
|
||||||
if( pColl && 0==sqlite3StrICmp(pColl->zName, zColl) ){
|
if( ALWAYS(pColl) && 0==sqlite3StrICmp(pColl->zName, zColl) ){
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1680,7 +1683,7 @@ static int isSortingIndex(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( pbRev ) *pbRev = sortOrder!=0;
|
*pbRev = sortOrder!=0;
|
||||||
if( j>=nTerm ){
|
if( j>=nTerm ){
|
||||||
/* All terms of the ORDER BY clause are covered by this index so
|
/* All terms of the ORDER BY clause are covered by this index so
|
||||||
** this index can be used for sorting. */
|
** this index can be used for sorting. */
|
||||||
|
Loading…
Reference in New Issue
Block a user