aboutsummaryrefslogtreecommitdiff
path: root/src/update.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/update.c')
-rw-r--r--src/update.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/update.c b/src/update.c
index 4d86aab6e..799caf6ab 100644
--- a/src/update.c
+++ b/src/update.c
@@ -637,7 +637,13 @@ void sqlite3Update(
iEph = pParse->nTab++;
if( pPk ) sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1);
addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nEphCol);
- if( pPk ) sqlite3VdbeSetP4KeyInfo(pParse, pPk);
+ if( pPk ){
+ KeyInfo *pKeyInfo = sqlite3KeyInfoOfIndex(pParse, pPk);
+ if( pKeyInfo ){
+ pKeyInfo->nAllField = nEphCol;
+ sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO);
+ }
+ }
if( nChangeFrom ){
updatePopulateEphTable(
pParse, iEph, pPk, pChanges, pTabList, pWhere, pOrderBy, pLimit