diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index b0a75a14780..f039bba21e0 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.40 2007/04/05 01:46:27 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.41 2007/04/05 13:53:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -112,7 +112,9 @@ XmlOptionType xmloption;
#define NO_XML_SUPPORT() \
ereport(ERROR, \
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED), \
- errmsg("feature not supported; no libxml support in this installation")))
+ errmsg("unsupported XML feature"), \
+ errdetail("This functionality requires libxml support."), \
+ errhint("You need to re-compile PostgreSQL using --with-libxml.")))
#define _textin(str) DirectFunctionCall1(textin, CStringGetDatum(str))
diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out
index 3709088dfd9..e922107f8d3 100644
--- a/src/test/regress/expected/xml_1.out
+++ b/src/test/regress/expected/xml_1.out
@@ -3,109 +3,199 @@ CREATE TABLE xmltest (
data xml
);
INSERT INTO xmltest VALUES (1, 'one');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
INSERT INTO xmltest VALUES (2, 'two');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
INSERT INTO xmltest VALUES (3, '', NULL, '');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlconcat('', NULL, '');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name element,
xmlattributes (1 as one, 'deuce' as two),
'content');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name element,
xmlattributes ('unnamed and wrong'));
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name element, xmlelement(name nested, 'stuff'));
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name duplicate, xmlattributes(1 as a, 2 as b, 3 as a));
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name num, 37);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, text 'bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xml 'bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, text 'br');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xml 'br');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, array[1, 2, 3]);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SET xmlbinary TO base64;
SELECT xmlelement(name foo, bytea 'bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SET xmlbinary TO hex;
SELECT xmlelement(name foo, bytea 'bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlparse(content 'abc');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlparse(content 'x');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlparse(document 'abc');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlparse(document 'x');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name foo);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name xmlstuff);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, 'bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, 'in?>valid');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, null);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name xmlstuff, null);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, ' bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot(xml '', version no value, standalone no value);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot(xml '', version '2.0');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot(xml '', version no value, standalone yes);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot(xml '', version no value, standalone yes);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot(xmlroot(xml '', version '1.0'), version '1.1', standalone no);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot('', version no value, standalone no);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot('', version no value, standalone no value);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot('', version no value);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlroot (
xmlelement (
name gazonk,
@@ -121,26 +211,42 @@ SELECT xmlroot (
version '1.0',
standalone yes
);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlserialize(content data as character varying(20)) FROM xmltest;
xmlserialize
--------------
(0 rows)
SELECT xmlserialize(content 'good' as char(10));
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlserialize(document 'bad' as text);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xml 'bar' IS DOCUMENT;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xml 'barfoo' IS DOCUMENT;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xml '' IS NOT DOCUMENT;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xml 'abc' IS NOT DOCUMENT;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT '<>' IS NOT DOCUMENT;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlagg(data) FROM xmltest;
xmlagg
--------
@@ -154,14 +260,22 @@ SELECT xmlagg(data) FROM xmltest WHERE id > 10;
(1 row)
SELECT xmlelement(name employees, xmlagg(xmlelement(name name, name))) FROM emp;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
-- Check mapping SQL identifier to XML name
SELECT xmlpi(name ":::_xml_abc135.%-&_");
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpi(name "123");
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
PREPARE foo (xml) AS SELECT xmlconcat('', $1);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SET XML OPTION DOCUMENT;
EXECUTE foo ('');
ERROR: prepared statement "foo" does not exist
@@ -175,20 +289,34 @@ ERROR: prepared statement "foo" does not exist
-- Test backwards parsing
CREATE VIEW xmlview1 AS SELECT xmlcomment('test');
CREATE VIEW xmlview2 AS SELECT xmlconcat('hello', 'you');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CREATE VIEW xmlview3 AS SELECT xmlelement(name element, xmlattributes (1 as ":one:", 'deuce' as two), 'content&');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CREATE VIEW xmlview4 AS SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CREATE VIEW xmlview5 AS SELECT xmlparse(content 'x');
CREATE VIEW xmlview6 AS SELECT xmlpi(name foo, 'bar');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CREATE VIEW xmlview7 AS SELECT xmlroot(xml '', version no value, standalone yes);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CREATE VIEW xmlview8 AS SELECT xmlserialize(content 'good' as char(10));
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CREATE VIEW xmlview9 AS SELECT xmlserialize(content 'good' as text);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT table_name, view_definition FROM information_schema.views
WHERE table_name LIKE 'xmlview%' ORDER BY 1;
table_name | view_definition
@@ -204,13 +332,23 @@ SELECT xmlpath('/value', data) FROM xmltest;
(0 rows)
SELECT xmlpath(NULL, NULL) IS NULL FROM xmltest;
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
CONTEXT: SQL function "xmlpath" statement 1
SELECT xmlpath('', '');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpath('//text()', 'number one');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpath('//loc:piece/@id', 'number one', ARRAY[ARRAY['loc'], ARRAY['http://127.0.0.1']]);
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.
SELECT xmlpath('//b', 'one two three etc');
-ERROR: no XML support in this installation
+ERROR: unsupported XML feature
+DETAIL: This functionality requires libxml support.
+HINT: You need to re-compile PostgreSQL using --with-libxml.