Do not set the P3 parameter on OP_RowCell when copying an index btree, as

P3 is not used in that case.

FossilOrigin-Name: eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03
This commit is contained in:
drh
2020-12-29 15:06:26 +00:00
parent 277a30d9ce
commit a06eafc8fc
4 changed files with 11 additions and 9 deletions
+1 -1
View File
@@ -2991,7 +2991,7 @@ static int xferOptimization(
if( i==pSrcIdx->nColumn ){
idxInsFlags = OPFLAG_USESEEKRESULT|OPFLAG_PREFORMAT;
sqlite3VdbeAddOp1(v, OP_SeekEnd, iDest);
sqlite3VdbeAddOp3(v, OP_RowCell, iDest, iSrc, regData);
sqlite3VdbeAddOp2(v, OP_RowCell, iDest, iSrc);
}
}else if( !HasRowid(pSrc) && pDestIdx->idxType==SQLITE_IDXTYPE_PRIMARYKEY ){
idxInsFlags |= OPFLAG_NCHANGE;
+2
View File
@@ -5160,6 +5160,8 @@ case OP_RowCell: {
VdbeCursor *pSrc; /* Cursor to read from */
i64 iKey; /* Rowid value to insert with */
assert( pOp[1].opcode==OP_Insert || pOp[1].opcode==OP_IdxInsert );
assert( pOp[1].opcode==OP_Insert || pOp->p3==0 );
assert( pOp[1].opcode==OP_IdxInsert || pOp->p3>0 );
assert( pOp[1].p5 & OPFLAG_PREFORMAT );
pDest = p->apCsr[pOp->p1];
pSrc = p->apCsr[pOp->p2];