Tom Lane wrote:
> Zdenek Kotala <Zdenek.Kotala@Sun.COM> writes:
>> One solution should be put sugar words into separate header and include
>> them directly from catalog/*.h files.
>
> Yeah, that would probably be a good idea. It's unlikely that we'll
> get away anytime soon from frontend code wanting to include
> catalog/pg_type.h, in particular (to get the macros for type OIDs).
>
> [ looks at code... ] Another problem with #including those headers
> without postgres.h is going to be the function declarations --- eg.
> GenerateTypeDependencies() needs Node *. I've always thought that
> the function declarations lurking at the bottom of the catalog
> headers were pretty out-of-place anyway. What say we pull all
> the function declarations out of the catalog/pg_xxx.h files?
catalog directory contains mix of solutions :(. There are for example
functions defined into pg_type.h or there are namespace and
pg_namespace.h already.
My idea is to put functions declaration int pg_xxx.h and structure
declaration in pg_xxx_def.h. I'm not sure if split DATA into separate
header is good idea, but if yes then pg_xxx_data.h should be good name
for it (it seems that pg_dump needs only defines).
There is also problem with sequence.h which contains SEQ_MAX and
SEQ_MIN macros.
Comments?
Thanks Zdenek
> Not quite sure where to put them instead, though. We could smash
> them all into one new header, but if you want to keep a separate
> header per module then we'll need some new naming convention to
> select the filenames to use.
>