aboutsummaryrefslogtreecommitdiff
path: root/src/update.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/update.c')
-rw-r--r--src/update.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/update.c b/src/update.c
index 04648149c..f8cb2afed 100644
--- a/src/update.c
+++ b/src/update.c
@@ -652,8 +652,7 @@ void sqlite3Update(
if( nChangeFrom==0 && HasRowid(pTab) ){
sqlite3VdbeAddOp3(v, OP_Null, 0, regRowSet, regOldRowid);
iEph = pParse->nTab++;
- addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, 0);
- sqlite3VdbeLoadString(v, regRowSet, "");
+ addrOpen = sqlite3VdbeAddOp3(v, OP_OpenEphemeral, iEph, 0, regRowSet);
}else{
assert( pPk!=0 || HasRowid(pTab) );
nPk = pPk ? pPk->nKeyCol : 0;
@@ -748,7 +747,7 @@ void sqlite3Update(
aRegIdx[nAllIdx] = ++pParse->nMem;
sqlite3VdbeAddOp3(v, OP_Insert, iEph, regRowSet, regOldRowid);
}else{
- if( addrOpen ) sqlite3VdbeChangeToNoop(v, addrOpen);
+ if( ALWAYS(addrOpen) ) sqlite3VdbeChangeToNoop(v, addrOpen);
}
}else{
/* Read the PK of the current row into an array of registers. In
@@ -1088,11 +1087,9 @@ void sqlite3Update(
}else if( eOnePass==ONEPASS_MULTI ){
sqlite3VdbeResolveLabel(v, labelContinue);
sqlite3WhereEnd(pWInfo);
- }else /*if( pPk || nChangeFrom )*/{
+ }else{
sqlite3VdbeResolveLabel(v, labelContinue);
sqlite3VdbeAddOp2(v, OP_Next, iEph, addrTop); VdbeCoverage(v);
-// }else{
-// sqlite3VdbeGoto(v, labelContinue);
}
sqlite3VdbeResolveLabel(v, labelBreak);