From 285d8e12055f27bce5675e93fef365b6c337f2b3 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Tue, 15 Jan 2019 12:06:19 -0800 Subject: [PATCH] Move vacuumlazy.c into access/heap. It's heap table storage specific code that can't realistically be generalized into table AM agnostic code. Author: Andres Freund Discussion: https://postgr.es/m/20180703070645.wchpu5muyto5n647@alap3.anarazel.de --- src/backend/access/heap/Makefile | 3 ++- src/backend/{commands => access/heap}/vacuumlazy.c | 6 +++--- src/backend/commands/Makefile | 2 +- src/backend/commands/vacuum.c | 2 +- src/include/access/heapam.h | 4 ++++ src/include/commands/vacuum.h | 4 ---- 6 files changed, 11 insertions(+), 10 deletions(-) rename src/backend/{commands => access/heap}/vacuumlazy.c (99%) diff --git a/src/backend/access/heap/Makefile b/src/backend/access/heap/Makefile index b83d496bcd..7e7324a916 100644 --- a/src/backend/access/heap/Makefile +++ b/src/backend/access/heap/Makefile @@ -12,6 +12,7 @@ subdir = src/backend/access/heap top_builddir = ../../../.. include $(top_builddir)/src/Makefile.global -OBJS = heapam.o hio.o pruneheap.o rewriteheap.o syncscan.o tuptoaster.o visibilitymap.o +OBJS = heapam.o hio.o pruneheap.o rewriteheap.o syncscan.o tuptoaster.o \ + vacuumlazy.o visibilitymap.o include $(top_srcdir)/src/backend/common.mk diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c similarity index 99% rename from src/backend/commands/vacuumlazy.c rename to src/backend/access/heap/vacuumlazy.c index b67267fbab..2d317a9462 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -28,7 +28,7 @@ * * * IDENTIFICATION - * src/backend/commands/vacuumlazy.c + * src/backend/access/heap/vacuumlazy.c * *------------------------------------------------------------------------- */ @@ -178,7 +178,7 @@ static bool heap_page_is_all_visible(Relation rel, Buffer buf, /* - * lazy_vacuum_rel() -- perform LAZY VACUUM for one heap relation + * vacuum_heap_rel() -- perform VACUUM for one heap relation * * This routine vacuums a single heap, cleans out its indexes, and * updates its relpages and reltuples statistics. @@ -187,7 +187,7 @@ static bool heap_page_is_all_visible(Relation rel, Buffer buf, * and locked the relation. */ void -lazy_vacuum_rel(Relation onerel, int options, VacuumParams *params, +heap_vacuum_rel(Relation onerel, int options, VacuumParams *params, BufferAccessStrategy bstrategy) { LVRelStats *vacrelstats; diff --git a/src/backend/commands/Makefile b/src/backend/commands/Makefile index 4a6c99e090..d64628566d 100644 --- a/src/backend/commands/Makefile +++ b/src/backend/commands/Makefile @@ -20,6 +20,6 @@ OBJS = amcmds.o aggregatecmds.o alter.o analyze.o async.o cluster.o comment.o \ policy.o portalcmds.o prepare.o proclang.o publicationcmds.o \ schemacmds.o seclabel.o sequence.o statscmds.o subscriptioncmds.o \ tablecmds.o tablespace.o trigger.o tsearchcmds.o typecmds.o user.o \ - vacuum.o vacuumlazy.o variable.o view.o + vacuum.o variable.o view.o include $(top_srcdir)/src/backend/common.mk diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index ff1e178bc3..c4522cdc08 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -1711,7 +1711,7 @@ vacuum_rel(Oid relid, RangeVar *relation, int options, VacuumParams *params) cluster_rel(relid, InvalidOid, cluster_options); } else - lazy_vacuum_rel(onerel, options, params, vac_strategy); + heap_vacuum_rel(onerel, options, params, vac_strategy); /* Roll back any GUC changes executed by index functions */ AtEOXact_GUC(false, save_nestlevel); diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index cf2ac15124..4b78150330 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.h @@ -186,4 +186,8 @@ extern BlockNumber ss_get_location(Relation rel, BlockNumber relnblocks); extern void SyncScanShmemInit(void); extern Size SyncScanShmemSize(void); +/* in heap/vacuumlazy.c */ +struct VacuumParams; +extern void heap_vacuum_rel(Relation onerel, int options, + struct VacuumParams *params, BufferAccessStrategy bstrategy); #endif /* HEAPAM_H */ diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h index 0588139b25..0a051ec06e 100644 --- a/src/include/commands/vacuum.h +++ b/src/include/commands/vacuum.h @@ -196,10 +196,6 @@ extern bool vacuum_is_relation_owner(Oid relid, Form_pg_class reltuple, extern Relation vacuum_open_relation(Oid relid, RangeVar *relation, VacuumParams *params, int options, LOCKMODE lmode); -/* in commands/vacuumlazy.c */ -extern void lazy_vacuum_rel(Relation onerel, int options, - VacuumParams *params, BufferAccessStrategy bstrategy); - /* in commands/analyze.c */ extern void analyze_rel(Oid relid, RangeVar *relation, int options, VacuumParams *params, List *va_cols, bool in_outer_xact,