aboutsummaryrefslogtreecommitdiff
path: root/src/include/nodes/parsenodes.h
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2011-02-07 22:04:29 -0500
committerRobert Haas <rhaas@postgresql.org>2011-02-07 22:04:29 -0500
commit32896c40ca766146312b28a5a0eb3f66ca0300ed (patch)
tree88596b8de0a3d0f57beaf994ff8ace6eda6fd9ba /src/include/nodes/parsenodes.h
parent47082fa875179ae629edb26807ab3f38a775280b (diff)
downloadpostgresql-32896c40ca766146312b28a5a0eb3f66ca0300ed.tar.gz
postgresql-32896c40ca766146312b28a5a0eb3f66ca0300ed.zip
Avoid having autovacuum workers wait for relation locks.
Waiting for relation locks can lead to starvation - it pins down an autovacuum worker for as long as the lock is held. But if we're doing an anti-wraparound vacuum, then we still wait; maintenance can no longer be put off. To assist with troubleshooting, if log_autovacuum_min_duration >= 0, we log whenever an autovacuum or autoanalyze is skipped for this reason. Per a gripe by Josh Berkus, and ensuing discussion.
Diffstat (limited to 'src/include/nodes/parsenodes.h')
-rw-r--r--src/include/nodes/parsenodes.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 483f22591ea..d7d1b0a6fdf 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -2332,7 +2332,8 @@ typedef enum VacuumOption
VACOPT_ANALYZE = 1 << 1, /* do ANALYZE */
VACOPT_VERBOSE = 1 << 2, /* print progress info */
VACOPT_FREEZE = 1 << 3, /* FREEZE option */
- VACOPT_FULL = 1 << 4 /* FULL (non-concurrent) vacuum */
+ VACOPT_FULL = 1 << 4, /* FULL (non-concurrent) vacuum */
+ VACOPT_NOWAIT = 1 << 5
} VacuumOption;
typedef struct VacuumStmt