aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-09-12 17:41:30 +0000
committerdrh <drh@noemail.net>2014-09-12 17:41:30 +0000
commit236241aeb030ad3b23cea8a1f4d133e02f7dc60a (patch)
tree5b13ae2af9d56c59f3e763bff6dc0493f47feaeb /src/expr.c
parentfb046e7653a1dee6e34b8b3b2ab71ebf0582de2c (diff)
downloadsqlite-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.c9
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)