From: Alvaro Herrera Date: Wed, 8 Mar 2017 16:29:48 +0000 (-0300) Subject: Fix XMLTABLE on older libxml2 X-Git-Tag: REL_10_BETA1~729 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9f66f92533b2bfd7abf289219152091b7697e87;p=postgresql 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. --- diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index f2e5224fc3..7fd3ec3fae 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -4431,7 +4431,7 @@ XmlTableGetValue(TableFuncScanState *state, int colnum, PG_TRY(); { /* Set current node as entry point for XPath evaluation */ - xmlXPathSetContextNode(cur, xtCxt->xpathcxt); + xtCxt->xpathcxt->node = cur; /* Evaluate column path */ xpathobj = xmlXPathCompiledEval(xtCxt->xpathscomp[colnum], xtCxt->xpathcxt);