On Tue, Oct 22, 2019 at 12:35 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Stephen Frost <sfrost@snowman.net> writes:
> > * Joe Nelson (joe@begriffs.com) wrote:
> >> If it's being put behind a macro then *stylistically* it shouldn't
> >> matter whether {} or {0} is chosen, right? In which case {0} would
> >> be a better choice because it's supported everywhere.
>
> > The problem with {0} in the first place is that it doesn't actually work
> > in all cases... Simple cases, yes, but not more complex ones. It's
> > unfortunate that there isn't a general solution here that works across
> > platforms (even if it involved macros..), but that seems to be the case.
>
> There is a general solution that works across platforms; it's called
> memset() and it's what we're using today. I'm beginning to think that
> we should just reject this patch.
>
Hmm, but then what is your suggestion for existing code that uses {0}.
If we reject this patch and leave the current code as it is, there is
always a risk of some people using {0} and others using memset which
will lead to further deviation in the code. Now, maybe if we change
the existing code to always use memset where we use {0}, then we can
kind of enforce such a rule for future patch authors.
--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com