aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/execAmi.c13
-rw-r--r--src/backend/executor/execMain.c4
-rw-r--r--src/backend/executor/execUtils.c4
-rw-r--r--src/backend/executor/nodeIndexscan.c11
-rw-r--r--src/backend/executor/nodeMaterial.c5
-rw-r--r--src/backend/executor/nodeSeqscan.c3
-rw-r--r--src/backend/executor/nodeTee.c24
7 files changed, 38 insertions, 26 deletions
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 2c99433c85c..210d2d50726 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.23 1998/07/16 01:49:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.24 1998/07/27 19:37:54 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,7 +56,7 @@
static Pointer
ExecBeginScan(Relation relation, int nkeys, ScanKey skeys,
- bool isindex, ScanDirection dir);
+ bool isindex, ScanDirection dir, Snapshot snapshot);
static Relation ExecOpenR(Oid relationOid, bool isindex);
/* ----------------------------------------------------------------
@@ -81,6 +81,7 @@ ExecOpenScanR(Oid relOid,
ScanKey skeys,
bool isindex,
ScanDirection dir,
+ Snapshot snapshot,
Relation *returnRelation, /* return */
Pointer *returnScanDesc) /* return */
{
@@ -99,7 +100,8 @@ ExecOpenScanR(Oid relOid,
nkeys,
skeys,
isindex,
- dir);
+ dir,
+ snapshot);
if (returnRelation != NULL)
*returnRelation = relation;
@@ -153,7 +155,8 @@ ExecBeginScan(Relation relation,
int nkeys,
ScanKey skeys,
bool isindex,
- ScanDirection dir)
+ ScanDirection dir,
+ Snapshot snapshot)
{
Pointer scanDesc;
@@ -178,7 +181,7 @@ ExecBeginScan(Relation relation,
{
scanDesc = (Pointer) heap_beginscan(relation,
ScanDirectionIsBackward(dir),
- false,
+ snapshot,
nkeys,
skeys);
}
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 1dcd282d6c4..04159f7ab29 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.50 1998/07/20 16:14:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.51 1998/07/27 19:37:55 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -124,6 +124,8 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate)
palloc(queryDesc->plantree->nParamExec * sizeof(ParamExecData));
memset(estate->es_param_exec_vals, 0, queryDesc->plantree->nParamExec * sizeof(ParamExecData));
}
+
+ estate->es_snapshot = SnapshotNow;
result = InitPlan(queryDesc->operation,
queryDesc->parsetree,
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 0502036f9a1..158f78ebcdb 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.33 1998/07/20 16:14:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.34 1998/07/27 19:37:56 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -750,7 +750,7 @@ ExecOpenIndices(Oid resultRelationOid,
*/
indexSd = heap_beginscan(indexRd, /* scan desc */
false, /* scan backward flag */
- false, /* see self */
+ SnapshotNow, /* NOW snapshot */
1, /* number scan keys */
&key); /* scan keys */
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index 3354224a695..51308d41014 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.18 1998/06/15 19:28:22 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.19 1998/07/27 19:37:57 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -85,7 +85,8 @@ IndexNext(IndexScan *node)
EState *estate;
CommonScanState *scanstate;
IndexScanState *indexstate;
- ScanDirection direction;
+ ScanDirection direction;
+ Snapshot snapshot;
int indexPtr;
IndexScanDescPtr scanDescs;
IndexScanDesc scandesc;
@@ -101,6 +102,7 @@ IndexNext(IndexScan *node)
*/
estate = node->scan.plan.state;
direction = estate->es_direction;
+ snapshot = estate->es_snapshot;
scanstate = node->scan.scanstate;
indexstate = node->indxstate;
indexPtr = indexstate->iss_IndexPtr;
@@ -122,7 +124,8 @@ IndexNext(IndexScan *node)
*/
while ((result = index_getnext(scandesc, direction)) != NULL)
{
- tuple = heap_fetch(heapRelation, false, &result->heap_iptr, &buffer);
+ tuple = heap_fetch(heapRelation, snapshot,
+ &result->heap_iptr, &buffer);
/* be tidy */
pfree(result);
@@ -920,6 +923,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
(ScanKey) NULL, /* scan key */
0, /* is index */
direction, /* scan direction */
+ estate->es_snapshot, /* */
&currentRelation, /* return: rel desc */
(Pointer *) &currentScanDesc); /* return: scan desc */
@@ -958,6 +962,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
scanKeys[i], /* scan key */
true, /* is index */
direction, /* scan direction */
+ estate->es_snapshot,
&(relationDescs[i]), /* return: rel desc */
(Pointer *) &(scanDescs[i]));
/* return: scan desc */
diff --git a/src/backend/executor/nodeMaterial.c b/src/backend/executor/nodeMaterial.c
index 596b199ddc5..e58bc39f5e4 100644
--- a/src/backend/executor/nodeMaterial.c
+++ b/src/backend/executor/nodeMaterial.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.13 1998/02/26 04:31:28 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.14 1998/07/27 19:37:57 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -139,8 +139,7 @@ ExecMaterial(Material *node)
*/
currentScanDesc = heap_beginscan(currentRelation, /* relation */
ScanDirectionIsBackward(dir),
- /* bkwd flag */
- false, /* seeself */
+ SnapshotSelf, /* seeself */
0, /* num scan keys */
NULL); /* scan keys */
matstate->csstate.css_currentRelation = currentRelation;
diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c
index 795c17e8b09..1ff4f1f13eb 100644
--- a/src/backend/executor/nodeSeqscan.c
+++ b/src/backend/executor/nodeSeqscan.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeSeqscan.c,v 1.10 1998/06/15 19:28:22 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeSeqscan.c,v 1.11 1998/07/27 19:37:57 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -181,6 +181,7 @@ InitScanRelation(SeqScan *node, EState *estate,
NULL, /* scan key */
0, /* is index */
direction,/* scan direction */
+ estate->es_snapshot,
&currentRelation, /* return: rel desc */
(Pointer *) &currentScanDesc); /* return: scan desc */
diff --git a/src/backend/executor/nodeTee.c b/src/backend/executor/nodeTee.c
index f372a1ebea5..104de6413bf 100644
--- a/src/backend/executor/nodeTee.c
+++ b/src/backend/executor/nodeTee.c
@@ -15,7 +15,7 @@
* ExecEndTee
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.18 1998/06/15 19:28:23 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.19 1998/07/27 19:37:57 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -226,10 +226,11 @@ ExecCountSlotsTee(Tee *node)
static void
initTeeScanDescs(Tee *node)
{
- TeeState *teeState;
- Relation bufferRel;
- ScanDirection dir;
- MemoryContext orig;
+ TeeState *teeState;
+ Relation bufferRel;
+ ScanDirection dir;
+ Snapshot snapshot;
+ MemoryContext orig;
teeState = node->teestate;
if (teeState->tee_leftScanDesc && teeState->tee_rightScanDesc)
@@ -241,23 +242,24 @@ initTeeScanDescs(Tee *node)
bufferRel = teeState->tee_bufferRel;
dir = ((Plan *) node)->state->es_direction; /* backwards not handled
* yet XXX */
+ snapshot = ((Plan *) node)->state->es_snapshot;
if (teeState->tee_leftScanDesc == NULL)
{
teeState->tee_leftScanDesc = heap_beginscan(bufferRel,
ScanDirectionIsBackward(dir),
- false, /* seeself */
- 0, /* num scan keys */
- NULL /* scan keys */
+ snapshot,
+ 0, /* num scan keys */
+ NULL /* scan keys */
);
}
if (teeState->tee_rightScanDesc == NULL)
{
teeState->tee_rightScanDesc = heap_beginscan(bufferRel,
ScanDirectionIsBackward(dir),
- false, /* seeself */
- 0, /* num scan keys */
- NULL /* scan keys */
+ snapshot,
+ 0, /* num scan keys */
+ NULL /* scan keys */
);
}