diff options
author | drh <drh@noemail.net> | 2014-09-12 17:41:30 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2014-09-12 17:41:30 +0000 |
commit | 236241aeb030ad3b23cea8a1f4d133e02f7dc60a (patch) | |
tree | 5b13ae2af9d56c59f3e763bff6dc0493f47feaeb /src/expr.c | |
parent | fb046e7653a1dee6e34b8b3b2ab71ebf0582de2c (diff) | |
download | sqlite-236241aeb030ad3b23cea8a1f4d133e02f7dc60a.tar.gz sqlite-236241aeb030ad3b23cea8a1f4d133e02f7dc60a.zip |
Simplify the way the column cache is managed around OP_Move instructions.
FossilOrigin-Name: 320556233e19cdd9d590a09655c3465754700d39
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/expr.c b/src/expr.c index cd0983c57..c6d8b9e5f 100644 --- a/src/expr.c +++ b/src/expr.c @@ -2432,16 +2432,9 @@ void sqlite3ExprCacheAffinityChange(Parse *pParse, int iStart, int iCount){ ** over to iTo..iTo+nReg-1. Keep the column cache up-to-date. */ void sqlite3ExprCodeMove(Parse *pParse, int iFrom, int iTo, int nReg){ - int i; - struct yColCache *p; assert( iFrom>=iTo+nReg || iFrom+nReg<=iTo ); sqlite3VdbeAddOp3(pParse->pVdbe, OP_Move, iFrom, iTo, nReg); - for(i=0, p=pParse->aColCache; i<SQLITE_N_COLCACHE; i++, p++){ - int x = p->iReg; - if( x>=iFrom && x<iFrom+nReg ){ - p->iReg += iTo-iFrom; - } - } + sqlite3ExprCacheRemove(pParse, iFrom, nReg); } #if defined(SQLITE_DEBUG) || defined(SQLITE_COVERAGE_TEST) |