[PATCH] Add pretty-printed XML output option

Jim Jones <jim.jones@uni-muenster.de>

From: Jim Jones <jim.jones@uni-muenster.de>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-02-02T20:35:39Z
Lists: pgsql-hackers

Attachments

Hi,

This small patch introduces a XML pretty print function. It basically 
takes advantage of the indentation feature of xmlDocDumpFormatMemory 
from libxml2 to format XML strings.

postgres=# SELECT xmlpretty('<foo id="x"><bar id="y"><var 
id="z">42</var></bar></foo>');
         xmlpretty
--------------------------
  <foo id="x">            +
    <bar id="y">          +
      <var id="z">42</var>+
    </bar>                +
  </foo>                  +

(1 row)


The patch also contains regression tests and documentation.

Feedback is very welcome!

Jim

Commits

  1. Fix memory leak in XMLSERIALIZE(... INDENT).

  2. doc: Move documentation of md5_password_warnings to a better place

  3. Support [NO] INDENT option in XMLSERIALIZE().

  4. Add an expected-file to match behavior of latest libxml2.