File tree 2 files changed +14
-13
lines changed
2 files changed +14
-13
lines changed Original file line number Diff line number Diff line change @@ -8975,15 +8975,13 @@ heap_mask(char *pagedata, BlockNumber blkno)
8975
8975
8976
8976
/*
8977
8977
* HeapCheckForSerializableConflictOut
8978
- * We are reading a tuple which has been modified. If it is visible to
8979
- * us but has been deleted, that indicates a rw-conflict out. If it's
8980
- * not visible and was created by a concurrent (overlapping)
8981
- * serializable transaction, that is also a rw-conflict out,
8978
+ * We are reading a tuple. If it's not visible, there may be a
8979
+ * rw-conflict out with the inserter. Otherwise, if it is visible to us
8980
+ * but has been deleted, there may be a rw-conflict out with the deleter.
8982
8981
*
8983
8982
* We will determine the top level xid of the writing transaction with which
8984
- * we may be in conflict, and check for overlap with our own transaction.
8985
- * If the transactions overlap (i.e., they cannot see each other's writes),
8986
- * then we have a conflict out.
8983
+ * we may be in conflict, and ask CheckForSerializableConflictOut() to check
8984
+ * for overlap with our own transaction.
8987
8985
*
8988
8986
* This function should be called just about anywhere in heapam.c where a
8989
8987
* tuple has been read. The caller must hold at least a shared lock on the
Original file line number Diff line number Diff line change @@ -4037,13 +4037,16 @@ CheckForSerializableConflictOutNeeded(Relation relation, Snapshot snapshot)
4037
4037
4038
4038
/*
4039
4039
* CheckForSerializableConflictOut
4040
- * A table AM is reading a tuple that has been modified. After determining
4041
- * that it is visible to us, it should call this function with the top
4042
- * level xid of the writing transaction.
4040
+ * A table AM is reading a tuple that has been modified. If it determines
4041
+ * that the tuple version it is reading is not visible to us, it should
4042
+ * pass in the top level xid of the transaction that created it.
4043
+ * Otherwise, if it determines that it is visible to us but it has been
4044
+ * deleted or there is a newer version available due to an update, it
4045
+ * should pass in the top level xid of the modifying transaction.
4043
4046
*
4044
- * This function will check for overlap with our own transaction. If the
4045
- * transactions overlap (i.e., they cannot see each other's writes), then we
4046
- * have a conflict out.
4047
+ * This function will check for overlap with our own transaction. If the given
4048
+ * xid is also serializable and the transactions overlap (i.e., they cannot see
4049
+ * each other's writes), then we have a conflict out.
4047
4050
*/
4048
4051
void
4049
4052
CheckForSerializableConflictOut (Relation relation , TransactionId xid , Snapshot snapshot )
You can’t perform that action at this time.
0 commit comments