diff options
author | Thomas Munro <tmunro@postgresql.org> | 2020-01-28 13:13:04 +1300 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2020-01-28 13:13:04 +1300 |
commit | 6f38d4dac381b5b8bead302a0b4f81761042cd25 (patch) | |
tree | 93c4f33eb15be92bc1b24ea5bee97f1201dfbbd0 /src/backend/access/gin/gininsert.c | |
parent | 4589c6a2a30faba53d0655a8e3a29b54d28bb6f6 (diff) |
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
Diffstat (limited to 'src/backend/access/gin/gininsert.c')
-rw-r--r-- | src/backend/access/gin/gininsert.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c index 351a8813f96..77433dc8a41 100644 --- a/src/backend/access/gin/gininsert.c +++ b/src/backend/access/gin/gininsert.c @@ -216,7 +216,8 @@ ginEntryInsert(GinState *ginstate, return; } - CheckForSerializableConflictIn(ginstate->index, NULL, stack->buffer); + CheckForSerializableConflictIn(ginstate->index, NULL, + BufferGetBlockNumber(stack->buffer)); /* modify an existing leaf entry */ itup = addItemPointersToLeafTuple(ginstate, itup, items, nitem, buildStats, stack->buffer); @@ -225,7 +226,8 @@ ginEntryInsert(GinState *ginstate, } else { - CheckForSerializableConflictIn(ginstate->index, NULL, stack->buffer); + CheckForSerializableConflictIn(ginstate->index, NULL, + BufferGetBlockNumber(stack->buffer)); /* no match, so construct a new leaf entry */ itup = buildFreshLeafTuple(ginstate, attnum, key, category, items, nitem, buildStats, stack->buffer); |