Support [NO] INDENT option in XMLSERIALIZE().
This adds the ability to pretty-print XML documents ... according to
libxml's somewhat idiosyncratic notions of what's pretty, anyway.
One notable divergence from a strict reading of the spec is that
libxml is willing to collapse empty nodes "<node></node>" to just
"<node/>", whereas SQL and the underlying XML spec say that this
option should only result in whitespace tweaks. Nonetheless,
it seems close enough to justify using the SQL-standard syntax.
Jim Jones, reviewed by Peter Smith and myself
Discussion: https://postgr.es/m/2f5df461-dad8-6d7d-4568-08e10608a69b@uni-muenster.de
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/483bdb2afec9e33ff05fd48a00e2656e30e714b7
Modified Files
--------------
doc/src/sgml/datatype.sgml | 9 +-
src/backend/catalog/sql_features.txt | 2 +-
src/backend/executor/execExprInterp.c | 6 +-
src/backend/parser/gram.y | 14 ++-
src/backend/parser/parse_expr.c | 1 +
src/backend/utils/adt/xml.c | 212 ++++++++++++++++++++++++++++++++--
src/include/catalog/catversion.h | 2 +-
src/include/nodes/parsenodes.h | 1 +
src/include/nodes/primnodes.h | 4 +-
src/include/parser/kwlist.h | 1 +
src/include/utils/xml.h | 3 +-
src/test/regress/expected/xml.out | 186 +++++++++++++++++++++++++++++
src/test/regress/expected/xml_1.out | 134 +++++++++++++++++++++
src/test/regress/expected/xml_2.out | 186 +++++++++++++++++++++++++++++
src/test/regress/sql/xml.sql | 36 ++++++
15 files changed, 775 insertions(+), 22 deletions(-)