pgsql: Fix XMLTABLE on older libxml2

Started by Alvaro Herreraover 9 years ago2 messagescomitters
Jump to latest
#1Alvaro Herrera
alvherre@2ndquadrant.com

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(-)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#1)
Re: pgsql: Fix XMLTABLE on older libxml2

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

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers