]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Make our back branches compatible with libxml2 2.13.x.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 11 Jul 2024 00:15:52 +0000 (20:15 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 11 Jul 2024 00:15:52 +0000 (20:15 -0400)
commitf85c91a1867b45742bb28e4578ca2b4a0976383f
tree6ad6b2a69f2e42442e0fbb107c305d04ded9f77c
parent0d483ad4cc4c4d4ebdbe456a5565f11fa137bd24
Make our back branches compatible with libxml2 2.13.x.

This back-patches HEAD commits 066e8ac6e6082b3d5de7192486d,
and 896cd266f into supported branches.  Changes:

* Use xmlAddChildList not xmlAddChild in XMLSERIALIZE
(affects v16 and up only).  This was a flat-out coding mistake
that we got away with due to lax checking in previous versions
of xmlAddChild.

* Use xmlParseInNodeContext not xmlParseBalancedChunkMemory.
This is to dodge a bug in xmlParseBalancedChunkMemory in libxm2
releases 2.13.0-2.13.2.  While that bug is now fixed upstream and
will probably never be seen in any production-oriented distro, it is
currently a problem on some more-bleeding-edge-friendly platforms.

* Suppress "chunk is not well balanced" errors from libxml2,
unless it is the only error.  This eliminates an error-reporting
discrepancy between 2.13 and older releases.  This error is
almost always redundant with previous errors, if not flat-out
inappropriate, which is why 2.13 changed the behavior and why
nobody's likely to miss it.

Erik Wienhold and Tom Lane, 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
src/test/regress/expected/xml.out
src/test/regress/expected/xml_2.out