On Tue, Mar 10, 2020 at 3:44 PM Michael Paquier <michael@paquier.xyz> wrote:
> On Tue, Mar 10, 2020 at 01:05:40PM +0300, Alexander Korotkov wrote:
> > Two options seem reasonable to me in this case. The first is to pass
> > length as additional argument as you did. The second option is to
> > make argument a pointer to fixed-size array as following.
> >
> > extern bool BuildRestoreCommand(const char *restoreCommand,
> > const char *xlogpath, /* %p */
> > const char *xlogfname, /* %f */
> > const char *lastRestartPointFname, /* %r */
> > char (*commandResult)[MAXPGPATH]);
> >
> > Passing pointer to array of different size would cause an error. The
> > downside of this approach is that passing palloc'd chunk of memory as
> > commandResult would be less convenient.
>
> Thanks Alexander for the input. Another argument is that what you are
> suggesting here is not the usual project style, so I would still stick
> with two arguments to be consistent.
Yes, another argument is valid as well. I'm OK with current solution.
------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company