Re: [Patch] pg_rewind: options to use restore_command from recovery.conf or command line

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Alexander Korotkov <a.korotkov@postgrespro.ru>, Kuntal Ghosh <kuntalghosh.2007@gmail.com>, Alexey Kondratov <a.kondratov@postgrespro.ru>, Liudmila Mantrova <l.mantrova@postgrespro.ru>, Thomas Munro <thomas.munro@gmail.com>, Andrey Borodin <x4mmm@yandex-team.ru>, David Steele <david@pgmasters.net>, Andres Freund <andres@anarazel.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Dmitry Dolgov <9erthalion6@gmail.com>, vladimirlesk@yandex-team.ru, dsarafan@yandex-team.ru
Date: 2020-03-12T15:50:17Z
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. Move frontend-side archive APIs from src/common/ to src/fe_utils/

  2. Add -c/--restore-target-wal to pg_rewind

  3. Move routine definitions of xlogarchive.c to a new header file

  4. Move routine building restore_command to src/common/

  5. Integrate recovery.conf into postgresql.conf

On 2020-Mar-11, Michael Paquier wrote:

> On Tue, Mar 10, 2020 at 12:39:53PM -0300, Alvaro Herrera wrote:
> > Another option is to return the command as a palloc'ed string (per
> > psprintf), instead of using a caller-stack-allocated variable.  Passing
> > the buffer len is widely used, but more error prone (and I think getting
> > this one wrong might be more catastrophic than a mistake elsewhere.)
> > This is not a performance-critical path enough that we *need* the
> > optimization that avoids the palloc is important.  (Failure can be
> > reported by returning NULL.)
> 
> That's a better approach here.

Thanks, looks good.  I don't think we *need* the MAXPGPATH restriction
really -- I was thinking in a StringInfo kind of approach where you just
append the stuff you need without having to think about the buffer
length.

> > Also, I think Msvcbuild.pm could follow Makefile's ideas of one line per
> > file.  Maybe no need to fix all of that in this patch, but let's start
> > by adding the new file it its own line rather than reflowing two
> > adjacent lines (oh wait ... does perltidy put it that way?  if so,
> > nevermind.)
> 
> Good idea.  It happens that perltidy does not care about that, but I
> would rather keep that stuff for a separate patch/thread.

Aha, good.  I would still put the new "archive.c" entry on its own line,
and just keep the other two lines unchanged.  (That preserves the
perhaps non-obvious property that all entries that start with the same
letter are in the same line.)

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services