CREATE TABLE xmltest (
id int,
data xml
);
INSERT INTO xmltest VALUES (1, 'one');
ERROR: unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (1, 'one');
^
DETAIL: This functionality requires the server to be built with libxml support.
INSERT INTO xmltest VALUES (2, 'two');
ERROR: unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (2, 'two');
^
DETAIL: This functionality requires the server to be built with libxml support.
INSERT INTO xmltest VALUES (3, 'one', 'xml');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT pg_input_is_valid('one', 'xml');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT message FROM pg_input_error_info('one', 'xml');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT pg_input_is_valid('', 'xml');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT message FROM pg_input_error_info('', 'xml');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlcomment('test');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlcomment('-test');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlcomment('test-');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlcomment('--test');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlcomment('te st');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlconcat(xmlcomment('hello'),
xmlelement(NAME qux, 'foo'),
xmlcomment('world'));
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlconcat('hello', 'you');
ERROR: unsupported XML feature
LINE 1: SELECT xmlconcat('hello', 'you');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlconcat(1, 2);
ERROR: argument of XMLCONCAT must be type xml, not type integer
LINE 1: SELECT xmlconcat(1, 2);
^
SELECT xmlconcat('bad', '', NULL, '');
ERROR: unsupported XML feature
LINE 1: SELECT xmlconcat('', NULL, '', NULL, '');
ERROR: unsupported XML feature
LINE 1: SELECT xmlconcat('', NULL, 'r');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlelement(name foo, xml 'br');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlelement(name foo, array[1, 2, 3]);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SET xmlbinary TO base64;
SELECT xmlelement(name foo, bytea 'bar');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SET xmlbinary TO hex;
SELECT xmlelement(name foo, bytea 'bar');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlelement(name foo, xmlattributes(true as bar));
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlelement(name foo, xmlattributes('2009-04-09 00:24:37'::timestamp as bar));
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlelement(name foo, xmlattributes('infinity'::timestamp as bar));
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlelement(name foo, xmlattributes('<>&"''' as funny, xml 'br' as funnier));
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content ' ');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content 'abc');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content 'x');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '&');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '&idontexist;');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '&idontexist;');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(content '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document ' ');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document 'abc');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document 'x');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document '&');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document '&idontexist;');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document '&idontexist;');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlparse(document '');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name foo);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name xml);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name xmlstuff);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name foo, 'bar');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name foo, 'in?>valid');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name foo, null);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name xml, null);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name xmlstuff, null);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name "xml-stylesheet", 'href="mystyle.css" type="text/css"');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name foo, ' bar');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot(xml '', version no value, standalone no value);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot(xml '', version no value, standalone no...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot(xml '', version '2.0');
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot(xml '', version '2.0');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot(xml '', version no value, standalone yes);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot(xml '', version no value, standalone ye...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot(xml '', version no value, standalone yes);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot(xml '', version no...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot(xmlroot(xml '', version '1.0'), version '1.1', standalone no);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot(xmlroot(xml '', version '1.0'), version...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot('', version no value, standalone no);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot('...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot('', version no value, standalone no value);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot('...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot('', version no value);
ERROR: unsupported XML feature
LINE 1: SELECT xmlroot('...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlroot (
xmlelement (
name gazonk,
xmlattributes (
'val' AS name,
1 + 1 AS num
),
xmlelement (
NAME qux,
'foo'
)
),
version '1.0',
standalone yes
);
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(content data as character varying(20)) FROM xmltest;
xmlserialize
--------------
(0 rows)
SELECT xmlserialize(content 'good' as char(10));
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(content 'good' as char(10));
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(document 'bad' as text);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(document 'bad' as text);
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent
SELECT xmlserialize(DOCUMENT '42' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '42' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- no indent
SELECT xmlserialize(DOCUMENT '42' AS text NO INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '42' AS text NO INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent non singly-rooted xml
SELECT xmlserialize(DOCUMENT '7342' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '734...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '7342' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '734...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent non singly-rooted xml with mixed contents
SELECT xmlserialize(DOCUMENT 'text node73text node42' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT 'text node73text nod...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT 'text node73text node42' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT 'text node73text nod...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent singly-rooted xml with mixed contents
SELECT xmlserialize(DOCUMENT '42text node73' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '42text node73' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent empty string
SELECT xmlserialize(DOCUMENT '' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '' AS text INDENT);
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '' AS text INDENT);
^
DETAIL: This functionality requires the server to be built with libxml support.
-- whitespaces
SELECT xmlserialize(DOCUMENT ' ' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT ' ' AS text INDENT);
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT ' ' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT ' ' AS text INDENT);
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent null
SELECT xmlserialize(DOCUMENT NULL AS text INDENT);
xmlserialize
--------------
(1 row)
SELECT xmlserialize(CONTENT NULL AS text INDENT);
xmlserialize
--------------
(1 row)
-- indent with XML declaration
SELECT xmlserialize(DOCUMENT '73' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '73' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '' AS text INDE...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '' AS text INDE...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- indent xml with empty element
SELECT xmlserialize(DOCUMENT '' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '' AS tex...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '' AS text INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '' AS tex...
^
DETAIL: This functionality requires the server to be built with libxml support.
-- 'no indent' = not using 'no indent'
SELECT xmlserialize(DOCUMENT '42' AS text) = xmlserialize(DOCUMENT '42' AS text NO INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(DOCUMENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlserialize(CONTENT '42' AS text) = xmlserialize(CONTENT '42' AS text NO INDENT);
ERROR: unsupported XML feature
LINE 1: SELECT xmlserialize(CONTENT '42<...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml 'bar' IS DOCUMENT;
ERROR: unsupported XML feature
LINE 1: SELECT xml 'bar' IS DOCUMENT;
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml 'barfoo' IS DOCUMENT;
ERROR: unsupported XML feature
LINE 1: SELECT xml 'barfoo' IS DOCUMENT;
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml '' IS NOT DOCUMENT;
ERROR: unsupported XML feature
LINE 1: SELECT xml '' IS NOT DOCUMENT;
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml 'abc' IS NOT DOCUMENT;
ERROR: unsupported XML feature
LINE 1: SELECT xml 'abc' IS NOT DOCUMENT;
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT '<>' IS NOT DOCUMENT;
ERROR: unsupported XML feature
LINE 1: SELECT '<>' IS NOT DOCUMENT;
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlagg(data) FROM xmltest;
xmlagg
--------
(1 row)
SELECT xmlagg(data) FROM xmltest WHERE id > 10;
xmlagg
--------
(1 row)
SELECT xmlelement(name employees, xmlagg(xmlelement(name name, name))) FROM emp;
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
-- Check mapping SQL identifier to XML name
SELECT xmlpi(name ":::_xml_abc135.%-&_");
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xmlpi(name "123");
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
PREPARE foo (xml) AS SELECT xmlconcat('', $1);
ERROR: unsupported XML feature
LINE 1: PREPARE foo (xml) AS SELECT xmlconcat('', $1);
^
DETAIL: This functionality requires the server to be built with libxml support.
SET XML OPTION DOCUMENT;
EXECUTE foo ('');
ERROR: prepared statement "foo" does not exist
EXECUTE foo ('bad');
ERROR: prepared statement "foo" does not exist
SELECT xml '';
ERROR: unsupported XML feature
LINE 1: SELECT xml '';
^
DETAIL: This functionality requires the server to be built with libxml support.
SET XML OPTION CONTENT;
EXECUTE foo ('');
ERROR: prepared statement "foo" does not exist
EXECUTE foo ('good');
ERROR: prepared statement "foo" does not exist
SELECT xml ' ';
ERROR: unsupported XML feature
LINE 1: SELECT xml ' ';
ERROR: unsupported XML feature
LINE 1: SELECT xml ' ';
ERROR: unsupported XML feature
LINE 1: SELECT xml '';
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml ' oops ';
ERROR: unsupported XML feature
LINE 1: SELECT xml ' oops ';
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml ' ';
ERROR: unsupported XML feature
LINE 1: SELECT xml ' ';
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xml '';
ERROR: unsupported XML feature
LINE 1: SELECT xml '';
^
DETAIL: This functionality requires the server to be built with libxml support.
-- Test backwards parsing
CREATE VIEW xmlview1 AS SELECT xmlcomment('test');
CREATE VIEW xmlview2 AS SELECT xmlconcat('hello', 'you');
ERROR: unsupported XML feature
LINE 1: CREATE VIEW xmlview2 AS SELECT xmlconcat('hello', 'you');
^
DETAIL: This functionality requires the server to be built with libxml support.
CREATE VIEW xmlview3 AS SELECT xmlelement(name element, xmlattributes (1 as ":one:", 'deuce' as two), 'content&');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
CREATE VIEW xmlview4 AS SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
CREATE VIEW xmlview5 AS SELECT xmlparse(content 'x');
CREATE VIEW xmlview6 AS SELECT xmlpi(name foo, 'bar');
ERROR: unsupported XML feature
DETAIL: This functionality requires the server to be built with libxml support.
CREATE VIEW xmlview7 AS SELECT xmlroot(xml '', version no value, standalone yes);
ERROR: unsupported XML feature
LINE 1: CREATE VIEW xmlview7 AS SELECT xmlroot(xml '', version...
^
DETAIL: This functionality requires the server to be built with libxml support.
CREATE VIEW xmlview8 AS SELECT xmlserialize(content 'good' as char(10));
ERROR: unsupported XML feature
LINE 1: ...EATE VIEW xmlview8 AS SELECT xmlserialize(content 'good' as ...
^
DETAIL: This functionality requires the server to be built with libxml support.
CREATE VIEW xmlview9 AS SELECT xmlserialize(content 'good' as text);
ERROR: unsupported XML feature
LINE 1: ...EATE VIEW xmlview9 AS SELECT xmlserialize(content 'good' as ...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT table_name, view_definition FROM information_schema.views
WHERE table_name LIKE 'xmlview%' ORDER BY 1;
table_name | view_definition
------------+--------------------------------------------------------------------------------
xmlview1 | SELECT xmlcomment('test'::text) AS xmlcomment;
xmlview5 | SELECT XMLPARSE(CONTENT 'x'::text STRIP WHITESPACE) AS "xmlparse";
(2 rows)
-- Text XPath expressions evaluation
SELECT xpath('/value', data) FROM xmltest;
xpath
-------
(0 rows)
SELECT xpath(NULL, NULL) IS NULL FROM xmltest;
?column?
----------
(0 rows)
SELECT xpath('', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('//text()', 'number one');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('//text()', 'number one', ARRAY[ARRAY['loc', 'http://127.0.0.1']]);
ERROR: unsupported XML feature
LINE 1: SELECT xpath('//loc:piece/@id', 'number one', ARRAY[ARRAY['loc', 'http://127.0.0.1']]);
ERROR: unsupported XML feature
LINE 1: SELECT xpath('//loc:piece', 'number one', ARRAY[ARRAY['loc', 'http://127.0.0.1']]);
ERROR: unsupported XML feature
LINE 1: SELECT xpath('//loc:piece', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('//@value', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('''<>''', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('''<>''', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('count(//*)', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('count(//*)', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('count(//*)=0', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('count(//*)=0', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('count(//*)=3', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('count(//*)=3', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('name(/*)', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('name(/*)', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('/nosuchtag', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('/nosuchtag', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath('root', '');
ERROR: unsupported XML feature
LINE 1: SELECT xpath('root', '');
^
DETAIL: This functionality requires the server to be built with libxml support.
-- Round-trip non-ASCII data through xpath().
DO $$
DECLARE
xml_declaration text := '';
degree_symbol text;
res xml[];
BEGIN
-- Per the documentation, except when the server encoding is UTF8, xpath()
-- may not work on non-ASCII data. The untranslatable_character and
-- undefined_function traps below, currently dead code, will become relevant
-- if we remove this limitation.
IF current_setting('server_encoding') <> 'UTF8' THEN
RAISE LOG 'skip: encoding % unsupported for xpath',
current_setting('server_encoding');
RETURN;
END IF;
degree_symbol := convert_from('\xc2b0', 'UTF8');
res := xpath('text()', (xml_declaration ||
'' || degree_symbol || '')::xml);
IF degree_symbol <> res[1]::text THEN
RAISE 'expected % (%), got % (%)',
degree_symbol, convert_to(degree_symbol, 'UTF8'),
res[1], convert_to(res[1]::text, 'UTF8');
END IF;
EXCEPTION
-- character with byte sequence 0xc2 0xb0 in encoding "UTF8" has no equivalent in encoding "LATIN8"
WHEN untranslatable_character
-- default conversion function for encoding "UTF8" to "MULE_INTERNAL" does not exist
OR undefined_function
-- unsupported XML feature
OR feature_not_supported THEN
RAISE LOG 'skip: %', SQLERRM;
END
$$;
-- Test xmlexists and xpath_exists
SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF 'Bidford-on-AvonCwmbranBristol');
ERROR: unsupported XML feature
LINE 1: ...sts('//town[text() = ''Toronto'']' PASSING BY REF 'Bidford-on-AvonCwmbranBristol');
ERROR: unsupported XML feature
LINE 1: ...sts('//town[text() = ''Cwmbran'']' PASSING BY REF '');
ERROR: unsupported XML feature
LINE 1: ...LECT xmlexists('count(/nosuchtag)' PASSING BY REF '')...
^
DETAIL: This functionality requires the server to be built with libxml support.
SELECT xpath_exists('//town[text() = ''Toronto'']','Bidford-on-AvonCwmbranBristol'::xml);
ERROR: unsupported XML feature
LINE 1: ...ELECT xpath_exists('//town[text() = ''Toronto'']','Bidford-on-AvonCwmbranBristol'::xml);
ERROR: unsupported XML feature
LINE 1: ...ELECT xpath_exists('//town[text() = ''Cwmbran'']',''::xml);
ERROR: unsupported XML feature
LINE 1: SELECT xpath_exists('count(/nosuchtag)', ''::xml);
^
DETAIL: This functionality requires the server to be built with libxml support.
INSERT INTO xmltest VALUES (4, ''::xml);
ERROR: unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (4, ''::xml);
ERROR: unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (5, '