I just noticed (once again) that we have hash_any() declared in src/access/hash.h (the header file for the hash index AM) rather than somewhere in utils/, for no good reason other than perhaps there was no better place when it was introduced. This means that some files that seem to just need hash_any end up pointlessly #including the whole AM world upon themselves.
Would anybody object too hard if I move hash_any() and friends to src/backend/utils/hash/hashfn.c and the declarations to src/include/utils/hashutils.h? -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services