mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Performance improvements to the (debug-use only) Mem.pScopyFrom logic, resulting
in about 8x faster performance under -DSQLITE_DEBUG for the query in from [forum:/forumpost/0025389d0860af82|forum post 0025389d0860af82]. This change only affects builds that use -DSQLITE_DEBUG. FossilOrigin-Name: 7fb1ae25d1572dd7709a0f850c148a5f745a524f01ea231e29a1ebc37c173fb9
This commit is contained in:
@@ -607,6 +607,7 @@ static void registerTrace(int iReg, Mem *p){
|
||||
printf("R[%d] = ", iReg);
|
||||
memTracePrint(p);
|
||||
if( p->pScopyFrom ){
|
||||
assert( p->pScopyFrom->bScopy );
|
||||
printf(" <== R[%d]", (int)(p->pScopyFrom - &p[-iReg]));
|
||||
}
|
||||
printf("\n");
|
||||
@@ -1590,6 +1591,7 @@ case OP_Move: {
|
||||
{ int i;
|
||||
for(i=1; i<p->nMem; i++){
|
||||
if( aMem[i].pScopyFrom==pIn1 ){
|
||||
assert( aMem[i].bScopy );
|
||||
aMem[i].pScopyFrom = pOut;
|
||||
}
|
||||
}
|
||||
@@ -1662,6 +1664,7 @@ case OP_SCopy: { /* out2 */
|
||||
#ifdef SQLITE_DEBUG
|
||||
pOut->pScopyFrom = pIn1;
|
||||
pOut->mScopyFlags = pIn1->flags;
|
||||
pIn1->bScopy = 1;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user