Alvaro Herrera wrote:
Zdenek Kotala wrote:
Attached patch removes pg_dump dependency on postgres.h. The main reason
for that was discussed there:
http://archives.postgresql.org/pgsql-hackers/2007-10/msg01261.php
This fix contains several steps:
1) I removed sugar word from postgres.h and put them closer to consumer
:-). I created include/catalog/genbki.h which contains sugar words - macros
for correct catalog data processing. All catalogs file now include this
header.
What's the point of this? I don't see what difference it makes from the
current situation. In particular I don't see it being included in any
new place.
The problem is that postgres.h include palloc.h which contains extern
declaration of MemoryContext global variable. It is not correct for
tools as pg_dump is. Because it does not use palloc. When I enabled
inline functions and start compiling postgres with sunstudio, linking
phase failed on pg_dump because MemoryContext is not allocated. It is
background of problem.
pg_dump.c needs some macros which are defined into catalogs header. But
it should not include postgres.h where is defined "sugar words" for
catalog data. It is the reason why I moved these macros to the separate
header and include this header from all catalog header.
It was discussed there:
http://archives.postgresql.org/pgsql-hackers/2007-10/msg01277.php
Zdenek
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match