aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/vacuum.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/vacuum.c')
-rw-r--r--src/backend/commands/vacuum.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 1c3437336d9..da85330ef40 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -391,11 +391,13 @@ vacuum(List *relations, VacuumParams *params,
/*
* If caller didn't give us a buffer strategy object, make one in the
- * cross-transaction memory context.
+ * cross-transaction memory context. We needn't bother making this for
+ * VACUUM (FULL) or VACUUM (ONLY_DATABASE_STATS) as they'll not make use
+ * of it.
*/
if (bstrategy == NULL &&
- !(params->options & VACOPT_ONLY_DATABASE_STATS ||
- params->options & VACOPT_FULL))
+ (params->options & (VACOPT_ONLY_DATABASE_STATS |
+ VACOPT_FULL)) == 0)
{
MemoryContext old_context = MemoryContextSwitchTo(vac_context);