Re: Proposal: Make use of C99 designated initialisers fornulls/values arrays - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: Proposal: Make use of C99 designated initialisers fornulls/values arrays
Date
Msg-id CAA4eK1+3r47qU63PSArFJEHkEME3ngS51WqE8h5jcoYeiOb0iw@mail.gmail.com
Whole thread Raw
In response to Re: Proposal: Make use of C99 designated initialisers for nulls/values arrays  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Proposal: Make use of C99 designated initialisers fornulls/values arrays
List pgsql-hackers
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



pgsql-hackers by date:

Previous
From: Devrim Gündüz
Date:
Subject: Re: v12 pg_basebackup fails against older servers (take two)
Next
From: Fabien COELHO
Date:
Subject: Re: pgbench - refactor init functions with buffers