pgsql: Fix EXPLAIN so that it doesn't emit invalid XML in corner cases.
От | Tom Lane |
---|---|
Тема | pgsql: Fix EXPLAIN so that it doesn't emit invalid XML in corner cases. |
Дата | |
Msg-id | E1bxKjJ-0006Ed-Ej@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix EXPLAIN so that it doesn't emit invalid XML in corner cases. With track_io_timing = on, EXPLAIN (ANALYZE, BUFFERS) will emit fields named like "I/O Read Time". The slash makes that invalid as an XML element name, so that adding FORMAT XML would produce invalid XML. We already have code in there to translate spaces to dashes, so let's generalize that to convert anything that isn't a valid XML name character, viz letters, digits, hyphens, underscores, and periods. We could just reject slashes, which would run a bit faster. But the fact that this went unnoticed for so long doesn't give me a warm feeling that we'd notice the next creative violation, so let's make it a permanent fix. Reported by Markus Winand, though this isn't his initial patch proposal. Back-patch to 9.2 where track_io_timing was added. The problem is only latent in 9.1, so I don't feel a need to fix it there. Discussion: <E0BF6A45-68E8-45E6-918F-741FB332C6BB@winand.at> Branch ------ REL9_4_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/adb199711a8cc5f1f283b2bc7e4f76ed4b6def72 Modified Files -------------- src/backend/commands/explain.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
В списке pgsql-committers по дате отправления: