* PredicateLockPage * * Gets a predicate lock at the page level. * Skip if not in full serializable transaction isolation level. * Skip if this is a temporary table. * Skip if a coarser predicate lock already covers this page. * Clear any finer-grained predicate locks this session has on the relation. */
| 2589 | * Clear any finer-grained predicate locks this session has on the relation. |
| 2590 | */ |
| 2591 | void |
| 2592 | PredicateLockPage(Relation relation, BlockNumber blkno, Snapshot snapshot) |
| 2593 | { |
| 2594 | PREDICATELOCKTARGETTAG tag; |
| 2595 | |
| 2596 | if (!SerializationNeededForRead(relation, snapshot)) |
| 2597 | return; |
| 2598 | |
| 2599 | SET_PREDICATELOCKTARGETTAG_PAGE(tag, |
| 2600 | relation->rd_node.dbNode, |
| 2601 | relation->rd_id, |
| 2602 | blkno); |
| 2603 | PredicateLockAcquire(&tag); |
| 2604 | } |
| 2605 | |
| 2606 | /* |
| 2607 | * PredicateLockTID |
no test coverage detected