I just noticed that optimizer/cost.h is not #include'd by plancat.c, which is not too cool because the former has the extern declaration for the constraint_exclusion global variable while the latter has the actual definition. I didn't run it down in the CVS history to make sure, but I imagine what happened is that your unnecessary-includes script diked it out because the file still compiled warning-free without that header, ie, there is no warning for "int foo;" not preceded by "extern int foo;". This isn't real good because it would allow a global variable to get out of sync with its declaration. Is there a way to prevent such problems in future?
regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers