diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 702b9e3..fa584de 100644
*** a/src/backend/utils/adt/xml.c
--- b/src/backend/utils/adt/xml.c
*************** xml_xmlnodetoxmltype(xmlNodePtr cur)
*** 3280,3286 ****
str = xmlXPathCastNodeToString(cur);
PG_TRY();
{
! result = (xmltype *) cstring_to_text((char *) str);
}
PG_CATCH();
{
--- 3280,3286 ----
str = xmlXPathCastNodeToString(cur);
PG_TRY();
{
! result = (xmltype *) cstring_to_text(escape_xml((char *) str));
}
PG_CATCH();
{
diff --git a/src/test/regress/expected/xml.out b/src/test/regress/expected/xml.out
index eaa5a74..822f3b4 100644
*** a/src/test/regress/expected/xml.out
--- b/src/test/regress/expected/xml.out
*************** SELECT xpath('//b', 'one two t
*** 502,507 ****
--- 502,519 ----
{two,etc}
(1 row)
+ SELECT xpath('//text()', '<');
+ xpath
+ --------
+ {<}
+ (1 row)
+
+ SELECT xpath('//@value', '');
+ xpath
+ --------
+ {<}
+ (1 row)
+
-- Test xmlexists and xpath_exists
SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF 'Bidford-on-AvonCwmbranBristol');
xmlexists
diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out
index 711b435..d53131c 100644
*** a/src/test/regress/expected/xml_1.out
--- b/src/test/regress/expected/xml_1.out
*************** LINE 1: SELECT xpath('//b', 'one t
*** 456,461 ****
--- 456,473 ----
^
DETAIL: This functionality requires the server to be built with libxml support.
HINT: You need to rebuild PostgreSQL using --with-libxml.
+ SELECT xpath('//text()', '<');
+ ERROR: unsupported XML feature
+ LINE 1: SELECT xpath('//text()', '<'...
+ ^
+ DETAIL: This functionality requires the server to be built with libxml support.
+ HINT: You need to rebuild PostgreSQL using --with-libxml.
+ SELECT xpath('//@value', '');
+ ERROR: unsupported XML feature
+ LINE 1: SELECT xpath('//@value', ''...
+ ^
+ DETAIL: This functionality requires the server to be built with libxml support.
+ HINT: You need to rebuild PostgreSQL using --with-libxml.
-- Test xmlexists and xpath_exists
SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF 'Bidford-on-AvonCwmbranBristol');
ERROR: unsupported XML feature
diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql
index 717a1e7..40e711a 100644
*** a/src/test/regress/sql/xml.sql
--- b/src/test/regress/sql/xml.sql
*************** SELECT xpath('', '');
*** 163,168 ****
--- 163,170 ----
SELECT xpath('//text()', 'number one');
SELECT xpath('//loc:piece/@id', 'number one', ARRAY[ARRAY['loc', 'http://127.0.0.1']]);
SELECT xpath('//b', 'one two three etc');
+ SELECT xpath('//text()', '<');
+ SELECT xpath('//@value', '');
-- Test xmlexists and xpath_exists
SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF 'Bidford-on-AvonCwmbranBristol');