Move parallel vacuum code to vacuumparallel.c.

This commit moves parallel vacuum related code to a new file
commands/vacuumparallel.c so that any table AM supporting indexes can
utilize parallel vacuum in order to call index AM callbacks (ambulkdelete
and amvacuumcleanup) with parallel workers.

Another reason for this refactoring is that the parallel vacuum isn't
specific to heap so it doesn't make sense to keep this code in
heap/vacuumlazy.c.

Author: Masahiko Sawada, based on suggestion from Andres Freund
Reviewed-by: Hou Zhijie, Amit Kapila, Haiying Tang
Discussion: 
https://www.postgresql.org/message-id/20211030212101.ae3qcouatwmy7tbr%40alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/8e1fae193864527c931a704bd7908e4fbc983f5c

Modified Files
--------------
src/backend/access/heap/vacuumlazy.c  | 1002 +------------------------------
src/backend/access/transam/parallel.c |    2 +-
src/backend/commands/Makefile         |    1 +
src/backend/commands/vacuum.c         |    5 +-
src/backend/commands/vacuumparallel.c | 1068 +++++++++++++++++++++++++++++++++
src/include/access/heapam.h           |    1 -
src/include/commands/vacuum.h         |   20 +
src/tools/pgindent/typedefs.list      |    9 +-
8 files changed, 1125 insertions(+), 983 deletions(-)

Reply via email to