I wrote: > No, it's cross *file* references within a single contrib module that > would be likely to need extern declarations in a header file. That's > not especially weird IMO. I'm not sure how many cases there actually > are though.
I poked at this a little bit. AFAICT, the only actual cross-file references are in contrib/ltree/, which has quite a few. Maybe we could hold our noses and attach PGDLLEXPORT to the declarations in ltree.h. hstore's HSTORE_POLLUTE macro would also need PGDLLEXPORT-ification, but that's just within the macro so it wouldn't be too ugly. The other problem is xml2's xml_is_well_formed(), which duplicates the name of a core backend function. If we PGDLLEXPORT-ify that, we get conflicts against the core's declaration in utils/xml.h. I do not see any nice way to dodge that. Maybe we could decide that six releases' worth of backwards compatibility is enough and just drop it from xml2 --- AFAICS, that would only break applications that had never updated to the extension-ified version of xml2 at all. regards, tom lane -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers