ssi-seqscan-cleanup.patch
application/octet-stream
Filename: ssi-seqscan-cleanup.patch
Type: application/octet-stream
Part: 0
Message:
Re: SSI modularity questions
*** a/src/backend/access/heap/heapam.c
--- b/src/backend/access/heap/heapam.c
***************
*** 479,486 **** heapgettup(HeapScanDesc scan,
if (valid)
{
- if (!scan->rs_relpredicatelocked)
- PredicateLockTuple(scan->rs_rd, tuple, snapshot);
LockBuffer(scan->rs_cbuf, BUFFER_LOCK_UNLOCK);
return;
}
--- 479,484 ----
***************
*** 748,763 **** heapgettup_pagemode(HeapScanDesc scan,
nkeys, key, valid);
if (valid)
{
- if (!scan->rs_relpredicatelocked)
- PredicateLockTuple(scan->rs_rd, tuple, scan->rs_snapshot);
scan->rs_cindex = lineindex;
return;
}
}
else
{
- if (!scan->rs_relpredicatelocked)
- PredicateLockTuple(scan->rs_rd, tuple, scan->rs_snapshot);
scan->rs_cindex = lineindex;
return;
}
--- 746,757 ----
***************
*** 1228,1234 **** heap_beginscan_internal(Relation relation, Snapshot snapshot,
scan->rs_strategy = NULL; /* set in initscan */
scan->rs_allow_strat = allow_strat;
scan->rs_allow_sync = allow_sync;
- scan->rs_relpredicatelocked = false;
/*
* we can use page-at-a-time mode if it's an MVCC-safe snapshot
--- 1222,1227 ----
*** a/src/backend/executor/nodeSeqscan.c
--- b/src/backend/executor/nodeSeqscan.c
***************
*** 115,121 **** ExecSeqScan(SeqScanState *node)
{
PredicateLockRelation(node->ss_currentRelation,
node->ss_currentScanDesc->rs_snapshot);
- node->ss_currentScanDesc->rs_relpredicatelocked = true;
return ExecScan((ScanState *) node,
(ExecScanAccessMtd) SeqNext,
(ExecScanRecheckMtd) SeqRecheck);
--- 115,120 ----
*** a/src/include/access/relscan.h
--- b/src/include/access/relscan.h
***************
*** 35,41 **** typedef struct HeapScanDescData
BlockNumber rs_startblock; /* block # to start at */
BufferAccessStrategy rs_strategy; /* access strategy for reads */
bool rs_syncscan; /* report location to syncscan logic? */
- bool rs_relpredicatelocked; /* predicate lock on relation exists */
/* scan current state */
bool rs_inited; /* false = scan not init'd yet */
--- 35,40 ----