Use xmlAddChildList not xmlAddChild in XMLSERIALIZE.
authorTom Lane <[email protected]>
Sat, 6 Jul 2024 19:16:13 +0000 (15:16 -0400)
committerTom Lane <[email protected]>
Sat, 6 Jul 2024 19:16:13 +0000 (15:16 -0400)
It looks like we should have been doing this all along,
but we got away with the wrong coding until libxml2 2.13.0
tightened up xmlAddChild's behavior.

There is more stuff to be fixed to be compatible with 2.13.0,
and it will all need to be back-patched.  This is just a
trial commit to see if the buildfarm agrees that we can use
xmlAddChildList unconditionally.

Erik Wienhold, per report from Frank Streitzig.

Discussion: https://postgr.es/m/trinity-b0161630-d230-4598-9ebc-7a23acdb37cb-1720186432160@3c-app-gmx-bap25
Discussion: https://postgr.es/m/trinity-361ba18b-541a-4fe7-bc63-655ae3a7d599-1720259822452@3c-app-gmx-bs01

src/backend/utils/adt/xml.c

index 3e4ca874d81ade71d5034040d2a1a950c9648321..d75f765de0dea8eedb5f6b588957deb8f803221e 100644 (file)
@@ -757,7 +757,7 @@ xmltotext_with_options(xmltype *data, XmlOptionType xmloption_arg, bool indent)
 
            /* This attaches root to doc, so we need not free it separately. */
            xmlDocSetRootElement(doc, root);
-           xmlAddChild(root, content_nodes);
+           xmlAddChildList(root, content_nodes);
 
            /*
             * We use this node to insert newlines in the dump.  Note: in at