The interface header files for Postgres server extensions define "bool", but that name is commonly used by other parts of user code, including by standards (C99, C++). That causes, at best, compile failures.
If Postgres has to define a boolean type in public header files, it should use a name that won't collide, like postgres_bool. Alternatively, it might just #include <stdbool.h>, if it can depend upon a C99 compiler. Incidentally, this collision is particularly heinous because structures that are part of the server extension interface have "bool" members, and if the server and user program are compiled with bools of different sizes, disaster occurs. Postgres's bool is one byte; often, bool is 4 bytes. I saw this in Postgres 8.4.3. -- Bryan Henderson San Jose, California -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs