Re: Remove redundant initializations

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Remove redundant initializations
Дата
Msg-id 153226.1624889723@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Remove redundant initializations  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Ответы Re: Remove redundant initializations  (David Rowley <dgrowleyml@gmail.com>)
Список pgsql-hackers
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> There are certain parts of code that laboriously initialize every field 
> of a struct to (some spelling of) zero, even though the whole struct was 
> just zeroed (by makeNode() or memset()) a few lines earlier.

FWIW, I think that it's an intentional style choice to explicitly
initialize every field rather than relying on makeNode to have done so.

The primary case where I personally rely on that style is when adding a
new field to a struct.  Currently it's possible to grep for some existing
field and add the new one beside it.  Leaving out initializations by
relying on side-effects of makeNode makes that far riskier.

A different aspect is the one you mention parenthetically, which is
what values can we rely on to be all-zero-bits?  Switching to this
style will embed assumptions about that to a far greater degree than
we have now, making the code less robust against changes.

I'm aware that there are opinions to the contrary, but I do not think
this is an improvement.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: pgindent run
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgindent run