summaryrefslogtreecommitdiff
path: root/src/test/regress/sql/xml.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/regress/sql/xml.sql')
-rw-r--r--src/test/regress/sql/xml.sql72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql
new file mode 100644
index 0000000000..061f6329f9
--- /dev/null
+++ b/src/test/regress/sql/xml.sql
@@ -0,0 +1,72 @@
+CREATE TABLE xmltest (
+ id int,
+ data xml
+);
+
+INSERT INTO xmltest VALUES (1, '<value>one</value>');
+INSERT INTO xmltest VALUES (2, '<value>two</value>');
+INSERT INTO xmltest VALUES (3, '<wrong');
+
+SELECT * FROM xmltest;
+
+
+SELECT xmlcomment('test');
+SELECT xmlcomment('-test');
+SELECT xmlcomment('test-');
+SELECT xmlcomment('--test');
+SELECT xmlcomment('te st');
+
+
+SELECT xmlconcat(xmlcomment('hello'),
+ xmlelement(NAME qux, 'foo'),
+ xmlcomment('world'));
+
+SELECT xmlconcat('hello', 'you');
+SELECT xmlconcat(1, 2);
+SELECT xmlconcat('bad', '<syntax');
+
+
+SELECT xmlelement(name element,
+ xmlattributes (1 as one, 'deuce' as two),
+ 'content');
+
+SELECT xmlelement(name element,
+ xmlattributes ('unnamed and wrong'));
+
+SELECT xmlelement(name element, xmlelement(name nested, 'stuff'));
+
+SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
+
+SELECT xmlelement(name wrong, 37);
+
+
+SELECT xmlpi(name foo);
+SELECT xmlpi(name xmlstuff);
+SELECT xmlpi(name foo, 'bar');
+SELECT xmlpi(name foo, 'in?>valid');
+
+
+SELECT xmlroot (
+ xmlelement (
+ name gazonk,
+ xmlattributes (
+ 'val' AS name,
+ 1 + 1 AS num
+ ),
+ xmlelement (
+ NAME qux,
+ 'foo'
+ )
+ ),
+ version '1.0',
+ standalone yes
+);
+
+
+SELECT xmlserialize(content data as character varying) FROM xmltest;
+
+
+-- Check mapping SQL identifier to XML name
+
+SELECT xmlpi(name ":::_xml_abc135.%-&_");
+SELECT xmlpi(name "123");