Changeset: 0905506204f3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0905506204f3
Added Files:
sql/test/sql_xml/Tests/funcs.test
sql/test/sql_xml/Tests/load.test
sql/test/sql_xml/Tests/xml.test
sql/test/sql_xml/Tests/xml_attribute_parsing.SF-1855673.test
sql/test/sql_xml/Tests/xmlelement_segfault.SF-2812767.test
Branch: mtest
Log Message:
Updated sql_xml tests
diffs (199 lines):
diff --git a/sql/test/sql_xml/Tests/funcs.test
b/sql/test/sql_xml/Tests/funcs.test
new file mode 100644
--- /dev/null
+++ b/sql/test/sql_xml/Tests/funcs.test
@@ -0,0 +1,40 @@
+statement ok
+CREATE TYPE xml EXTERNAL NAME xml
+
+statement ok
+CREATE FUNCTION xml (s STRING) RETURNS xml external name xml.xml
+
+statement ok
+CREATE FUNCTION str (s XML) RETURNS STRING external name xml.str
+
+statement ok
+CREATE FUNCTION "comment" (s STRING) RETURNS xml external name xml.comment
+
+statement ok
+CREATE FUNCTION parse (doccont STRING, val STRING, "option" STRING) RETURNS
xml external name xml.parse
+
+statement ok
+CREATE FUNCTION pi (nme STRING, val STRING) RETURNS xml external name xml.pi
+
+statement ok
+CREATE FUNCTION root (val XML, version STRING, standalone STRING) RETURNS xml
external name xml.root
+
+statement ok
+CREATE FUNCTION attribute (nme STRING, val STRING) RETURNS xml external name
xml.attribute
+
+statement ok
+CREATE FUNCTION "element" (nme STRING, ns xml, attr xml, s xml) RETURNS xml
external name xml.element
+
+statement ok
+CREATE FUNCTION concat (val1 xml, val2 xml) RETURNS xml external name
xml.concat
+
+statement ok
+CREATE FUNCTION forest (val1 xml, val2 xml) RETURNS xml external name
xml.forest
+
+statement ok
+CREATE FUNCTION isdocument (val STRING) RETURNS xml external name
xml.isdocument
+
+statement ok
+CREATE AGGREGATE "xmlagg"( x xml ) RETURNS xml external name xml.aggr
+
+
diff --git a/sql/test/sql_xml/Tests/load.test b/sql/test/sql_xml/Tests/load.test
new file mode 100644
--- /dev/null
+++ b/sql/test/sql_xml/Tests/load.test
@@ -0,0 +1,50 @@
+statement ok
+create table Customers (
+ CustId integer,
+ Name varchar(32),
+ City varchar(32)
+)
+
+statement ok
+insert into Customers values(1, 'WoodWorks', 'Baltimore')
+
+statement ok
+insert into Customers values(2, 'Software Solutions', 'Boston')
+
+statement ok
+insert into Customers values(3, 'Food Supplies', 'New York')
+
+statement ok
+insert into Customers values(4, 'Hardware Shop', 'Washington')
+
+statement ok
+insert into Customers values(5, 'Books Inc', 'New Orleans')
+
+statement ok
+create table Projects (
+ ProjId integer,
+ Name varchar(32),
+ CustId integer
+)
+
+statement ok
+insert into Projects values(1, 'Medusa', 1)
+
+statement ok
+insert into Projects values(2, 'Pegasus', 4)
+
+statement ok
+insert into Projects values(8, 'Typhon', 4)
+
+statement ok
+insert into Projects values(10, 'Sphinx', 5)
+
+query ITTITI rowsort
+select *
+from Customers c, Projects p
+where c.CustId = p.CustId
+order by c.CustId, p.ProjId
+----
+24 values hashing to 7a1104052800017323e648c06b71c126
+
+
diff --git a/sql/test/sql_xml/Tests/xml.test b/sql/test/sql_xml/Tests/xml.test
new file mode 100644
--- /dev/null
+++ b/sql/test/sql_xml/Tests/xml.test
@@ -0,0 +1,63 @@
+query IT rowsort
+select c.CustId, c.Name as CustName
+from customers c
+----
+10 values hashing to 1451e925825260fb765e3e9a4c03df90
+
+statement error
+select xmlelement(name "Customer",
+ xmlelement(name "CustId", c.CustId),
+ xmlelement(name "CustName", c.Name),
+ xmlelement(name "City", c.City))
+from customers c
+
+statement error
+select xmlelement(name "Customer",
+ xmlforest(c.CustId, c.Name AS CustName, c.City))
+from customers c
+
+query ITTITI rowsort
+select *
+from Customers c, Projects p
+where c.CustId = p.CustId
+order by c.CustId, p.ProjId
+----
+24 values hashing to 7a1104052800017323e648c06b71c126
+
+statement error
+select xmlelement(name "CustomerProj",
+ xmlforest(c.CustId, c.Name AS CustName, p.ProjId, p.Name AS ProjName))
+from Customers c, Projects p
+where c.CustId = p.CustId
+order by c.CustId, p.ProjId
+
+statement error
+select xmlelement(name project,
+ xmlattributes(p.ProjId as "id"),
+ xmlforest(c.CustId, c.Name AS CustName, p.ProjId, p.Name AS ProjName))
+from Customers c, Projects p
+where c.CustId = p.CustId
+order by c.CustId, p.ProjId
+
+statement error
+select
+ xmlelement(name "Customer",
+ xmlattributes(c.CustId as "id"),
+ xmlforest(c.Name as "name", c.City as city),
+ xmlelement(name projects,
+ (select xmlagg(xmlelement(name project,
+ xmlattributes(p.ProjId as "id"),
+ xmlforest(p.Name as name)))
+ from Projects p
+ where p.CustId = c.CustId) )) as "customer_projects"
+from Customers c
+order by c.CustId
+
+statement error
+select
+ xmlelement(name "Customer",
+ xmlattributes(c.CustId as "id"),
+ xmlcomment('simple comment test'))
+from Customers c
+
+
diff --git a/sql/test/sql_xml/Tests/xml_attribute_parsing.SF-1855673.test
b/sql/test/sql_xml/Tests/xml_attribute_parsing.SF-1855673.test
new file mode 100644
--- /dev/null
+++ b/sql/test/sql_xml/Tests/xml_attribute_parsing.SF-1855673.test
@@ -0,0 +1,4 @@
+statement error
+SELECT xmlelement(name element,xmlattributes ('unnamed and wrong'))
+
+
diff --git a/sql/test/sql_xml/Tests/xmlelement_segfault.SF-2812767.test
b/sql/test/sql_xml/Tests/xmlelement_segfault.SF-2812767.test
new file mode 100644
--- /dev/null
+++ b/sql/test/sql_xml/Tests/xmlelement_segfault.SF-2812767.test
@@ -0,0 +1,17 @@
+statement ok
+start transaction
+
+statement ok
+create table test (
+x varchar(64)
+)
+
+query T rowsort
+select xmlelement(name a, xmlagg(xmlelement(name b, x))) from test
+----
+NULL
+
+statement ok
+rollback
+
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list