aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xact.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/transam/xact.c')
-rw-r--r--src/backend/access/transam/xact.c42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 903cca41130..5ac4a42c7c7 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.12 1997/08/19 21:30:19 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.13 1997/08/29 09:02:11 vadim Exp $
*
* NOTES
* Transaction aborts can now occur two ways:
@@ -377,6 +377,22 @@ GetCurrentCommandId()
return s->commandId;
}
+CommandId
+GetScanCommandId()
+{
+ TransactionState s = CurrentTransactionState;
+
+ /* ----------------
+ * if the transaction system is disabled, we return
+ * the special "disabled" command id.
+ * ----------------
+ */
+ if (s->state == TRANS_DISABLED)
+ return (CommandId) DisabledCommandId;
+
+ return s->scanCommandId;
+}
+
/* --------------------------------
* GetCurrentTransactionStartTime
@@ -432,6 +448,18 @@ CommandIdIsCurrentCommandId(CommandId cid)
(cid == s->commandId) ? true : false;
}
+bool
+CommandIdGEScanCommandId(CommandId cid)
+{
+ TransactionState s = CurrentTransactionState;
+
+ if (AMI_OVERRIDE)
+ return false;
+
+ return
+ (cid >= s->scanCommandId) ? true : false;
+}
+
/* --------------------------------
* ClearCommandIdCounterOverflowFlag
@@ -458,11 +486,22 @@ CommandCounterIncrement()
elog(WARN, "You may only have 65535 commands per transaction");
}
+ CurrentTransactionStateData.scanCommandId =
+ CurrentTransactionStateData.commandId;
+
/* make cache changes visible to me */
AtCommit_Cache();
AtStart_Cache();
}
+void
+SetScanCommandId (CommandId savedId)
+{
+
+ CurrentTransactionStateData.scanCommandId = savedId;
+
+}
+
/* ----------------------------------------------------------------
* initialization stuff
* ----------------------------------------------------------------
@@ -757,6 +796,7 @@ StartTransaction()
* ----------------
*/
s->commandId = FirstCommandId;
+ s->scanCommandId = FirstCommandId;
s->startTime = GetCurrentAbsoluteTime();
/* ----------------