BTW, these should have some kind of prefix, like PG_ALLOC_* to avoid causing the same kind of problem for someone else that another header caused for you by defining something somewhere called IGNORE (ignore what, I don't know). The other problem was probably due to a define, though. Maybe instead of an enum, the function should take a boolean.
I still wonder whether there needs to be a separate CF entry for the 0001 patch. One issue is that there's two different lists of people involved in the threads.
-- Justin
I am a bit curious: why is the allocation_direction enum needed ?
pgstat_report_allocated_bytes() can be given the amount (either negative or positive) to adjust directly.