summaryrefslogtreecommitdiff
path: root/src/backend/postmaster
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2019-03-18 13:57:33 -0400
committerRobert Haas <rhaas@postgresql.org>2019-03-18 13:57:33 -0400
commitf41551f61f9cf4eedd5b7173f985a3bdb4d9858c (patch)
tree18250fca345339d74a8fed67af29478e852aa998 /src/backend/postmaster
parent1ffa59a85cb40a61f4523fb03c8960db97eea124 (diff)
downloadpostgresql-f41551f61f9cf4eedd5b7173f985a3bdb4d9858c.tar.gz
Fold vacuum's 'int options' parameter into VacuumParams.
Many places need both, so this allows a few functions to take one fewer parameter. More importantly, as soon as we add a VACUUM option that takes a non-Boolean parameter, we need to replace 'int options' with a struct, and it seems better to think of adding more fields to VacuumParams rather than passing around both VacuumParams and a separate struct as well. Patch by me, reviewed by Masahiko Sawada Discussion: http://postgr.es/m/CA+Tgmob6g6-s50fyv8E8he7APfwCYYJ4z0wbZC2yZeSz=26CYQ@mail.gmail.com
Diffstat (limited to 'src/backend/postmaster')
-rw-r--r--src/backend/postmaster/autovacuum.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index 3bfac919c4..fa875db816 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -188,7 +188,6 @@ typedef struct av_relation
typedef struct autovac_table
{
Oid at_relid;
- int at_vacoptions; /* bitmask of VacuumOption */
VacuumParams at_params;
double at_vacuum_cost_delay;
int at_vacuum_cost_limit;
@@ -2482,7 +2481,7 @@ do_autovacuum(void)
* next table in our list.
*/
HOLD_INTERRUPTS();
- if (tab->at_vacoptions & VACOPT_VACUUM)
+ if (tab->at_params.options & VACOPT_VACUUM)
errcontext("automatic vacuum of table \"%s.%s.%s\"",
tab->at_datname, tab->at_nspname, tab->at_relname);
else
@@ -2883,7 +2882,7 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map,
tab = palloc(sizeof(autovac_table));
tab->at_relid = relid;
tab->at_sharedrel = classForm->relisshared;
- tab->at_vacoptions = VACOPT_SKIPTOAST |
+ tab->at_params.options = VACOPT_SKIPTOAST |
(dovacuum ? VACOPT_VACUUM : 0) |
(doanalyze ? VACOPT_ANALYZE : 0) |
(!wraparound ? VACOPT_SKIP_LOCKED : 0);
@@ -3110,7 +3109,7 @@ autovacuum_do_vac_analyze(autovac_table *tab, BufferAccessStrategy bstrategy)
rel = makeVacuumRelation(rangevar, tab->at_relid, NIL);
rel_list = list_make1(rel);
- vacuum(tab->at_vacoptions, rel_list, &tab->at_params, bstrategy, true);
+ vacuum(rel_list, &tab->at_params, bstrategy, true);
}
/*
@@ -3132,10 +3131,10 @@ autovac_report_activity(autovac_table *tab)
int len;
/* Report the command and possible options */
- if (tab->at_vacoptions & VACOPT_VACUUM)
+ if (tab->at_params.options & VACOPT_VACUUM)
snprintf(activity, MAX_AUTOVAC_ACTIV_LEN,
"autovacuum: VACUUM%s",
- tab->at_vacoptions & VACOPT_ANALYZE ? " ANALYZE" : "");
+ tab->at_params.options & VACOPT_ANALYZE ? " ANALYZE" : "");
else
snprintf(activity, MAX_AUTOVAC_ACTIV_LEN,
"autovacuum: ANALYZE");