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

From Tom Lane
Subject Re: Proposal: Make use of C99 designated initialisers for nulls/values arrays
Date
Msg-id 11568.1570200667@sss.pgh.pa.us
Whole thread Raw
In response to Re: Proposal: Make use of C99 designated initialisers fornulls/values arrays  (Joe Nelson <joe@begriffs.com>)
Responses Re: Proposal: Make use of C99 designated initialisers fornulls/values arrays  (Jacob Champion <pchampion@pivotal.io>)
List pgsql-hackers
Joe Nelson <joe@begriffs.com> writes:
> One might argue that INIT_ALL_ELEMS_FALSE as a synonym for
> INIT_ALL_ELEMS_ZERO is good for readability in the same way that "false"
> is for 0. However I want to avoid creating the impression that there is,
> or can be, a collection of INIT_ALL_ELEMS_xxx macros invoking different
> initializer behavior.

I concur with Joe here.  The reason why some of the existing
memset's use "false" is for symmetry with other places where we use
"memset(p, true, n)" to set an array of bools to all-true.  That
coding is unfortunately a bit dubious --- it would sort-of fail if
bool weren't of width 1, in that the bools would still test as true
but they wouldn't contain the standard bit pattern for true.
I don't want to change those places, but we shouldn't make the
mechanism proposed by this patch look like it can do anything but
initialize to zeroes.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Memory Accounting
Next
From: Andres Freund
Date:
Subject: Re: refactoring - share str2*int64 functions