Support [NO] INDENT option in XMLSERIALIZE().
authorTom Lane
Wed, 15 Mar 2023 20:58:59 +0000 (16:58 -0400)
committerTom Lane
Wed, 15 Mar 2023 20:59:09 +0000 (16:59 -0400)
commit483bdb2afec9e33ff05fd48a00e2656e30e714b7
tree33bc2002198e57531032a09c0813af0d9922e275
parent419a8dd8142afef790dafd91ba39afac2ca48aaf
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 "" to just
"", 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
15 files changed:
doc/src/sgml/datatype.sgml
src/backend/catalog/sql_features.txt
src/backend/executor/execExprInterp.c
src/backend/parser/gram.y
src/backend/parser/parse_expr.c
src/backend/utils/adt/xml.c
src/include/catalog/catversion.h
src/include/nodes/parsenodes.h
src/include/nodes/primnodes.h
src/include/parser/kwlist.h
src/include/utils/xml.h
src/test/regress/expected/xml.out
src/test/regress/expected/xml_1.out
src/test/regress/expected/xml_2.out
src/test/regress/sql/xml.sql