On tor, 2009-12-31 at 11:28 -0500, Tom Lane wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
> > The definition of c.h is bogus anyway. You might think it contains
> > includes and defines to set up a portable C environment, which is what
> > the first half indeed does.
>
> > But then things like regproc, transaction ID types, IntArray, varlena,
> > bytea, oidvector, NameData, etc. do not belong there and should be moved
> > to postgres.h.
>
> Actually, what c.h does is to provide definitions that are needed in
> both frontend and backend code. And we do NOT want to start including
> postgres.h in frontend code. It might be that some of the declarations
> there are useless to frontend code and could be moved, but trying to be
> as strict as you suggest is only going to create problems.
I think the list above is a pretty good list of things that client code
doesn't need, plus or minus a few things maybe.