Re: Dry-run mode for pg_archivecleanup

Josh Kupershmidt <schmiddy@gmail.com>

From: Josh Kupershmidt <schmiddy@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Gabriele Bartolini <gabriele.bartolini@2ndquadrant.it>, PgHacker <pgsql-hackers@postgresql.org>
Date: 2012-01-27T22:43:51Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Implement dry-run mode for pg_archivecleanup

On Fri, Jan 27, 2012 at 9:47 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Sun, Jan 15, 2012 at 5:05 PM, Josh Kupershmidt <schmiddy@gmail.com> wrote:
>> On Sun, Jan 15, 2012 at 3:02 PM, Gabriele Bartolini
>> <gabriele.bartolini@2ndquadrant.it> wrote:
>>
>>> My actual intention was to have the filename as output of the command, in
>>> order to easily "pipe" it to another script. Hence my first choice was to
>>> use the stdout channel, considering also that pg_archivecleanup in dry-run
>>> mode is harmless and does not touch the content of the directory.
>>
>> Oh, right - I should have re-read your initial email before diving
>> into the patch. That all makes sense given your intended purpose. I
>> guess your goal of constructing some simple way to pass the files
>> which would be removed on to another script is a little different than
>> what I initially thought the patch would be useful for, namely as a
>> testing/debugging aid for an admin.
>>
>> Perhaps both goals could be met by making use of '--debug' together
>> with '--dry-run'. If they are both on, then an additional message like
>> "pg_archivecleanup: would remove file ... " would be printed to
>> stderr, along with just the filename printed to stdout you already
>> have.
>
> This email thread seems to have trailed off without reaching a
> conclusion.  The patch is marked as Waiting on Author in the
> CommitFest application, but I'm not sure that's accurate.  Can we try
> to nail this down?

Perhaps my last email was a bit wordy. The only real change I am
suggesting for Gabriele's patch is that the message printed to stderr
when debug + dryrun are activated be changed to "would remove file
..." from "removing file", i.e around line 124:

                if (debug)
                    fprintf(stderr, "%s: %s file \"%s\"\n",
                            progname, (dryrun ? "would remove" : "removing"),
                            WALFilePath);

Other than that little quibble, I thought the patch was fine.

Josh