Thread: [COMMITTERS] pgsql: Fix XMLTABLE on older libxml2

[COMMITTERS] pgsql: Fix XMLTABLE on older libxml2

From
Alvaro Herrera
Date:
Fix XMLTABLE on older libxml2

libxml2 older than 2.9.1 does not have xmlXPathSetContextNode (released
in 2013, so reasonable platforms have trouble).  That function is fairly
trivial, so I have inlined it in the one added caller.  This passes
tests on my machine; let's see what the buildfarm thinks about it.

Per joint complaint from Tom Lane and buildfarm.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/a9f66f92533b2bfd7abf289219152091b7697e87

Modified Files
--------------
src/backend/utils/adt/xml.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)


Re: [COMMITTERS] pgsql: Fix XMLTABLE on older libxml2

From
Tom Lane
Date:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> Fix XMLTABLE on older libxml2
> libxml2 older than 2.9.1 does not have xmlXPathSetContextNode (released
> in 2013, so reasonable platforms have trouble).  That function is fairly
> trivial, so I have inlined it in the one added caller.  This passes
> tests on my machine; let's see what the buildfarm thinks about it.

> Per joint complaint from Tom Lane and buildfarm.

Thanks, this works for me.  At some point we might need to do this more
honestly, ie add a configure probe and do

#ifdef HAVE_XMLXPATHSETCONTEXTNODE
       xmlXPathSetContextNode(cur, xtCxt->xpathcxt);
#else
       xtCxt->xpathcxt->node = cur;
#endif

but that can probably wait until libxml does something that breaks
the direct-assignment coding.  If the latter is the way you were
supposed to do it before, I think they'd be hesitant to break it.

            regards, tom lane