aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-07-22 22:46:54 +0000
committerdrh <drh@noemail.net>2014-07-22 22:46:54 +0000
commit0f65cce82580619ba3498e3b2ef7bd338d73b6e5 (patch)
treec1d4ee93cf8d4d665409e500d0c79b1e41ab4487 /src
parent3526319b483fac1aba4dd19c93ebd61aa2663b97 (diff)
downloadsqlite-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.c6
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);
}