pgsql: Convert xml_in to report errors softly.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Convert xml_in to report errors softly.
Date: 2022-12-16 16:10:54
Message-ID: E1p6DIT-003uc8-6g@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Convert xml_in to report errors softly.

The key idea here is that xml_parse must distinguish hard errors
from soft errors. We want to throw a hard error for libxml
initialization failures: those might be out-of-memory, or something
else, but in any case they are not the fault of the input string.
If we get to the point of parsing the input, and something goes
wrong, we can fairly consider that to mean bad input.

One thing that arguably does mean bad input, but I didn't trouble
to handle softly, is encoding conversion failure while converting
the server encoding to UTF8. This might be something to improve
later, but it seems like a pretty low-probability scenario.

Discussion: https://postgr.es/m/3564577.1671142683@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/37bef842f5530fc9f4a48daba9f4709ee5e36c9b

Modified Files
--------------
src/backend/utils/adt/xml.c | 155 ++++++++++++++++++++++++++++--------
src/test/regress/expected/xml.out | 31 ++++++++
src/test/regress/expected/xml_1.out | 16 ++++
src/test/regress/expected/xml_2.out | 31 ++++++++
src/test/regress/sql/xml.sql | 7 ++
5 files changed, 205 insertions(+), 35 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2022-12-16 17:16:19 pgsql: C comment: fix wording
Previous Message Andres Freund 2022-12-16 07:12:59 Re: pgsql: meson: Add 'running' test setup, as a replacement for installche