diff options
author | drh <> | 2023-09-14 16:02:56 +0000 |
---|---|---|
committer | drh <> | 2023-09-14 16:02:56 +0000 |
commit | e68decd54cdfc2da5a3d0416a211612eccf4ee9b (patch) | |
tree | ce23445d03c14e06a52f3a0546e12c29f6a12964 /src | |
parent | 82cdf4987d7d6cc7b1dbcfc98b921e70eb4d12ed (diff) | |
download | sqlite-e68decd54cdfc2da5a3d0416a211612eccf4ee9b.tar.gz sqlite-e68decd54cdfc2da5a3d0416a211612eccf4ee9b.zip |
Document the use of OPFLAG_ISNOOP as the P2 argument on OP_Delete. No
functional code changes.
FossilOrigin-Name: d88f41b2cf2b721170d2428a50b717976091389d9a07d0ffa15c3323b0eaad37
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbe.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/vdbe.c b/src/vdbe.c index 41e56d306..646313650 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -5775,8 +5775,13 @@ case OP_RowCell: { ** the "primary" delete. The others are all on OPFLAG_FORDELETE ** cursors or else are marked with the AUXDELETE flag. ** -** If the OPFLAG_NCHANGE flag of P2 (NB: P2 not P5) is set, then the row -** change count is incremented (otherwise not). +** If the OPFLAG_NCHANGE (0x01) flag of P2 (NB: P2 not P5) is set, then +** the row change count is incremented (otherwise not). +** +** If the OPFLAG_ISNOOP (0x40) flag of P2 (not P5!) is set, then the +** pre-update-hook for deletes is run, but the btree is otherwise unchanged. +** This happens when the OP_Delete is to be shortly followed by an OP_Insert +** with the same key, causing the btree entry to be overwritten. ** ** P1 must not be pseudo-table. It has to be a real table with ** multiple rows. |