Attached is my revision of Alvaro's patch to change xml.c so that libxml
memory allocations happen in a specially designated context. I find
this more convincing than the existing technique of using whatever
context xml.c happens to be called in. It should also be marginally
faster because (barring errors) we only need to reset libxml once per
transaction not once per xml.c function call. On the other hand it's
kind of late in the beta cycle to be changing anything so low-level,
and as of today I cannot point to any specific bug it would fix.
Any thoughts whether to apply or not?
Note: the patch removes most of the PG_TRY blocks in xml.c. For ease of
reading I did not reindent the contained code, but will do so before
applying, if we choose to apply.
regards, tom lane