mirror of
https://github.com/postgres/postgres.git
synced 2025-08-31 17:02:12 +03:00
Remove dependency on HeapTuple from predicate locking functions.
The following changes make the predicate locking functions more generic and suitable for use by future access methods: - PredicateLockTuple() is renamed to PredicateLockTID(). It takes ItemPointer and inserting transaction ID instead of HeapTuple. - CheckForSerializableConflictIn() takes blocknum instead of buffer. - CheckForSerializableConflictOut() no longer takes HeapTuple or buffer. Author: Ashwin Agrawal Reviewed-by: Andres Freund, Kuntal Ghosh, Thomas Munro Discussion: https://postgr.es/m/CALfoeiv0k3hkEb3Oqk%3DziWqtyk2Jys1UOK5hwRBNeANT_yX%2Bng%40mail.gmail.com
This commit is contained in:
@@ -285,7 +285,7 @@ top:
|
||||
* checkingunique and !heapkeyspace cases, but it's okay to use the
|
||||
* first page the value could be on (with scantid omitted) instead.
|
||||
*/
|
||||
CheckForSerializableConflictIn(rel, NULL, insertstate.buf);
|
||||
CheckForSerializableConflictIn(rel, NULL, BufferGetBlockNumber(insertstate.buf));
|
||||
|
||||
/*
|
||||
* Do the insertion. Note that insertstate contains cached binary
|
||||
@@ -528,7 +528,7 @@ _bt_check_unique(Relation rel, BTInsertState insertstate, Relation heapRel,
|
||||
* otherwise be masked by this unique constraint
|
||||
* violation.
|
||||
*/
|
||||
CheckForSerializableConflictIn(rel, NULL, insertstate->buf);
|
||||
CheckForSerializableConflictIn(rel, NULL, BufferGetBlockNumber(insertstate->buf));
|
||||
|
||||
/*
|
||||
* This is a definite conflict. Break the tuple down into
|
||||
|
Reference in New Issue
Block a user