aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/tcop/utility.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 7f36a09f46d..3b0ebdd3e75 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -1018,10 +1018,14 @@ standard_ProcessUtility(Node *parsetree,
break;
case T_VacuumStmt:
- /* we choose to allow this during "read only" transactions */
- PreventCommandDuringRecovery("VACUUM");
- vacuum((VacuumStmt *) parsetree, InvalidOid, true, NULL, false,
- isTopLevel);
+ {
+ VacuumStmt *stmt = (VacuumStmt *) parsetree;
+
+ /* we choose to allow this during "read only" transactions */
+ PreventCommandDuringRecovery((stmt->options & VACOPT_VACUUM) ?
+ "VACUUM" : "ANALYZE");
+ vacuum(stmt, InvalidOid, true, NULL, false, isTopLevel);
+ }
break;
case T_ExplainStmt: