Skip to content

Commit f41551f

Browse files
committed
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
1 parent 1ffa59a commit f41551f

File tree

6 files changed

+63
-63
lines changed

6 files changed

+63
-63
lines changed

src/backend/access/heap/vacuumlazy.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ static bool heap_page_is_all_visible(Relation rel, Buffer buf,
186186
* and locked the relation.
187187
*/
188188
void
189-
heap_vacuum_rel(Relation onerel, int options, VacuumParams *params,
189+
heap_vacuum_rel(Relation onerel, VacuumParams *params,
190190
BufferAccessStrategy bstrategy)
191191
{
192192
LVRelStats *vacrelstats;
@@ -217,7 +217,7 @@ heap_vacuum_rel(Relation onerel, int options, VacuumParams *params,
217217
starttime = GetCurrentTimestamp();
218218
}
219219

220-
if (options & VACOPT_VERBOSE)
220+
if (params->options & VACOPT_VERBOSE)
221221
elevel = INFO;
222222
else
223223
elevel = DEBUG2;
@@ -245,7 +245,7 @@ heap_vacuum_rel(Relation onerel, int options, VacuumParams *params,
245245
xidFullScanLimit);
246246
aggressive |= MultiXactIdPrecedesOrEquals(onerel->rd_rel->relminmxid,
247247
mxactFullScanLimit);
248-
if (options & VACOPT_DISABLE_PAGE_SKIPPING)
248+
if (params->options & VACOPT_DISABLE_PAGE_SKIPPING)
249249
aggressive = true;
250250

251251
vacrelstats = (LVRelStats *) palloc0(sizeof(LVRelStats));
@@ -261,7 +261,7 @@ heap_vacuum_rel(Relation onerel, int options, VacuumParams *params,
261261
vacrelstats->hasindex = (nindexes > 0);
262262

263263
/* Do the vacuuming */
264-
lazy_scan_heap(onerel, options, vacrelstats, Irel, nindexes, aggressive);
264+
lazy_scan_heap(onerel, params->options, vacrelstats, Irel, nindexes, aggressive);
265265

266266
/* Done with indexes */
267267
vac_close_indexes(nindexes, Irel, NoLock);

src/backend/commands/analyze.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ static MemoryContext anl_context = NULL;
8484
static BufferAccessStrategy vac_strategy;
8585

8686

87-
static void do_analyze_rel(Relation onerel, int options,
87+
static void do_analyze_rel(Relation onerel,
8888
VacuumParams *params, List *va_cols,
8989
AcquireSampleRowsFunc acquirefunc, BlockNumber relpages,
9090
bool inh, bool in_outer_xact, int elevel);
@@ -115,7 +115,7 @@ static Datum ind_fetch_func(VacAttrStatsP stats, int rownum, bool *isNull);
115115
* use it once we've successfully opened the rel, since it might be stale.
116116
*/
117117
void
118-
analyze_rel(Oid relid, RangeVar *relation, int options,
118+
analyze_rel(Oid relid, RangeVar *relation,
119119
VacuumParams *params, List *va_cols, bool in_outer_xact,
120120
BufferAccessStrategy bstrategy)
121121
{
@@ -125,7 +125,7 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
125125
BlockNumber relpages = 0;
126126

127127
/* Select logging level */
128-
if (options & VACOPT_VERBOSE)
128+
if (params->options & VACOPT_VERBOSE)
129129
elevel = INFO;
130130
else
131131
elevel = DEBUG2;
@@ -147,8 +147,8 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
147147
*
148148
* Make sure to generate only logs for ANALYZE in this case.
149149
*/
150-
onerel = vacuum_open_relation(relid, relation, params,
151-
options & ~(VACOPT_VACUUM),
150+
onerel = vacuum_open_relation(relid, relation, params->options & ~(VACOPT_VACUUM),
151+
params->log_min_duration >= 0,
152152
ShareUpdateExclusiveLock);
153153

154154
/* leave if relation could not be opened or locked */
@@ -165,7 +165,7 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
165165
*/
166166
if (!vacuum_is_relation_owner(RelationGetRelid(onerel),
167167
onerel->rd_rel,
168-
options & VACOPT_ANALYZE))
168+
params->options & VACOPT_ANALYZE))
169169
{
170170
relation_close(onerel, ShareUpdateExclusiveLock);
171171
return;
@@ -237,7 +237,7 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
237237
else
238238
{
239239
/* No need for a WARNING if we already complained during VACUUM */
240-
if (!(options & VACOPT_VACUUM))
240+
if (!(params->options & VACOPT_VACUUM))
241241
ereport(WARNING,
242242
(errmsg("skipping \"%s\" --- cannot analyze non-tables or special system tables",
243243
RelationGetRelationName(onerel))));
@@ -257,14 +257,14 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
257257
* tables, which don't contain any rows.
258258
*/
259259
if (onerel->rd_rel->relkind != RELKIND_PARTITIONED_TABLE)
260-
do_analyze_rel(onerel, options, params, va_cols, acquirefunc,
260+
do_analyze_rel(onerel, params, va_cols, acquirefunc,
261261
relpages, false, in_outer_xact, elevel);
262262

263263
/*
264264
* If there are child tables, do recursive ANALYZE.
265265
*/
266266
if (onerel->rd_rel->relhassubclass)
267-
do_analyze_rel(onerel, options, params, va_cols, acquirefunc, relpages,
267+
do_analyze_rel(onerel, params, va_cols, acquirefunc, relpages,
268268
true, in_outer_xact, elevel);
269269

270270
/*
@@ -292,7 +292,7 @@ analyze_rel(Oid relid, RangeVar *relation, int options,
292292
* appropriate acquirefunc for each child table.
293293
*/
294294
static void
295-
do_analyze_rel(Relation onerel, int options, VacuumParams *params,
295+
do_analyze_rel(Relation onerel, VacuumParams *params,
296296
List *va_cols, AcquireSampleRowsFunc acquirefunc,
297297
BlockNumber relpages, bool inh, bool in_outer_xact,
298298
int elevel)
@@ -603,7 +603,7 @@ do_analyze_rel(Relation onerel, int options, VacuumParams *params,
603603
* VACUUM ANALYZE, don't overwrite the accurate count already inserted by
604604
* VACUUM.
605605
*/
606-
if (!inh && !(options & VACOPT_VACUUM))
606+
if (!inh && !(params->options & VACOPT_VACUUM))
607607
{
608608
for (ind = 0; ind < nindexes; ind++)
609609
{
@@ -634,7 +634,7 @@ do_analyze_rel(Relation onerel, int options, VacuumParams *params,
634634
(va_cols == NIL));
635635

636636
/* If this isn't part of VACUUM ANALYZE, let index AMs do cleanup */
637-
if (!(options & VACOPT_VACUUM))
637+
if (!(params->options & VACOPT_VACUUM))
638638
{
639639
for (ind = 0; ind < nindexes; ind++)
640640
{

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy