diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-12-18 09:10:39 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-12-18 09:10:39 +0000 |
commit | 3498d878cb5951fcfaae2ca78f46eacf0b140e7b (patch) | |
tree | c43274bd808bc8fe445cd6d319aebefc176a9436 /src/backend/access/transam/varsup.c | |
parent | c7da80bb9a14b0b4b55574b0efa356128190936e (diff) |
SET TRANSACTION ISOLATION LEVEL ...
LOCK TABLE IN ... MODE
...implemented
Diffstat (limited to 'src/backend/access/transam/varsup.c')
-rw-r--r-- | src/backend/access/transam/varsup.c | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 2c49c05c124..b1e723361c3 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.17 1998/09/01 04:27:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.18 1998/12/18 09:10:17 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -311,6 +311,42 @@ GetNewTransactionId(TransactionId *xid) SpinRelease(OidGenLockId); } +/* + * Like GetNewTransactionId reads nextXid but don't fetch it. + */ +void +ReadNewTransactionId(TransactionId *xid) +{ + + /* ---------------- + * during bootstrap initialization, we return the special + * bootstrap transaction id. + * ---------------- + */ + if (AMI_OVERRIDE) + { + TransactionIdStore(AmiTransactionId, xid); + return; + } + + SpinAcquire(OidGenLockId); /* not good for concurrency... */ + + if (ShmemVariableCache->xid_count == 0) + { + TransactionId nextid; + + VariableRelationGetNextXid(&nextid); + TransactionIdStore(nextid, &(ShmemVariableCache->nextXid)); + ShmemVariableCache->xid_count = VAR_XID_PREFETCH; + TransactionIdAdd(&nextid, VAR_XID_PREFETCH); + VariableRelationPutNextXid(nextid); + } + + TransactionIdStore(ShmemVariableCache->nextXid, xid); + + SpinRelease(OidGenLockId); +} + /* ---------------------------------------------------------------- * object id generation support * ---------------------------------------------------------------- |