Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit28f4b61

Browse files
committed
Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed
Commit 866e24d47db1 added an assert that HEAP_XMAX_LOCK_ONLY andHEAP_KEYS_UPDATED cannot appear together, on the faulty assumption thatthe latter necessarily referred to an update and not a tuple lock; butthat's wrong, because SELECT FOR UPDATE can use precisely thatcombination, as evidenced by the amcheck test case added here.Remove the Assert(), and also patch amcheck's verify_heapam.c to notcomplain if the combination is found. Also, out of overabundance ofcaution, update (across all branches) README.tuplock to be more explicitabout this.Author: Julien Rouhaud <rjuju123@gmail.com>Reviewed-by: Mahendra Singh Thalor <mahi6run@gmail.com>Reviewed-by: Dilip Kumar <dilipbalaut@gmail.com>Discussion:https://postgr.es/m/20210124061758.GA11756@nol
1 parent186f616 commit28f4b61

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

‎src/backend/access/heap/README.tuplock

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,10 @@ The following infomask bits are applicable:
146146
FOR UPDATE; this is implemented by the HEAP_KEYS_UPDATED bit.
147147

148148
- HEAP_KEYS_UPDATED
149-
This bit lives in t_infomask2. If set, indicates that the XMAX updated
150-
this tuple and changed the key values, or it deleted the tuple.
151-
It's set regardless of whether the XMAX is a TransactionId or a MultiXactId.
149+
This bit lives in t_infomask2. If set, indicates that the operation(s) done
150+
by the XMAX compromise the tuple key, such as a SELECT FOR UPDATE, an UPDATE
151+
that modifies the columns of the key, or a DELETE. It's set regardless of
152+
whether the XMAX is a TransactionId or a MultiXactId.
152153

153154
We currently never set the HEAP_XMAX_COMMITTED when the HEAP_XMAX_IS_MULTI bit
154155
is set.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp