diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2007-10-26 20:45:10 +0000 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2007-10-26 20:45:10 +0000 |
commit | acac68b2bcae818bc8803b8cb8cbb17eee8d5e2b (patch) | |
tree | 437f3d5c6499a7c844450e305e9d5248af44c117 /src/include/storage/lock.h | |
parent | ffda32e9fd1878cd3896e71b4f48e97c22479335 (diff) |
Allow an autovacuum worker to be interrupted automatically when it is found
to be locking another process (except when it's working to prevent Xid
wraparound problems).
Diffstat (limited to 'src/include/storage/lock.h')
-rw-r--r-- | src/include/storage/lock.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index 30c8a3fa2bc..005c99ee7dc 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/storage/lock.h,v 1.107 2007/09/05 18:10:48 tgl Exp $ + * $PostgreSQL: pgsql/src/include/storage/lock.h,v 1.108 2007/10/26 20:45:10 alvherre Exp $ * *------------------------------------------------------------------------- */ @@ -442,7 +442,9 @@ typedef enum DS_NOT_YET_CHECKED, /* no deadlock check has run yet */ DS_NO_DEADLOCK, /* no deadlock detected */ DS_SOFT_DEADLOCK, /* deadlock avoided by queue rearrangement */ - DS_HARD_DEADLOCK /* deadlock, no way out but ERROR */ + DS_HARD_DEADLOCK, /* deadlock, no way out but ERROR */ + DS_BLOCKED_BY_AUTOVACUUM /* no deadlock; queue blocked by autovacuum + worker */ } DeadLockState; @@ -495,6 +497,7 @@ extern void lock_twophase_postabort(TransactionId xid, uint16 info, void *recdata, uint32 len); extern DeadLockState DeadLockCheck(PGPROC *proc); +extern PGPROC *GetBlockingAutoVacuumPgproc(void); extern void DeadLockReport(void); extern void RememberSimpleDeadLock(PGPROC *proc1, LOCKMODE lockmode, |