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

Alexey Kondratov <a.kondratov@postgrespro.ru>

From: Alexey Kondratov <a.kondratov@postgrespro.ru>
To: Alvaro Herrera <alvherre@2ndquadrant.com>, Andres Freund <andres@anarazel.de>
Cc: Andrey Borodin <x4mmm@yandex-team.ru>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Dmitry Dolgov <9erthalion6@gmail.com>, Michael Paquier <michael@paquier.xyz>, vladimirlesk@yandex-team.ru, dsarafan@yandex-team.ru
Date: 2019-02-18T17:02:04Z
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 18.02.2019 19:49, Alvaro Herrera wrote:
>
>>> On 16.02.2019 6:41, Andres Freund wrote:
>>>> It sounds like a seriously bad idea to use a different parser for
>>>> pg_rewind.  Why don't you just use postgres for it? As in
>>>> /path/to/postgres -D /path/to/datadir/ -C shared_buffers
>>>> ?
> Eh, this is what I suggested in this thread four months ago, though I
> didn't remember at the time that aaa6e1def292 had already introduced -C
> in 2011.  It's definitely the way to go ... all this messing about with
> the parser is insane.
>

Yes, but four months ago recovery options were not a part of GUCs.

OK, if you and Andres are surely negative about solution with parser, 
then I will work out this one with postgres -C and come back till the 
next commitfest. I found that something similar is already used in 
pg_ctl and there is a mechanism for finding valid executables in exec.c. 
So it does not seem to be a big deal at the first sight.

Thanks for replies!


Regards

-- 
Alexey Kondratov

Postgres Professional https://www.postgrespro.com
Russian Postgres Company