summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorPeter Eisentraut2007-01-20 09:27:20 +0000
committerPeter Eisentraut2007-01-20 09:27:20 +0000
commitb4c8d49036b971d892b2dfe1c71d3f0cee116e7f (patch)
treea3db0050c3ea8815e44b2a4014502bfaa9822796 /src/test
parent9a83bd50b7ec61140fc400350b3e5b1f0cd15722 (diff)
Fix xmlconcat by properly merging the XML declarations. Add aggregate
function xmlagg.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/xml.out26
-rw-r--r--src/test/regress/expected/xml_1.out16
-rw-r--r--src/test/regress/sql/xml.sql6
3 files changed, 47 insertions, 1 deletions
diff --git a/src/test/regress/expected/xml.out b/src/test/regress/expected/xml.out
index cfac9105d96..df625c90bb4 100644
--- a/src/test/regress/expected/xml.out
+++ b/src/test/regress/expected/xml.out
@@ -55,6 +55,12 @@ ERROR: argument of XMLCONCAT must be type xml, not type integer
SELECT xmlconcat('bad', '<syntax');
ERROR: invalid XML content
DETAIL: Expected '>'
+SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
+ xmlconcat
+---------------------------------------------------
+ <?xml version="1.1" standalone="no"?><foo/><bar/>
+(1 row)
+
SELECT xmlelement(name element,
xmlattributes (1 as one, 'deuce' as two),
'content');
@@ -190,7 +196,7 @@ SELECT xmlpi(name foo, ' bar');
(1 row)
SELECT xmlroot(xml '<foo/>', version no value, standalone no value);
- xmlroot
+ xmlroot
---------
<foo/>
@@ -268,6 +274,24 @@ SELECT xml 'abc' IS NOT DOCUMENT;
SELECT '<>' IS NOT DOCUMENT;
ERROR: invalid XML content
DETAIL: Element name not found
+SELECT xmlagg(data) FROM xmltest;
+ xmlagg
+--------------------------------------
+ <value>one</value><value>two</value>
+(1 row)
+
+SELECT xmlagg(data) FROM xmltest WHERE id > 10;
+ xmlagg
+--------
+
+(1 row)
+
+SELECT xmlelement(name employees, xmlagg(xmlelement(name name, name))) FROM emp;
+ xmlelement
+--------------------------------------------------------------------------------------------------------------------------------
+ <employees><name>sharon</name><name>sam</name><name>bill</name><name>jeff</name><name>cim</name><name>linda</name></employees>
+(1 row)
+
-- Check mapping SQL identifier to XML name
SELECT xmlpi(name ":::_xml_abc135.%-&_");
xmlpi
diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out
index b25df3d24b9..dd35f1bf4e7 100644
--- a/src/test/regress/expected/xml_1.out
+++ b/src/test/regress/expected/xml_1.out
@@ -33,6 +33,8 @@ SELECT xmlconcat(1, 2);
ERROR: argument of XMLCONCAT must be type xml, not type integer
SELECT xmlconcat('bad', '<syntax');
ERROR: no XML support in this installation
+SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
+ERROR: no XML support in this installation
SELECT xmlelement(name element,
xmlattributes (1 as one, 'deuce' as two),
'content');
@@ -123,6 +125,20 @@ SELECT xml 'abc' IS NOT DOCUMENT;
ERROR: no XML support in this installation
SELECT '<>' IS NOT DOCUMENT;
ERROR: no XML support in this installation
+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: no XML support in this installation
-- Check mapping SQL identifier to XML name
SELECT xmlpi(name ":::_xml_abc135.%-&_");
ERROR: no XML support in this installation
diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql
index 804cd2c2d67..8e321831596 100644
--- a/src/test/regress/sql/xml.sql
+++ b/src/test/regress/sql/xml.sql
@@ -24,6 +24,7 @@ SELECT xmlconcat(xmlcomment('hello'),
SELECT xmlconcat('hello', 'you');
SELECT xmlconcat(1, 2);
SELECT xmlconcat('bad', '<syntax');
+SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
SELECT xmlelement(name element,
@@ -97,6 +98,11 @@ SELECT xml 'abc' IS NOT DOCUMENT;
SELECT '<>' IS NOT DOCUMENT;
+SELECT xmlagg(data) FROM xmltest;
+SELECT xmlagg(data) FROM xmltest WHERE id > 10;
+SELECT xmlelement(name employees, xmlagg(xmlelement(name name, name))) FROM emp;
+
+
-- Check mapping SQL identifier to XML name
SELECT xmlpi(name ":::_xml_abc135.%-&_");