Add assertion in expand_vacuum_rel() for non-autovacuum path
authorMichael Paquier
Thu, 12 Jul 2018 04:50:17 +0000 (13:50 +0900)
committerMichael Paquier
Thu, 12 Jul 2018 04:50:17 +0000 (13:50 +0900)
The code path where the assertion is added helps to check that
autovacuum always includes a relation OID when doing a vacuum on it.
Extracted from a larger patch set to add support for SKIP LOCKED with
manual VACUUM commands.

Author: Nathan Bossart
Discussion: https://postgr.es/m/9EF7EBE4-720D-4CF1-9D0E-4403D7E92990@amazon.com

src/backend/commands/vacuum.c

index d90cb9a9022d0f967b3cdb3a5d95af9330e39099..e16d8ef212ae57432b5de502aadc0eda51ae52ff 100644 (file)
@@ -443,6 +443,12 @@ expand_vacuum_rel(VacuumRelation *vrel)
        Form_pg_class classForm;
        bool        include_parts;
 
+       /*
+        * Since autovacuum workers supply OIDs when calling vacuum(), no
+        * autovacuum worker should reach this code.
+        */
+       Assert(!IsAutoVacuumWorkerProcess());
+
        /*
         * We transiently take AccessShareLock to protect the syscache lookup
         * below, as well as find_all_inheritors's expectation that the caller