summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/scripts/t/100_vacuumdb.pl6
-rw-r--r--src/bin/scripts/vacuumdb.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/src/bin/scripts/t/100_vacuumdb.pl b/src/bin/scripts/t/100_vacuumdb.pl
index 945c30df156..a16fad593f7 100644
--- a/src/bin/scripts/t/100_vacuumdb.pl
+++ b/src/bin/scripts/t/100_vacuumdb.pl
@@ -351,5 +351,11 @@ $node->issues_sql_like(
],
qr/statement: ANALYZE public.parent_table/s,
'--analyze-only updates statistics for partitioned tables');
+$node->issues_sql_unlike(
+ [
+ 'vacuumdb', '--analyze-only', 'postgres'
+ ],
+ qr/statement:\ VACUUM/sx,
+ '--analyze-only does not run vacuum');
done_testing();
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index fd236087e90..6e30f223efe 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -750,7 +750,8 @@ vacuum_one_database(ConnParams *cparams,
}
/* If we used SKIP_DATABASE_STATS, mop up with ONLY_DATABASE_STATS */
- if (vacopts->skip_database_stats && stage == ANALYZE_NO_STAGE)
+ if (vacopts->skip_database_stats && stage == ANALYZE_NO_STAGE &&
+ !vacopts->analyze_only)
{
const char *cmd = "VACUUM (ONLY_DATABASE_STATS);";
ParallelSlot *free_slot = ParallelSlotsGetIdle(sa, NULL);