diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 2000-11-05 22:50:21 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 2000-11-05 22:50:21 +0000 |
commit | f0e37a85319e6c113ecd3303cddeb6edd5a6ac44 (patch) | |
tree | dcca7027e03e7c17aa482d420d9f691c02eb65a5 /src/backend/storage/ipc/sinval.c | |
parent | 7267fdd7a3ae0a8a169e9730bdfaa46fde7dd94b (diff) |
New CHECKPOINT command.
Auto removing of offline log files and creating new file
at checkpoint time.
Diffstat (limited to 'src/backend/storage/ipc/sinval.c')
-rw-r--r-- | src/backend/storage/ipc/sinval.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/backend/storage/ipc/sinval.c b/src/backend/storage/ipc/sinval.c index 62023afa01c..c610147fc5f 100644 --- a/src/backend/storage/ipc/sinval.c +++ b/src/backend/storage/ipc/sinval.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.21 2000/04/12 17:15:37 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.22 2000/11/05 22:50:20 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -369,3 +369,40 @@ GetSnapshotData(bool serializable) snapshot->xcnt = count; return snapshot; } + +/* + * GetUndoRecPtr -- returns oldest PROC->logRec. + */ +XLogRecPtr GetUndoRecPtr(void); + +XLogRecPtr +GetUndoRecPtr(void) +{ + SISeg *segP = shmInvalBuffer; + ProcState *stateP = segP->procState; + XLogRecPtr urec = {0, 0}; + XLogRecPtr tempr; + int index; + + SpinAcquire(SInvalLock); + + for (index = 0; index < segP->maxBackends; index++) + { + SHMEM_OFFSET pOffset = stateP[index].procStruct; + + if (pOffset != INVALID_OFFSET) + { + PROC *proc = (PROC *) MAKE_PTR(pOffset); + tempr = proc->logRec; + if (tempr.xrecoff == 0) + continue; + if (urec.xrecoff != 0 && XLByteLT(urec, tempr)) + continue; + urec = tempr; + } + } + + SpinRelease(SInvalLock); + + return(urec); +} |