OSDN Git Service

After conferencing again with Bruce, put in more accurate XML error message.
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 8 Nov 2007 15:16:45 +0000 (15:16 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 8 Nov 2007 15:16:45 +0000 (15:16 +0000)
src/backend/utils/adt/xml.c
src/test/regress/expected/xml_1.out

index c670f8e..a1a619d 100644 (file)
@@ -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.52 2007/11/08 13:12:56 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.53 2007/11/08 15:16:45 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -123,7 +123,7 @@ static void SPI_sql_row_to_xmlelement(int rownum, StringInfo result,
        ereport(ERROR, \
                        (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), \
                         errmsg("unsupported XML feature"), \
-                        errdetail("This functionality requires libxml."), \
+                        errdetail("This functionality requires the server to be built with libxml support."), \
                         errhint("You need to rebuild PostgreSQL using --with-libxml.")))
 
 
index a8f5d17..ae85f71 100644 (file)
@@ -4,15 +4,15 @@ CREATE TABLE xmltest (
 );
 INSERT INTO xmltest VALUES (1, '<value>one</value>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 INSERT INTO xmltest VALUES (2, '<value>two</value>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 INSERT INTO xmltest VALUES (3, '<wrong');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT * FROM xmltest;
  id | data 
@@ -21,180 +21,180 @@ SELECT * FROM xmltest;
 
 SELECT xmlcomment('test');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlcomment('-test');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlcomment('test-');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlcomment('--test');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlcomment('te st');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlconcat(xmlcomment('hello'),
                  xmlelement(NAME qux, 'foo'),
                  xmlcomment('world'));
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlconcat('hello', 'you');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlconcat(1, 2);
 ERROR:  argument of XMLCONCAT must be type xml, not type integer
 SELECT xmlconcat('bad', '<syntax');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlconcat('<?xml version="1.1"?><foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name element,
                   xmlattributes (1 as one, 'deuce' as two),
                   'content');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name element,
                   xmlattributes ('unnamed and wrong'));
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name element, xmlelement(name nested, 'stuff'));
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name duplicate, xmlattributes(1 as a, 2 as b, 3 as a));
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name num, 37);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name foo, text 'bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name foo, xml 'bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name foo, text 'b<a/>r');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name foo, xml 'b<a/>r');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlelement(name foo, array[1, 2, 3]);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SET xmlbinary TO base64;
 SELECT xmlelement(name foo, bytea 'bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SET xmlbinary TO hex;
 SELECT xmlelement(name foo, bytea 'bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlparse(content 'abc');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlparse(content '<abc>x</abc>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlparse(document 'abc');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlparse(document '<abc>x</abc>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name foo);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name xmlstuff);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name foo, 'bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name foo, 'in?>valid');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name foo, null);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name xmlstuff, null);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name foo, '   bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot(xml '<foo/>', version no value, standalone no value);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot(xml '<foo/>', version '2.0');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot(xml '<foo/>', version no value, standalone yes);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot(xml '<?xml version="1.1"?><foo/>', version no value, standalone yes);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot(xmlroot(xml '<foo/>', version '1.0'), version '1.1', standalone no);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>', version no value, standalone no);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>', version no value, standalone no value);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>', version no value);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlroot (
   xmlelement (
@@ -212,7 +212,7 @@ SELECT xmlroot (
   standalone yes
 );
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlserialize(content data as character varying(20)) FROM xmltest;
  xmlserialize 
@@ -221,31 +221,31 @@ SELECT xmlserialize(content data as character varying(20)) FROM xmltest;
 
 SELECT xmlserialize(content 'good' as char(10));
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlserialize(document 'bad' as text);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xml '<foo>bar</foo>' IS DOCUMENT;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xml '<foo>bar</foo><bar>foo</bar>' IS DOCUMENT;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xml '<abc/>' IS NOT DOCUMENT;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xml 'abc' IS NOT DOCUMENT;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT '<>' IS NOT DOCUMENT;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlagg(data) FROM xmltest;
  xmlagg 
@@ -261,20 +261,20 @@ SELECT xmlagg(data) FROM xmltest WHERE id > 10;
 
 SELECT xmlelement(name employees, xmlagg(xmlelement(name name, name))) FROM emp;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 -- Check mapping SQL identifier to XML name
 SELECT xmlpi(name ":::_xml_abc135.%-&_");
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xmlpi(name "123");
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 PREPARE foo (xml) AS SELECT xmlconcat('<foo/>', $1);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SET XML OPTION DOCUMENT;
 EXECUTE foo ('<bar/>');
@@ -290,32 +290,32 @@ ERROR:  prepared statement "foo" does not exist
 CREATE VIEW xmlview1 AS SELECT xmlcomment('test');
 CREATE VIEW xmlview2 AS SELECT xmlconcat('hello', 'you');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 CREATE VIEW xmlview3 AS SELECT xmlelement(name element, xmlattributes (1 as ":one:", 'deuce' as two), 'content&');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 CREATE VIEW xmlview4 AS SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 CREATE VIEW xmlview5 AS SELECT xmlparse(content '<abc>x</abc>');
 CREATE VIEW xmlview6 AS SELECT xmlpi(name foo, 'bar');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 CREATE VIEW xmlview7 AS SELECT xmlroot(xml '<foo/>', version no value, standalone yes);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 CREATE VIEW xmlview8 AS SELECT xmlserialize(content 'good' as char(10));
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 CREATE VIEW xmlview9 AS SELECT xmlserialize(content 'good' as text);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT table_name, view_definition FROM information_schema.views
   WHERE table_name LIKE 'xmlview%' ORDER BY 1;
@@ -338,17 +338,17 @@ SELECT xpath(NULL, NULL) IS NULL FROM xmltest;
 
 SELECT xpath('', '<!-- error -->');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xpath('//text()', '<local:data xmlns:local="http://127.0.0.1"><local:piece id="1">number one</local:piece><local:piece id="2" /></local:data>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xpath('//loc:piece/@id', '<local:data xmlns:local="http://127.0.0.1"><local:piece id="1">number one</local:piece><local:piece id="2" /></local:data>', ARRAY[ARRAY['loc', 'http://127.0.0.1']]);
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.
 SELECT xpath('//b', '<a>one <b>two</b> three <b>etc</b></a>');
 ERROR:  unsupported XML feature
-DETAIL:  This functionality requires libxml.
+DETAIL:  This functionality requires the server to be built with libxml support.
 HINT:  You need to rebuild PostgreSQL using --with-libxml.