diff options
author | drh <drh@noemail.net> | 2014-07-22 22:46:54 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2014-07-22 22:46:54 +0000 |
commit | 0f65cce82580619ba3498e3b2ef7bd338d73b6e5 (patch) | |
tree | c1d4ee93cf8d4d665409e500d0c79b1e41ab4487 /src | |
parent | 3526319b483fac1aba4dd19c93ebd61aa2663b97 (diff) | |
download | sqlite-0f65cce82580619ba3498e3b2ef7bd338d73b6e5.tar.gz sqlite-0f65cce82580619ba3498e3b2ef7bd338d73b6e5.zip |
When running ANALYZE, it is not necessary to check the right-most key column
for changes since that column will always change if none of the previous
columns have.
FossilOrigin-Name: 48f40861db4fbd10725a2b8b606d44fe16d5bd27
Diffstat (limited to 'src')
-rw-r--r-- | src/analyze.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/analyze.c b/src/analyze.c index 97305f0dc..c614350ae 100644 --- a/src/analyze.c +++ b/src/analyze.c @@ -1109,7 +1109,7 @@ static void analyzeOneTable( ** goto chng_addr_N */ addrNextRow = sqlite3VdbeCurrentAddr(v); - for(i=0; i<nCol; i++){ + for(i=0; i<nCol-1; i++){ char *pColl = (char*)sqlite3LocateCollSeq(pParse, pIdx->azColl[i]); sqlite3VdbeAddOp2(v, OP_Integer, i, regChng); sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regTemp); @@ -1118,7 +1118,7 @@ static void analyzeOneTable( sqlite3VdbeChangeP5(v, SQLITE_NULLEQ); VdbeCoverage(v); } - sqlite3VdbeAddOp2(v, OP_Integer, nCol, regChng); + sqlite3VdbeAddOp2(v, OP_Integer, nCol-1, regChng); aGotoChng[nCol] = sqlite3VdbeAddOp0(v, OP_Goto); /* @@ -1129,7 +1129,7 @@ static void analyzeOneTable( ** ... */ sqlite3VdbeJumpHere(v, addrGotoChng0); - for(i=0; i<nCol; i++){ + for(i=0; i<nCol-1; i++){ sqlite3VdbeJumpHere(v, aGotoChng[i]); sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regPrev+i); } |