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.
--
Michael