Refactor relation opening for VACUUM and ANALYZE
authorMichael Paquier <michael@paquier.xyz>
Mon, 1 Oct 2018 23:53:38 +0000 (08:53 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 1 Oct 2018 23:53:38 +0000 (08:53 +0900)
commite3a25ab9ea56ac540dc683cdf6f6a4b923bd22be
tree6874587914dfa46e9a4911302fe05dd52a99939b
parentcf3dfea45b13662b3c23d7c481a9f77d67e77c45
Refactor relation opening for VACUUM and ANALYZE

VACUUM and ANALYZE share similar logic when it comes to opening a
relation to work on in terms of how the relation is opened, in which
order locks are tried and how logs should be generated when something
does not work as expected.

This commit refactors things so as both use the same code path to handle
the way a relation is opened, so as the integration of new options
becomes easier.

Author: Michael Paquier
Reviewed-by: Nathan Bossart
Discussion: https://postgr.es/m/20180927075152.GT1659@paquier.xyz
src/backend/commands/analyze.c
src/backend/commands/vacuum.c
src/include/commands/vacuum.h