On Tue, Mar 10, 2020 at 3:44 PM Michael Paquier <mich...@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