When an index complete covers a table, it can be used as a covering index
even if columns past the 63rd column are indexed and accessed. FossilOrigin-Name: 3e9ed1aea43e8ce2eb74bb845ea2c05b5882e36e
This commit is contained in:
commit
87993148bd
15
manifest
15
manifest
@ -1,5 +1,5 @@
|
||||
C Fix\sa\sproblem\swith\shandling\sidentifiers\sthat\sstart\swith\s"x"\sif\sSQLITE_OMIT_BLOB_LITERAL\sis\sdefined.
|
||||
D 2016-02-24T16:14:07.366
|
||||
C When\san\sindex\scomplete\scovers\sa\stable,\sit\scan\sbe\sused\sas\sa\scovering\sindex\neven\sif\scolumns\spast\sthe\s63rd\scolumn\sare\sindexed\sand\saccessed.
|
||||
D 2016-02-24T17:18:51.683
|
||||
F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc 28fc4ee02333996d31b3602b39eeb8e609a89ce4
|
||||
@ -295,7 +295,7 @@ F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
|
||||
F src/btree.c 7bb920c473c277380fcb3e8a8ee28ce1a48e0abc
|
||||
F src/btree.h a5008b9afe56e8e54ade6c436a910f112defcca9
|
||||
F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5
|
||||
F src/build.c 88f185a37d1e087818fd7077d84d65c5babefdb1
|
||||
F src/build.c 2c85d62e502e3f41f37049733c25be77780660e2
|
||||
F src/callback.c 0643b8fb06c95a8977beb201b268210d4b131a22
|
||||
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
|
||||
F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198
|
||||
@ -1429,7 +1429,8 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
|
||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||
F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
P 0064a8c77b2b048c71277d1cfd1ba3975b513b70
|
||||
R 87ae274ca20c267f6abd45bb9b52594d
|
||||
U dan
|
||||
Z 138a68927e813b46e7cc6cf9848edebe
|
||||
P b65217c69c59cbe9cd1494e2eb42ecf22c336399 71d488b599cbde817de369efac4412569a55b43d
|
||||
R fec3823eb3639f1bd971a3e203837396
|
||||
T +closed 71d488b599cbde817de369efac4412569a55b43d
|
||||
U drh
|
||||
Z 899ea8df55da6e6b0dfa91529a693a53
|
||||
|
@ -1 +1 @@
|
||||
b65217c69c59cbe9cd1494e2eb42ecf22c336399
|
||||
3e9ed1aea43e8ce2eb74bb845ea2c05b5882e36e
|
11
src/build.c
11
src/build.c
@ -3192,6 +3192,17 @@ Index *sqlite3CreateIndex(
|
||||
}else{
|
||||
pIndex->aiColumn[i] = XN_ROWID;
|
||||
pIndex->azColl[i] = sqlite3StrBINARY;
|
||||
/* If this index contains every column of its table, then mark
|
||||
** it as a covering index */
|
||||
if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){
|
||||
pIndex->isCovering = 1;
|
||||
for(j=0; j<pTab->nCol; j++){
|
||||
if( j==pTab->iPKey ) continue;
|
||||
if( sqlite3ColumnOfIndex(pIndex,j)>=0 ) continue;
|
||||
pIndex->isCovering = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
sqlite3DefaultRowEst(pIndex);
|
||||
if( pParse->pNewTable==0 ) estimateIndexWidth(pIndex);
|
||||
|
Loading…
x
Reference in New Issue
Block a user