Re: Use C99 designated initializers for some structs

David Steele <david@pgmasters.net>

From: David Steele <david@pgmasters.net>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-08-29T20:51:07Z
Lists: pgsql-hackers
On 8/29/18 5:14 AM, Peter Eisentraut wrote:
> On 29/08/2018 12:13, Peter Eisentraut wrote:
>> Here is a patch to change some struct initializations to use C99-style
>> designated initializers.  These are just a few particularly egregious
>> cases that were hard to read and write, and error prone because of many
>> similar adjacent types.
>>
>> (The PL/Python changes currently don't compile with Python 3 because of
>> the situation described in the parallel thread "PL/Python: Remove use of
>> simple slicing API".)
>>
>> Thoughts?

+1.  This is an incredible win for readability/maintainability.

One thing: I'm not sure that excluding the InvalidOid assignment in the 
TopTransactionStateData initializer is a good idea.  That is, it's not 
clear that InvalidOid is 0.

NULL, false, and 0 seem like no-brainers, but maybe it would be better 
to explicitly include constants that we define that are not obviously 0, 
or maybe just all of them.

Regards,
-- 
-David
david@pgmasters.net


Commits

  1. Use C99 designated initializers for some structs