Re: splitting src/bin/scripts/vacuumdb.c - Mailing list pgsql-hackers

From Nathan Bossart
Subject Re: splitting src/bin/scripts/vacuumdb.c
Date
Msg-id aNaf_YP9ruHG4Zbp@nathan
Whole thread Raw
In response to splitting src/bin/scripts/vacuumdb.c  (Álvaro Herrera <alvherre@kurilemu.de>)
Responses Re: splitting src/bin/scripts/vacuumdb.c
List pgsql-hackers
On Fri, Sep 26, 2025 at 01:55:50PM +0200, Álvaro Herrera wrote:
> - objfilter is declared as an enum but the values are bit-or'ed and
> tested for individual bits.  We've discussed this coding pattern in
> other contexts and stayed away from it, on the grounds that the values
> so generated aren't really true values of the enum.  I changed it from
> an enum to a bits32 with a few #defines for the values we use, the way
> we do elsewhere.  Also, instead of being passed as a separate argument
> to the various functions, I added it to the vacuumingOpts struct.
> 
> - Two booleans, analyze_in_stages and analyze_only, are really
> determining what "mode" the program runs in -- it's either vacuum, or
> one of those two modes.  (Antonin came up with the idea of using
> "modes", but his patch only adds a new REPACK mode on top of the
> existing code without any further changes).  I think the code flow is a
> little neater by making this change; consider for instance this change:

Seems reasonable to me.

> Overall I'm quite happy with this small patch now, so I intend to push
> shortly barring objections.  I'm not adding a new commitfest entry, just
> adding this new thread to the existing entry for REPACK.  I kept the
> patch numbering as used in the other thread.

Is there any way to separate the aforementioned changes into a separate
patch from the refactoring changes?  That would make it a lot easier to
review.  I think we have decent testing for vacuumdb, so I'm not too
concerned if this isn't feasible.

-- 
nathan



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PATCH] GROUP BY ALL
Next
From: Tom Lane
Date:
Subject: Re: plan shape work