diff options
Diffstat (limited to 'src/backend/utils/adt/xml.c')
-rw-r--r-- | src/backend/utils/adt/xml.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index 6786cd91bb5..c07232575e2 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -3537,7 +3537,11 @@ xml_xmlnodetoxmltype(xmlNodePtr cur) str = xmlXPathCastNodeToString(cur); PG_TRY(); { - result = (xmltype *) cstring_to_text((char *) str); + /* Here we rely on XML having the same representation as TEXT */ + char *escaped = escape_xml((char *) str); + + result = (xmltype *) cstring_to_text(escaped); + pfree(escaped); } PG_CATCH(); { |