Improve comments in vacuum_rel() and analyze_rel().

Remove obsolete references to get_rel_oids().  Avoid listing specific
relkinds in the comments, since we seem unable to keep such things
in sync with the code, and it's not all that helpful anyhow.

Noted by Michael Paquier, though I rewrote the comments a bit more.

Discussion: https://postgr.es/m/CAB7nPqTWiN9zwKTaOrsnKiGDChqRt7C1+CiiDk4N4OMn92rs6A@mail.gmail.com
This commit is contained in:
Tom Lane 2017-10-05 10:47:47 -04:00
parent 4b2ba1fe02
commit 4d85c2900b
2 changed files with 9 additions and 11 deletions

View File

@ -207,9 +207,7 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
} }
/* /*
* Check that it's a plain table, materialized view, or foreign table; we * Check that it's of an analyzable relkind, and set up appropriately.
* used to do this in get_rel_oids() but seems safer to check after we've
* locked the relation.
*/ */
if (onerel->rd_rel->relkind == RELKIND_RELATION || if (onerel->rd_rel->relkind == RELKIND_RELATION ||
onerel->rd_rel->relkind == RELKIND_MATVIEW) onerel->rd_rel->relkind == RELKIND_MATVIEW)

View File

@ -1309,6 +1309,9 @@ vac_truncate_clog(TransactionId frozenXID,
* do not use it once we've successfully opened the rel, since it might * do not use it once we've successfully opened the rel, since it might
* be stale. * be stale.
* *
* Returns true if it's okay to proceed with a requested ANALYZE
* operation on this table.
*
* Doing one heap at a time incurs extra overhead, since we need to * Doing one heap at a time incurs extra overhead, since we need to
* check that the heap exists again just before we vacuum it. The * check that the heap exists again just before we vacuum it. The
* reason that we do this is so that vacuuming can be spread across * reason that we do this is so that vacuuming can be spread across
@ -1444,9 +1447,7 @@ vacuum_rel(Oid relid, RangeVar *relation, int options, VacuumParams *params)
} }
/* /*
* Check that it's a vacuumable relation; we used to do this in * Check that it's of a vacuumable relkind.
* get_rel_oids() but seems safer to check after we've locked the
* relation.
*/ */
if (onerel->rd_rel->relkind != RELKIND_RELATION && if (onerel->rd_rel->relkind != RELKIND_RELATION &&
onerel->rd_rel->relkind != RELKIND_MATVIEW && onerel->rd_rel->relkind != RELKIND_MATVIEW &&
@ -1478,17 +1479,16 @@ vacuum_rel(Oid relid, RangeVar *relation, int options, VacuumParams *params)
} }
/* /*
* Ignore partitioned tables as there is no work to be done. Since we * Silently ignore partitioned tables as there is no work to be done. The
* release the lock here, it's possible that any partitions added from * useful work is on their child partitions, which have been queued up for
* this point on will not get processed, but that seems harmless. * us separately.
*/ */
if (onerel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) if (onerel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
{ {
relation_close(onerel, lmode); relation_close(onerel, lmode);
PopActiveSnapshot(); PopActiveSnapshot();
CommitTransactionCommand(); CommitTransactionCommand();
/* It's OK to proceed with ANALYZE on this table */
/* It's OK for other commands to look at this table */
return true; return true;
} }