confusing typedefs in jsonfuncs.c

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема confusing typedefs in jsonfuncs.c
Дата
Msg-id 1374196816.15766.8.camel@vanquo.pezone.net
обсуждение исходный текст
Ответы Re: confusing typedefs in jsonfuncs.c  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: confusing typedefs in jsonfuncs.c  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
The new jsonfuncs.c has some confusing typedef scheme.  For example, it
has a bunch of definitions like this:

typedef struct getState
{
    ...
} getState, *GetState;

So GetState is a pointer to getState.  I have never seen that kind of
convention before.

This then leads to code like

GetState    state;

state = palloc0(sizeof(getState));

which has useless mental overhead.

But the fact that GetState is really a pointer isn't hidden at all,
because state is then derefenced with -> or cast from or to void*.  So
whatever abstraction might have been intended isn't there at all.  And
all of this is an intra-file interface anyway.

And to make this even more confusing, other types such as ColumnIOData
and JsonLexContext are not pointers but structs directly.

I think a more typical PostgreSQL code convention is to use capitalized
camelcase for structs, and use explicit pointers for pointers.  I have
attached a patch that cleans this up, in my opinion.


Вложения

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

Предыдущее
От: David Fetter
Дата:
Сообщение: Foreign Tables as Partitions
Следующее
От: Tom Lane
Дата:
Сообщение: Re: confusing typedefs in jsonfuncs.c