aboutsummaryrefslogtreecommitdiff
path: root/src/delete.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2013-11-06 19:59:23 +0000
committerdrh <drh@noemail.net>2013-11-06 19:59:23 +0000
commit2ec2fb22691de00e3da209a77bfac13c446a9cd4 (patch)
tree830583df7f15ab65a14718994973e1113622f551 /src/delete.c
parent93889d9335b48edb943424331269b1d47a0c70ab (diff)
downloadsqlite-2ec2fb22691de00e3da209a77bfac13c446a9cd4.tar.gz
sqlite-2ec2fb22691de00e3da209a77bfac13c446a9cd4.zip
Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo
for each index in the Index object, and reuse that one copy as much as possible. FossilOrigin-Name: defd5205a7cc3543cdd18f906f568e943b8b3a2c
Diffstat (limited to 'src/delete.c')
-rw-r--r--src/delete.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/delete.c b/src/delete.c
index 21bbb0281..a1b626ef4 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -382,9 +382,8 @@ void sqlite3DeleteFrom(
iKey = ++pParse->nMem;
iEph = pParse->nTab++;
- sqlite3VdbeAddOp4(v, OP_OpenEphemeral, iEph, nPk, 0,
- (char*)sqlite3IndexKeyinfo(pParse, pPk),
- P4_KEYINFO_HANDOFF);
+ sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk);
+ sqlite3VdbeSetP4KeyInfo(pParse, pPk);
pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0, 0, 0, 0);
if( pWInfo==0 ) goto delete_from_cleanup;
for(i=0; i<nPk; i++){