Add the Binary data type and corresponding helper functions to Asterix.
The binary data type is implemented as a bytearray. Its storage format
follows the String type which has 2 bytes for length and then store the
bytes contents.
Binary data will take hex("") or base64("") as the constructor method to
passing a hex string or base64 string into Asterix. For output we use
hex("") format.
The parse-[hex|base64](string) function will parse the corresponding hex
or base64 string to binary type. The print-[hex|base64](binary)
functions will print the binary to hex or base64 STRING format.
The sub-binary(binary, offset, [length]) function works the same as
substring(string, offset, [length])
The find-binary(srcbinary, targetbinary, [start-offset]) will find the
position of the targetbinary in the srcbinary.
Change-Id: I5ecf0cc115c44070fb5c1fc5b0ec12a95d4243a4
Reviewed-on: http://fulliautomatix.ics.uci.edu:8443/175
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <buyingyi@gmail.com>
diff --git a/.gitignore b/.gitignore
index 39d2528..189af35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,5 +19,6 @@
*-coredump
*.pyc
*.iml
+.idea/
asterix.ipr
asterix.iws
diff --git a/asterix-app/data/adm-load/binary_type.adm b/asterix-app/data/adm-load/binary_type.adm
new file mode 100644
index 0000000..2f79dff
--- /dev/null
+++ b/asterix-app/data/adm-load/binary_type.adm
@@ -0,0 +1 @@
+{ "ba": hex("ABCDEF0123456789"), "bb": hex("ABCDEF0123456789"), "bc": hex("0A0B0C0D0E0F"), "bd": hex("01020304050607080900"), "bx": base64("q83vASNFZ4k="), "by": hex("ABCDEF0123456789"), "bz": base64("CgsMDQ4P"), "bw": base64("AQIDBAUGBwgJAA==") }
diff --git a/asterix-app/data/adm-load/usermd5.adm b/asterix-app/data/adm-load/usermd5.adm
new file mode 100644
index 0000000..09b6a69
--- /dev/null
+++ b/asterix-app/data/adm-load/usermd5.adm
@@ -0,0 +1,25 @@
+{ "id":1, "name":"Ronny Feeney", "md5": hex("34126a9a8c6e8ea118216c7b1048dda0") }
+{ "id":2, "name":"Adolph Abraham", "md5": hex("46b199c4c7fa55085eea0facd6a3c3b8") }
+{ "id":3, "name":"Odelia Orosco", "md5": hex("4a0450fe08c5421bb342f36e26c67a61") }
+{ "id":4, "name":"Jasper Villarreal", "md5": hex("173d7751e6fa210b9494503247045c9e") }
+{ "id":5, "name":"Florencio Forbes", "md5": hex("96892c30078964b56082fd00573673e4") }
+{ "id":6, "name":"Violette Maes", "md5": hex("f998bd34cfbe9b742c62e0aa9d06c977") }
+{ "id":7, "name":"Jenae Marble", "md5": hex("204d482bc66e368b72a85e0691804626") }
+{ "id":8, "name":"Chase Harness", "md5": hex("3bde012cc94ce1bdb44ade4e38902072") }
+{ "id":9, "name":"Nia Luster", "md5": hex("bb6842ce561ac90e75b033821b34f2bd") }
+{ "id":10, "name":"Joye Langdon", "md5": hex("881b39c29a960774f53d31762684abcc") }
+{ "id":11, "name":"Tennie Mcfall", "md5": hex("68f4f0355cde1b6c1746755be9559030") }
+{ "id":12, "name":"Tennie Margarete Hutcherson", "md5": hex("885f2930e80ae8e985beb9d2afc60e66") }
+{ "id":13, "name":"Alexa Hess", "md5": hex("da3a3aa357f469c2eef30e636a67366a") }
+{ "id":14, "name":"Afton Smiley", "md5": hex("aa24b12619d1723817e0aae507dc5d16") }
+{ "id":15, "name":"Tamela Wilkes", "md5": hex("0bdfecee101f739d708169a3d7bf692d") }
+{ "id":16, "name":"Thaddeus Hightower", "md5": hex("1c5631b1e0023366dbaac5cab125a507") }
+{ "id":17, "name":"Carmelita Jarvis", "md5": hex("b8862e8f77173a39b55a36ba0f0d44c6") }
+{ "id":18, "name":"Vanetta Chacon", "md5": hex("b0d3e7d02ef3bee600fdbd2b688f9cf5") }
+{ "id":19, "name":"Alline Giron", "md5": hex("6c718cb3708992f7a482619348011abf") }
+{ "id":20, "name":"Louis Roche", "md5": hex("d64f30701a822ebe9f8a25b66c264e88") }
+{ "id":21, "name":"Rachal Chavis", "md5": hex("b412f8294bddaf083d86d2b650bcc75f") }
+{ "id":22, "name":"Cedrick Herman", "md5": hex("23c34ac38626e0b0f3717c7347dd2ec5") }
+{ "id":23, "name":"Latrisha Walling", "md5": hex("57af6780c9b51bd783412ea4520dac2a") }
+{ "id":24, "name":"Neda Earle", "md5": hex("ca312d57fd3365b10448f5008ae2f555") }
+{ "id":25, "name":"Tamekia Connelly", "md5": hex("6b5fd221ef1fb9d41d105f7b6206494b") }
diff --git a/asterix-app/data/adm-load/usermd5copy.adm b/asterix-app/data/adm-load/usermd5copy.adm
new file mode 100644
index 0000000..c981fed
--- /dev/null
+++ b/asterix-app/data/adm-load/usermd5copy.adm
@@ -0,0 +1,20 @@
+{ "id":1, "name": "Ronny Feeney", "md5": base64("NBJqmoxujqEYIWx7EEjdoA==") }
+{ "id":2, "name": "Adolph Abraham", "md5": base64("RrGZxMf6VQhe6g+s1qPDuA==") }
+{ "id":3, "name": "Odelia Orosco", "md5": base64("SgRQ/gjFQhuzQvNuJsZ6YQ==") }
+{ "id":4, "name": "Jasper Villarreal", "md5": base64("Fz13Ueb6IQuUlFAyRwRcng==") }
+{ "id":5, "name": "Florencio Forbes", "md5": base64("loksMAeJZLVggv0AVzZz5A==") }
+{ "id":6, "name": "Violette Maes", "md5": base64("+Zi9NM++m3QsYuCqnQbJdw==") }
+{ "id":7, "name": "Jenae Marble", "md5": base64("IE1IK8ZuNotyqF4GkYBGJg==") }
+{ "id":8, "name": "Chase Harness", "md5": base64("O94BLMlM4b20St5OOJAgcg==") }
+{ "id":9, "name": "Nia Luster", "md5": base64("u2hCzlYayQ51sDOCGzTyvQ==") }
+{ "id":10, "name": "Joye Langdon", "md5": base64("iBs5wpqWB3T1PTF2JoSrzA==") }
+{ "id":30, "name": "Trang Fortenberry", "md5": hex("0a6ebf67522bed580f3e4779dc60ef29") }
+{ "id":31, "name": "Ria Ellsworth", "md5": hex("3af7c2ac759fd3f3c89dcccdc5f4b5df") }
+{ "id":32, "name": "Virgina Baine", "md5": hex("c63c87c07ce7ccf9aa1d6714be537c64") }
+{ "id":33, "name": "Maryam Runyan", "md5": hex("fde31a65de79ac40d986e4decd4de52d") }
+{ "id":34, "name": "Harland Slone", "md5": hex("9c779a36c8a0dd83d1cbd6811a36e837") }
+{ "id":35, "name": "Pearle Whitley", "md5": hex("d5f7b64f8e1ea21f888a7213273f437c") }
+{ "id":36, "name": "Sulema Gillis", "md5": hex("5c666e65939e007777dd373d5f54ae1f") }
+{ "id":37, "name": "Graig Brubaker", "md5": hex("e405cb11cca4371f543ac3d0fbbe6d7b") }
+{ "id":38, "name": "Damaris Durden", "md5": hex("3fb470ec2894a7205c5446978927459a") }
+{ "id":39, "name": "Eldora Leighton", "md5": hex("911cdf4749f6bb6057c096ce12e308c3") }
diff --git a/asterix-app/data/nontagged/allData.json b/asterix-app/data/nontagged/allData.json
index 5f7bf3b..06c786f 100644
--- a/asterix-app/data/nontagged/allData.json
+++ b/asterix-app/data/nontagged/allData.json
@@ -1,2 +1,17 @@
-{ "id": 10, "name": string("Nancy"), "age": 32.5f, "salary": 12.000 ,"married": boolean("true"), "interests": {{"reading", "writing"}}, "children": ["Brad", "Scott"], "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" }, "dob": date("-2011-01-27"), "time": time("12:20:30Z"), "datetime": datetime("-1951-12-27T12:20:30"), "duration": duration("P10Y11M12DT10H50M30S"), "location2d": point("41.00,44.00"), "location3d": point3d("44.00,13.00,41.00"), "line" : line("10.1,11.1 10.2,11.2"), "polygon" : polygon("1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8"), "circle" : circle("10.1,11.1 10.2") }
-
+{ "id": 10,
+"name": string("Nancy"),
+"age": 32.5f,
+"salary": 12.000 ,"married": boolean("true"),
+"interests": {{"reading","writing"}},
+"children": ["Brad","Scott"],
+ "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" },
+"dob": date("-2011-01-27"),
+"time": time("12:20:30Z"),
+"datetime": datetime("-1951-12-27T12:20:30"),
+ "duration": duration("P10Y11M12DT10H50M30S"),
+ "location2d": point("41.00,44.00"),
+ "location3d": point3d("44.00,13.00,41.00"),
+"line" : line("10.1,11.1 10.2,11.2"),
+"polygon" : polygon("1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8"),
+"circle" : circle("10.1,11.1 10.2"),
+"binary" : hex("ABCDEF0123456789") }
diff --git a/asterix-app/pom.xml b/asterix-app/pom.xml
index 3ea149e..7bfd2d9 100644
--- a/asterix-app/pom.xml
+++ b/asterix-app/pom.xml
@@ -188,7 +188,7 @@
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
<type>jar</type>
- <scope>test</scope>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>xalan</groupId>
diff --git a/asterix-app/src/test/resources/metadata/results/basic/meta17/meta17.1.adm b/asterix-app/src/test/resources/metadata/results/basic/meta17/meta17.1.adm
index ea7c8cb..fd958b0 100644
--- a/asterix-app/src/test/resources/metadata/results/basic/meta17/meta17.1.adm
+++ b/asterix-app/src/test/resources/metadata/results/basic/meta17/meta17.1.adm
@@ -48,6 +48,7 @@
, { "DataverseName": "Metadata", "DatatypeName": "Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "EnumValues": null, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FileStructure", "FieldType": "string" }, { "FieldName": "PartitioningStrategy", "FieldType": "string" }, { "FieldName": "PartitioningKey", "FieldType": "Field_PartitioningKey_in_Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType" }, { "FieldName": "PrimaryKey", "FieldType": "Field_PrimaryKey_in_Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType" }, { "FieldName": "GroupName", "FieldType": "string" }, { "FieldName": "Autogenerated", "FieldType": "boolean" }, { "FieldName": "CompactionPolicy", "FieldType": "string" }, { "FieldName": "CompactionPolicyProperties", "FieldType": "Field_CompactionPolicyProperties_in_Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType" } ] }, "Union": null, "UnorderedList": null, "OrderedList": null }, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "Type_#1_UnionType_Field_Record_in_Type_#1_UnionType_Field_Derived_in_DatatypeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "EnumValues": null, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "IsOpen", "FieldType": "boolean" }, { "FieldName": "Fields", "FieldType": "Field_Fields_in_Type_#1_UnionType_Field_Record_in_Type_#1_UnionType_Field_Derived_in_DatatypeRecordType" } ] }, "Union": null, "UnorderedList": null, "OrderedList": null }, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "Type_#1_UnionType_Field_Union_in_Type_#1_UnionType_Field_Derived_in_DatatypeRecordType", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "EnumValues": null, "Record": null, "Union": null, "UnorderedList": null, "OrderedList": "string" }, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
+, { "DataverseName": "Metadata", "DatatypeName": "binary", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "boolean", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "circle", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "date", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
diff --git a/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm b/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm
index ea7c8cb..fd958b0 100644
--- a/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm
+++ b/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm
@@ -48,6 +48,7 @@
, { "DataverseName": "Metadata", "DatatypeName": "Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "EnumValues": null, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FileStructure", "FieldType": "string" }, { "FieldName": "PartitioningStrategy", "FieldType": "string" }, { "FieldName": "PartitioningKey", "FieldType": "Field_PartitioningKey_in_Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType" }, { "FieldName": "PrimaryKey", "FieldType": "Field_PrimaryKey_in_Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType" }, { "FieldName": "GroupName", "FieldType": "string" }, { "FieldName": "Autogenerated", "FieldType": "boolean" }, { "FieldName": "CompactionPolicy", "FieldType": "string" }, { "FieldName": "CompactionPolicyProperties", "FieldType": "Field_CompactionPolicyProperties_in_Type_#1_UnionType_Field_InternalDetails_in_DatasetRecordType" } ] }, "Union": null, "UnorderedList": null, "OrderedList": null }, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "Type_#1_UnionType_Field_Record_in_Type_#1_UnionType_Field_Derived_in_DatatypeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "EnumValues": null, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "IsOpen", "FieldType": "boolean" }, { "FieldName": "Fields", "FieldType": "Field_Fields_in_Type_#1_UnionType_Field_Record_in_Type_#1_UnionType_Field_Derived_in_DatatypeRecordType" } ] }, "Union": null, "UnorderedList": null, "OrderedList": null }, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "Type_#1_UnionType_Field_Union_in_Type_#1_UnionType_Field_Derived_in_DatatypeRecordType", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "EnumValues": null, "Record": null, "Union": null, "UnorderedList": null, "OrderedList": "string" }, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
+, { "DataverseName": "Metadata", "DatatypeName": "binary", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "boolean", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "circle", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
, { "DataverseName": "Metadata", "DatatypeName": "date", "Derived": null, "Timestamp": "Wed Aug 20 14:03:26 PDT 2014" }
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.1.ddl.aql
@@ -0,0 +1,3 @@
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.3.query.aql
new file mode 100644
index 0000000..36ce68d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/concat/concat_01.3.query.aql
@@ -0,0 +1,13 @@
+use dataverse test;
+
+let $x := [ hex("aa"), hex("259911"), hex("bb"), hex("31")]
+let $c := binary-concat($x)
+
+let $x1 := []
+let $c1 := binary-concat($x1)
+
+let $c2 := binary-concat([null])
+let $c3 := binary-concat([null, hex('55')])
+let $c4 := binary-concat([hex('aa'), null])
+let $c5 := binary-concat([hex('aa'), null, base64('asdf')])
+return [ $c = hex("AA259911bb31"), $c1 = hex(""), $c2 , $c3 , $c4 , $c5 ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.1.ddl.aql
new file mode 100644
index 0000000..a87ad2f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type UserType as closed {
+ id: int32,
+ name: string,
+ md5: binary
+}
+
+create dataset User(UserType)
+ primary key id;
+
+create dataset UserCopy(UserType)
+ primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.2.update.aql
new file mode 100644
index 0000000..13f757e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.2.update.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+load dataset User
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/usermd5.adm"),("format"="adm")) ;
+
+load dataset UserCopy
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/usermd5copy.adm"),("format"="adm")) ;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.3.query.aql
new file mode 100644
index 0000000..8c49245
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/equal_join/equal_join.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('User')
+for $o in dataset('UserCopy')
+where $c.md5 = $o.md5
+order by $c.id
+return {"cid":$c.id, "oid": $o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/find/find.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/find/find.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/find/find.1.ddl.aql
@@ -0,0 +1,3 @@
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/find/find.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/find/find.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/find/find.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/find/find.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/find/find.3.query.aql
new file mode 100644
index 0000000..473441e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/find/find.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $x := hex("aabbccddaa")
+let $r1 := find-binary($x, hex('')) = 1
+let $r2 := find-binary($x, hex('aa')) = 1
+let $r3 := find-binary($x, hex('aa'), 1) = 5
+let $r4 := find-binary($x, hex('aabb'), 0) = find-binary($x, hex('aabb'))
+let $r5 := find-binary($x, hex('11')) = 0
+let $r6 := find-binary($x, hex('ccddaa')) = 3
+let $r7 := find-binary($x, hex('ccddaabb')) = 0
+
+let $r8 := find-binary($x, null)
+let $r9 := find-binary(null, null)
+let $r0 := find-binary(null, $x)
+return [ $r1 and $r2 and $r3 and $r4 and $r5 and $r6 and $r7, $r8, $r9 , $r0]
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.1.ddl.aql
new file mode 100644
index 0000000..921f8f5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type UserType as closed {
+ id: int32,
+ name: string,
+ md5: binary
+}
+
+create dataset User(UserType)
+ primary key md5;
+
+create dataset UserCopy(UserType)
+ primary key md5;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.2.update.aql
new file mode 100644
index 0000000..13f757e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.2.update.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+load dataset User
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/usermd5.adm"),("format"="adm")) ;
+
+load dataset UserCopy
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/usermd5copy.adm"),("format"="adm")) ;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.3.query.aql
new file mode 100644
index 0000000..8c49245
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/index_join/index_join.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('User')
+for $o in dataset('UserCopy')
+where $c.md5 = $o.md5
+order by $c.id
+return {"cid":$c.id, "oid": $o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.1.ddl.aql
new file mode 100644
index 0000000..c92ed7e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.1.ddl.aql
@@ -0,0 +1,21 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type UserTypeOpen as open{
+ id: int32
+}
+
+
+create type UserTypeClose as closed {
+ id: int32,
+ name: string,
+ md5: binary
+}
+
+create dataset UserOpen(UserTypeOpen)
+ primary key id;
+
+create dataset UserCopyClose(UserTypeClose)
+ primary key md5;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.2.update.aql
new file mode 100644
index 0000000..90364db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.2.update.aql
@@ -0,0 +1,20 @@
+use dataverse test;
+
+load dataset UserOpen
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/usermd5.adm"),("format"="adm")) ;
+
+load dataset UserCopyClose
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/usermd5copy.adm"),("format"="adm")) ;
+
+
+insert into dataset UserOpen(
+for $l in dataset('UserCopyClose')
+ where $l.id>10
+ return {
+ "id": $l.id,
+ "name": $l.name,
+ "md5": $l.md5
+ }
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.3.query.aql
new file mode 100644
index 0000000..b6ac5da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/insert/insert.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $c in dataset('UserOpen')
+order by $c.id, $c.md5
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/length/length.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/length/length.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/length/length.1.ddl.aql
@@ -0,0 +1,3 @@
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/length/length.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/length/length.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/length/length.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/length/length.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/length/length.3.query.aql
new file mode 100644
index 0000000..cf98568
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/length/length.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := binary-length(hex("00AA"))
+let $c2 := binary-length(hex(""))
+let $c3 := binary-length(null)
+return {"result1": $c1, "result2": $c2, "result3": $c3}
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.1.ddl.aql
@@ -0,0 +1,2 @@
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.3.query.aql
new file mode 100644
index 0000000..791b7b7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/parse/parse.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := parse-binary("ABCDEF0123456789","hex")
+let $c2 := parse-binary("abcdef0123456789","HEX")
+let $c3 := parse-binary("0A0B0C0D0E0F","hEx")
+let $c4 := parse-binary('01020304050607080900',"hex")
+let $c5 := parse-binary('',"hex")
+
+let $c6 := parse-binary("0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM+/","base64")
+let $c7 := parse-binary('',"base64")
+let $c8 := parse-binary('QXN0ZXJpeA==',"BASE64")
+let $c9 := parse-binary('QXN0ZXJpeAE=',"baSE64")
+let $c0 := parse-binary('QXN0ZXJpeAE8',"base64")
+
+return [ $c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c0 ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/print/print.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/print/print.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/print/print.1.ddl.aql
@@ -0,0 +1,2 @@
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/print/print.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/print/print.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/print/print.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/print/print.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/print/print.3.query.aql
new file mode 100644
index 0000000..a7b23dc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/print/print.3.query.aql
@@ -0,0 +1,14 @@
+use dataverse test;
+
+let $hex := [ "ABCDEF0123456789", "0A0B0C0D0E0F",'01020304050607080900','']
+let $base64 := [ "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM+/", 'QXN0ZXJpeA==', 'QXN0ZXJpeAE=', 'QXN0ZXJpeAE8']
+
+let $hex_result :=
+ for $i in $hex
+ return print-binary(parse-binary($i, "hex"), "hex") = $i
+
+let $base64_result :=
+ for $j in $base64
+ return print-binary(parse-binary($j, "base64"), "base64") = $j
+
+return { "hex":$hex_result, "base64":$base64_result }
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.1.ddl.aql
@@ -0,0 +1,3 @@
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.3.query.aql
new file mode 100644
index 0000000..afbcb71
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/binary/subbinary/subbinary_01.3.query.aql
@@ -0,0 +1,23 @@
+use dataverse test;
+
+let $x := hex("aabbccdd")
+
+let $r1 := sub-binary(hex(''),0) = hex('')
+let $r2 := sub-binary(hex(''),1) = hex('')
+let $r3 := sub-binary(hex(''),-1) = hex('')
+
+let $r4 := sub-binary($x, 1, binary-length($x)) = $x
+let $r5 := sub-binary($x, 2, 1) = hex('bb')
+let $r6 := sub-binary($x, 2) = hex('bbccdd')
+let $r7 := sub-binary($x, 5, 0) = hex('')
+let $r8 := sub-binary($x, 4, 1) = hex('dd')
+let $r9 := sub-binary($x, 2, 2) = hex('bbcc')
+
+let $r10 := sub-binary($x, 0) = $x
+let $r11 := sub-binary($x, -1) = $x
+let $r12 := sub-binary($x, 1, 256) = $x
+let $r13 := sub-binary($x, 2, 256) = hex('bbccdd')
+let $r14 := sub-binary($x, 2, -1) = hex('')
+
+return $r1 and $r2 and $r3 and $r4 and $r5 and $r6 and $r7 and $r8 and $r9 and $r10 and $r11 and $r12 and $r13 and $r14
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.1.ddl.aql
@@ -0,0 +1,2 @@
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.3.query.aql
new file mode 100644
index 0000000..eb8161c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/binary/binary.3.query.aql
@@ -0,0 +1,27 @@
+use dataverse test;
+
+let $c1 := hex('0A0A')
+let $c2 := hex("0B")
+let $c11:= base64("Cgo=")
+let $c21:= base64("Cw==")
+
+let $r1 := $c1 > $c2
+let $r2 := $c1 >= $c2
+let $r3 := $c1 < $c2
+let $r4 := $c1 <= $c2
+let $r5 := $c1 = $c2
+let $r6 := $c1 != $c2
+
+let $r11 := $c11 > $c21
+let $r21 := $c11 >= $c21
+let $r31 := $c11 < $c21
+let $r41 := $c11 <= $c21
+let $r51 := $c11 = $c21
+let $r61 := $c11 != $c21
+
+let $req1 := $c1 = $c11
+let $req2 := $c2 = $c21
+let $req3 := $c1 = $c21
+let $req4 := $c2 = $c11
+
+return [ $r1,$r2,$r3,$r4,$r5,$r6,$r11,$r21,$r31,$r41,$r51,$r61,$req1,$req2,$req3,$req4 ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.1.ddl.aql
@@ -0,0 +1,2 @@
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.3.query.aql
new file mode 100644
index 0000000..e19382c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/binary_null/binary_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := hex("AA")
+let $c2 := [1]
+let $c3 := $c2[1]
+let $r1 := $c1 > $c3
+let $r2 := $c3 >= $c1
+let $r3 := $c1 < $c3
+let $r4 := $c3 <= $c1
+let $r5 := $c1 = $c3
+let $r6 := $c3 != $c1
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.1.ddl.aql
@@ -0,0 +1,2 @@
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.3.query.aql
new file mode 100644
index 0000000..9646bea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/binary_01/binary_01.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := hex("ABCDEF0123456789")
+let $c2 := hex("abcdef0123456789")
+let $c3 := hex("0A0B0C0D0E0F")
+let $c4 := hex('01020304050607080900')
+let $c5 := hex('')
+
+let $c6 := base64("0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM+/")
+let $c7 := base64('')
+let $c8 := base64('QXN0ZXJpeA==')
+let $c9 := base64('QXN0ZXJpeAE=')
+let $c0 := base64('QXN0ZXJpeAE8')
+
+return [ $c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c0 ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_bianry.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_bianry.1.ddl.aql
new file mode 100644
index 0000000..b076a09
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_bianry.1.ddl.aql
@@ -0,0 +1,10 @@
+drop dataverse temp if exists;
+create dataverse temp
+use dataverse temp;
+
+create type test as open {
+ ba: binary
+};
+
+create dataset testds (test)
+primary key ba;
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_binary.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_binary.2.update.aql
new file mode 100644
index 0000000..6995d46
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_binary.2.update.aql
@@ -0,0 +1,12 @@
+/**
+ *
+ * CSV file loading test
+ * Expected result: success
+ *
+ */
+
+use dataverse temp;
+
+load dataset testds
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/adm-load/binary_type.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_binary.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_binary.3.query.aql
new file mode 100644
index 0000000..da7cf66
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/adm_binary/adm_binary.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse temp;
+
+for $i in dataset testds
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.1.ddl.aql
index 67e79fe..7fc3f51 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.1.ddl.aql
@@ -4,7 +4,7 @@
use dataverse test;
create type AddressType as open {
- number: int32,
+ number: int32,
street: string,
city: string
}
@@ -26,9 +26,8 @@
location3d: point3d,
line: line,
polygon: polygon,
- circle: circle
-
- // binary
+ circle: circle,
+ binary: binary
// union
}
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.1.ddl.aql
index 8e27049..984b0d2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.1.ddl.aql
@@ -11,7 +11,7 @@
use dataverse test;
create type AddressType as open {
- number: int32,
+ number: int32,
street: string,
city: string
}
@@ -33,9 +33,8 @@
location3d: point3d,
line: line,
polygon: polygon,
- circle: circle
-
- // binary
+ circle: circle,
+ binary: binary
// union
}
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/concat/concat.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/concat/concat.1.adm
new file mode 100644
index 0000000..ffa48cf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/concat/concat.1.adm
@@ -0,0 +1,2 @@
+[ [ true, true, null, null, null, null ]
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/equal_join/equal_join.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/equal_join/equal_join.1.adm
new file mode 100644
index 0000000..8b60089
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/equal_join/equal_join.1.adm
@@ -0,0 +1,11 @@
+[ { "cid": 1, "oid": 1 }
+, { "cid": 2, "oid": 2 }
+, { "cid": 3, "oid": 3 }
+, { "cid": 4, "oid": 4 }
+, { "cid": 5, "oid": 5 }
+, { "cid": 6, "oid": 6 }
+, { "cid": 7, "oid": 7 }
+, { "cid": 8, "oid": 8 }
+, { "cid": 9, "oid": 9 }
+, { "cid": 10, "oid": 10 }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/find/find.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/find/find.1.adm
new file mode 100644
index 0000000..9e639d6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/find/find.1.adm
@@ -0,0 +1,2 @@
+[ [ true, null, null, null ]
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/index_join/index_join.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/index_join/index_join.1.adm
new file mode 100644
index 0000000..8b60089
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/index_join/index_join.1.adm
@@ -0,0 +1,11 @@
+[ { "cid": 1, "oid": 1 }
+, { "cid": 2, "oid": 2 }
+, { "cid": 3, "oid": 3 }
+, { "cid": 4, "oid": 4 }
+, { "cid": 5, "oid": 5 }
+, { "cid": 6, "oid": 6 }
+, { "cid": 7, "oid": 7 }
+, { "cid": 8, "oid": 8 }
+, { "cid": 9, "oid": 9 }
+, { "cid": 10, "oid": 10 }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/insert/insert.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/insert/insert.1.adm
new file mode 100644
index 0000000..cbf9654
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/insert/insert.1.adm
@@ -0,0 +1,36 @@
+[ { "id": 1, "name": "Ronny Feeney", "md5": hex("34126A9A8C6E8EA118216C7B1048DDA0")
+, { "id": 2, "name": "Adolph Abraham", "md5": hex("46B199C4C7FA55085EEA0FACD6A3C3B8")
+, { "id": 3, "name": "Odelia Orosco", "md5": hex("4A0450FE08C5421BB342F36E26C67A61")
+, { "id": 4, "name": "Jasper Villarreal", "md5": hex("173D7751E6FA210B9494503247045C9E")
+, { "id": 5, "name": "Florencio Forbes", "md5": hex("96892C30078964B56082FD00573673E4")
+, { "id": 6, "name": "Violette Maes", "md5": hex("F998BD34CFBE9B742C62E0AA9D06C977")
+, { "id": 7, "name": "Jenae Marble", "md5": hex("204D482BC66E368B72A85E0691804626")
+, { "id": 8, "name": "Chase Harness", "md5": hex("3BDE012CC94CE1BDB44ADE4E38902072")
+, { "id": 9, "name": "Nia Luster", "md5": hex("BB6842CE561AC90E75B033821B34F2BD")
+, { "id": 10, "name": "Joye Langdon", "md5": hex("881B39C29A960774F53D31762684ABCC")
+, { "id": 11, "name": "Tennie Mcfall", "md5": hex("68F4F0355CDE1B6C1746755BE9559030")
+, { "id": 12, "name": "Tennie Margarete Hutcherson", "md5": hex("885F2930E80AE8E985BEB9D2AFC60E66")
+, { "id": 13, "name": "Alexa Hess", "md5": hex("DA3A3AA357F469C2EEF30E636A67366A")
+, { "id": 14, "name": "Afton Smiley", "md5": hex("AA24B12619D1723817E0AAE507DC5D16")
+, { "id": 15, "name": "Tamela Wilkes", "md5": hex("0BDFECEE101F739D708169A3D7BF692D")
+, { "id": 16, "name": "Thaddeus Hightower", "md5": hex("1C5631B1E0023366DBAAC5CAB125A507")
+, { "id": 17, "name": "Carmelita Jarvis", "md5": hex("B8862E8F77173A39B55A36BA0F0D44C6")
+, { "id": 18, "name": "Vanetta Chacon", "md5": hex("B0D3E7D02EF3BEE600FDBD2B688F9CF5")
+, { "id": 19, "name": "Alline Giron", "md5": hex("6C718CB3708992F7A482619348011ABF")
+, { "id": 20, "name": "Louis Roche", "md5": hex("D64F30701A822EBE9F8A25B66C264E88")
+, { "id": 21, "name": "Rachal Chavis", "md5": hex("B412F8294BDDAF083D86D2B650BCC75F")
+, { "id": 22, "name": "Cedrick Herman", "md5": hex("23C34AC38626E0B0F3717C7347DD2EC5")
+, { "id": 23, "name": "Latrisha Walling", "md5": hex("57AF6780C9B51BD783412EA4520DAC2A")
+, { "id": 24, "name": "Neda Earle", "md5": hex("CA312D57FD3365B10448F5008AE2F555")
+, { "id": 25, "name": "Tamekia Connelly", "md5": hex("6B5FD221EF1FB9D41D105F7B6206494B")
+, { "id": 30, "name": "Trang Fortenberry", "md5": hex("0A6EBF67522BED580F3E4779DC60EF29")
+, { "id": 31, "name": "Ria Ellsworth", "md5": hex("3AF7C2AC759FD3F3C89DCCCDC5F4B5DF")
+, { "id": 32, "name": "Virgina Baine", "md5": hex("C63C87C07CE7CCF9AA1D6714BE537C64")
+, { "id": 33, "name": "Maryam Runyan", "md5": hex("FDE31A65DE79AC40D986E4DECD4DE52D")
+, { "id": 34, "name": "Harland Slone", "md5": hex("9C779A36C8A0DD83D1CBD6811A36E837")
+, { "id": 35, "name": "Pearle Whitley", "md5": hex("D5F7B64F8E1EA21F888A7213273F437C")
+, { "id": 36, "name": "Sulema Gillis", "md5": hex("5C666E65939E007777DD373D5F54AE1F")
+, { "id": 37, "name": "Graig Brubaker", "md5": hex("E405CB11CCA4371F543AC3D0FBBE6D7B")
+, { "id": 38, "name": "Damaris Durden", "md5": hex("3FB470EC2894A7205C5446978927459A")
+, { "id": 39, "name": "Eldora Leighton", "md5": hex("911CDF4749F6BB6057C096CE12E308C3")
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/length/length.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/length/length.1.adm
new file mode 100644
index 0000000..b37088f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/length/length.1.adm
@@ -0,0 +1,2 @@
+[ { "result1": 2, "result2": 0, "result3": null }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/parse/parse.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/parse/parse.1.adm
new file mode 100644
index 0000000..1ffc2a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/parse/parse.1.adm
@@ -0,0 +1,2 @@
+[ [ hex("ABCDEF0123456789"), hex("ABCDEF0123456789"), hex("0A0B0C0D0E0F"), hex("01020304050607080900"), hex(""), hex("D35DB7E39EBBF3DAB07ABB72BA2A296AC75F8218E4973C5CBDB9E64161114D850838F2CA2471850D20195C254134CFBF"), hex(""), hex("41737465726978"), hex("4173746572697801"), hex("41737465726978013C") ]
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/print/print.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/print/print.1.adm
new file mode 100644
index 0000000..0b9f378
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/print/print.1.adm
@@ -0,0 +1,2 @@
+[ { "hex": [ true, true, true, true ], "base64": [ true, true, true, true ] }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/binary/subbinary/subbinary.1.adm b/asterix-app/src/test/resources/runtimets/results/binary/subbinary/subbinary.1.adm
new file mode 100644
index 0000000..975a5f0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/binary/subbinary/subbinary.1.adm
@@ -0,0 +1,2 @@
+[ true
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/comparison/binary/binary.1.adm b/asterix-app/src/test/resources/runtimets/results/comparison/binary/binary.1.adm
new file mode 100644
index 0000000..3961032
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/comparison/binary/binary.1.adm
@@ -0,0 +1,2 @@
+[ [ false, false, true, true, false, true, false, false, true, true, false, true, true, true, false, false ]
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/comparison/binary_null/binary_null.1.adm b/asterix-app/src/test/resources/runtimets/results/comparison/binary_null/binary_null.1.adm
new file mode 100644
index 0000000..3e9f513
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/comparison/binary_null/binary_null.1.adm
@@ -0,0 +1,2 @@
+[ { "result1": null, "result2": null, "result3": null, "result4": null, "result5": null, "result6": null }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/constructor/binary_01/binary_01.1.adm b/asterix-app/src/test/resources/runtimets/results/constructor/binary_01/binary_01.1.adm
new file mode 100644
index 0000000..1ffc2a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/constructor/binary_01/binary_01.1.adm
@@ -0,0 +1,2 @@
+[ [ hex("ABCDEF0123456789"), hex("ABCDEF0123456789"), hex("0A0B0C0D0E0F"), hex("01020304050607080900"), hex(""), hex("D35DB7E39EBBF3DAB07ABB72BA2A296AC75F8218E4973C5CBDB9E64161114D850838F2CA2471850D20195C254134CFBF"), hex(""), hex("41737465726978"), hex("4173746572697801"), hex("41737465726978013C") ]
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/load/adm_binary/adm_binary.1.adm b/asterix-app/src/test/resources/runtimets/results/load/adm_binary/adm_binary.1.adm
new file mode 100644
index 0000000..d1dc251
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/load/adm_binary/adm_binary.1.adm
@@ -0,0 +1,2 @@
+[ { "ba": hex("ABCDEF0123456789"), "bb": hex("ABCDEF0123456789"), "bc": hex("0A0B0C0D0E0F"), "bd": hex("01020304050607080900"), "bx": hex("ABCDEF0123456789"), "by": hex("ABCDEF0123456789"), "bz": hex("0A0B0C0D0E0F"), "bw": hex("01020304050607080900") }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/scan/alltypes_01/alltypes_01.1.adm b/asterix-app/src/test/resources/runtimets/results/scan/alltypes_01/alltypes_01.1.adm
index a7e77fc..6d9f6e9 100644
--- a/asterix-app/src/test/resources/runtimets/results/scan/alltypes_01/alltypes_01.1.adm
+++ b/asterix-app/src/test/resources/runtimets/results/scan/alltypes_01/alltypes_01.1.adm
@@ -1,2 +1,2 @@
-[ { "id": 10, "name": "Nancy", "age": 32.5f, "salary": 12.0d, "married": true, "interests": {{ "reading", "writing" }}, "children": [ "Brad", "Scott" ], "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" }, "dob": date("-2011-01-27"), "time": time("12:20:30.000Z"), "datetime": datetime("-1951-12-27T12:20:30.000Z"), "duration": duration("P10Y11M12DT10H50M30S"), "location2d": point("41.0,44.0"), "location3d": point3d("44.0,13.0,41.0"), "line": line("10.1,11.1 10.2,11.2"), "polygon": polygon("1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8"), "circle": circle("10.1,11.1 10.2") }
+[ { "id": 10, "name": "Nancy", "age": 32.5f, "salary": 12.0d, "married": true, "interests": {{ "reading", "writing" }}, "children": [ "Brad", "Scott" ], "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" }, "dob": date("-2011-01-27"), "time": time("12:20:30.000Z"), "datetime": datetime("-1951-12-27T12:20:30.000Z"), "duration": duration("P10Y11M12DT10H50M30S"), "location2d": point("41.0,44.0"), "location3d": point3d("44.0,13.0,41.0"), "line": line("10.1,11.1 10.2,11.2"), "polygon": polygon("1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8"), "circle": circle("10.1,11.1 10.2"), "binary": hex("ABCDEF0123456789") }
]
diff --git a/asterix-app/src/test/resources/runtimets/results/scan/alltypes_02/alltypes_02.1.adm b/asterix-app/src/test/resources/runtimets/results/scan/alltypes_02/alltypes_02.1.adm
index a7e77fc..6d9f6e9 100644
--- a/asterix-app/src/test/resources/runtimets/results/scan/alltypes_02/alltypes_02.1.adm
+++ b/asterix-app/src/test/resources/runtimets/results/scan/alltypes_02/alltypes_02.1.adm
@@ -1,2 +1,2 @@
-[ { "id": 10, "name": "Nancy", "age": 32.5f, "salary": 12.0d, "married": true, "interests": {{ "reading", "writing" }}, "children": [ "Brad", "Scott" ], "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" }, "dob": date("-2011-01-27"), "time": time("12:20:30.000Z"), "datetime": datetime("-1951-12-27T12:20:30.000Z"), "duration": duration("P10Y11M12DT10H50M30S"), "location2d": point("41.0,44.0"), "location3d": point3d("44.0,13.0,41.0"), "line": line("10.1,11.1 10.2,11.2"), "polygon": polygon("1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8"), "circle": circle("10.1,11.1 10.2") }
+[ { "id": 10, "name": "Nancy", "age": 32.5f, "salary": 12.0d, "married": true, "interests": {{ "reading", "writing" }}, "children": [ "Brad", "Scott" ], "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" }, "dob": date("-2011-01-27"), "time": time("12:20:30.000Z"), "datetime": datetime("-1951-12-27T12:20:30.000Z"), "duration": duration("P10Y11M12DT10H50M30S"), "location2d": point("41.0,44.0"), "location3d": point3d("44.0,13.0,41.0"), "line": line("10.1,11.1 10.2,11.2"), "polygon": polygon("1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8"), "circle": circle("10.1,11.1 10.2"), "binary": hex("ABCDEF0123456789") }
]
diff --git a/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterix-app/src/test/resources/runtimets/testsuite.xml
index 2dfd991..6494ac2 100644
--- a/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -12,241 +12,242 @@
! See the License for the specific language governing permissions and
! limitations under the License.
!-->
-<test-suite xmlns="urn:xml.testframework.asterix.ics.uci.edu" ResultOffsetPath="results" QueryOffsetPath="queries" QueryFileExtension=".aql">
- <test-group name="flwor">
+<test-suite xmlns="urn:xml.testframework.asterix.ics.uci.edu" ResultOffsetPath="results" QueryOffsetPath="queries"
+ QueryFileExtension=".aql">
+ <test-group name="flwor">
+ <test-case FilePath="flwor">
+ <compilation-unit name="at00">
+ <output-dir compare="Text">at00</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="at01">
+ <output-dir compare="Text">at01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="at02">
+ <output-dir compare="Text">at02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="at03">
+ <output-dir compare="Text">at03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="at04">
+ <output-dir compare="Text">at04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="at05">
+ <output-dir compare="Text">at05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="at06">
+ <output-dir compare="Text">at06</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="flwor">
+ <compilation-unit name="query-issue550">
+ <output-dir compare="Text">query-issue550</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
<test-case FilePath="flwor">
- <compilation-unit name="at00">
- <output-dir compare="Text">at00</output-dir>
- </compilation-unit>
+ <compilation-unit name="let33">
+ <output-dir compare="Text">let33</output-dir>
+ </compilation-unit>
</test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="at01">
- <output-dir compare="Text">at01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="at02">
- <output-dir compare="Text">at02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="at03">
- <output-dir compare="Text">at03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="at04">
- <output-dir compare="Text">at04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="at05">
- <output-dir compare="Text">at05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="at06">
- <output-dir compare="Text">at06</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="flwor">
- <compilation-unit name="query-issue550">
- <output-dir compare="Text">query-issue550</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-case FilePath="flwor">
- <compilation-unit name="let33">
- <output-dir compare="Text">let33</output-dir>
- </compilation-unit>
- </test-case>
- <test-group name="aggregate">
- <test-case FilePath="aggregate">
- <compilation-unit name="issue531_string_min_max">
- <output-dir compare="Text">issue531_string_min_max</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="agg_null">
- <output-dir compare="Text">agg_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="agg_null_rec">
- <output-dir compare="Text">agg_null_rec</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="agg_null_rec_1">
- <output-dir compare="Text">agg_null_rec_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="agg_number_rec">
- <output-dir compare="Text">agg_number_rec</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_mixed">
- <output-dir compare="Text">avg_mixed</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_mixed">
- <output-dir compare="Text">sum_mixed</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="min_mixed">
- <output-dir compare="Text">min_mixed</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="agg_number">
- <output-dir compare="Text">agg_number</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue425_min_hetero_list_1">
- <output-dir compare="Text">issue425_min_hetero_list_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue425_min_hetero_list">
- <output-dir compare="Text">issue425_min_hetero_list</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue425_sum_hetero_list_1">
- <output-dir compare="Text">issue425_sum_hetero_list_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue425_sum_hetero_list">
- <output-dir compare="Text">issue425_sum_hetero_list</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="query-issue400">
- <output-dir compare="Text">query-issue400</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue395">
- <output-dir compare="Text">issue395</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue412_0">
- <output-dir compare="Text">issue412_0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="issue412_1">
- <output-dir compare="Text">issue412_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_double">
- <output-dir compare="Text">avg_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_double_null">
- <output-dir compare="Text">avg_double_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_empty_01">
- <output-dir compare="Text">avg_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_empty_02">
- <output-dir compare="Text">avg_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_float">
- <output-dir compare="Text">avg_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_float_null">
- <output-dir compare="Text">avg_float_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int16">
- <output-dir compare="Text">avg_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int16_null">
- <output-dir compare="Text">avg_int16_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int32">
- <output-dir compare="Text">avg_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int32_null">
- <output-dir compare="Text">avg_int32_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int64">
- <output-dir compare="Text">avg_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int64_null">
- <output-dir compare="Text">avg_int64_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int8">
- <output-dir compare="Text">avg_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="avg_int8_null">
- <output-dir compare="Text">avg_int8_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="count_01">
- <output-dir compare="Text">count_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="count_empty_01">
- <output-dir compare="Text">count_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="count_empty_02">
- <output-dir compare="Text">count_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="count_null">
- <output-dir compare="Text">count_null</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-group name="aggregate">
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue531_string_min_max">
+ <output-dir compare="Text">issue531_string_min_max</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="agg_null">
+ <output-dir compare="Text">agg_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="agg_null_rec">
+ <output-dir compare="Text">agg_null_rec</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="agg_null_rec_1">
+ <output-dir compare="Text">agg_null_rec_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="agg_number_rec">
+ <output-dir compare="Text">agg_number_rec</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_mixed">
+ <output-dir compare="Text">avg_mixed</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_mixed">
+ <output-dir compare="Text">sum_mixed</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="min_mixed">
+ <output-dir compare="Text">min_mixed</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="agg_number">
+ <output-dir compare="Text">agg_number</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue425_min_hetero_list_1">
+ <output-dir compare="Text">issue425_min_hetero_list_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue425_min_hetero_list">
+ <output-dir compare="Text">issue425_min_hetero_list</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue425_sum_hetero_list_1">
+ <output-dir compare="Text">issue425_sum_hetero_list_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue425_sum_hetero_list">
+ <output-dir compare="Text">issue425_sum_hetero_list</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="query-issue400">
+ <output-dir compare="Text">query-issue400</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue395">
+ <output-dir compare="Text">issue395</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue412_0">
+ <output-dir compare="Text">issue412_0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="issue412_1">
+ <output-dir compare="Text">issue412_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_double">
+ <output-dir compare="Text">avg_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_double_null">
+ <output-dir compare="Text">avg_double_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_empty_01">
+ <output-dir compare="Text">avg_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_empty_02">
+ <output-dir compare="Text">avg_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_float">
+ <output-dir compare="Text">avg_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_float_null">
+ <output-dir compare="Text">avg_float_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int16">
+ <output-dir compare="Text">avg_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int16_null">
+ <output-dir compare="Text">avg_int16_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int32">
+ <output-dir compare="Text">avg_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int32_null">
+ <output-dir compare="Text">avg_int32_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int64">
+ <output-dir compare="Text">avg_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int64_null">
+ <output-dir compare="Text">avg_int64_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int8">
+ <output-dir compare="Text">avg_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="avg_int8_null">
+ <output-dir compare="Text">avg_int8_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="count_01">
+ <output-dir compare="Text">count_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="count_empty_01">
+ <output-dir compare="Text">count_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="count_empty_02">
+ <output-dir compare="Text">count_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="count_null">
+ <output-dir compare="Text">count_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="aggregate">
<compilation-unit name="droptype">
<output-dir compare="Text">droptype</output-dir>
</compilation-unit>
</test-case>
-->
- <!-- TODO(madhusudancs): These tests that test for local_<agg>/global_<agg> functions should be removed, but
+ <!-- TODO(madhusudancs): These tests that test for local_<agg>/global_<agg> functions should be removed, but
before that we should modify the code to make sure those built-in functions are still defined but not exposed
by AQL, so leaving these test cases commented.
<test-case FilePath="aggregate">
@@ -320,1345 +321,1361 @@
</compilation-unit>
</test-case>
-->
- <test-case FilePath="aggregate">
- <compilation-unit name="max_empty_01">
- <output-dir compare="Text">max_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="max_empty_02">
- <output-dir compare="Text">max_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="min_empty_01">
- <output-dir compare="Text">min_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="min_empty_02">
- <output-dir compare="Text">min_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_avg">
- <output-dir compare="Text">scalar_avg</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_avg_empty">
- <output-dir compare="Text">scalar_avg_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_avg_null">
- <output-dir compare="Text">scalar_avg_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_count">
- <output-dir compare="Text">scalar_count</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_count_empty">
- <output-dir compare="Text">scalar_count_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_count_null">
- <output-dir compare="Text">scalar_count_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_max">
- <output-dir compare="Text">scalar_max</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_max_empty">
- <output-dir compare="Text">scalar_max_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_max_null">
- <output-dir compare="Text">scalar_max_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_min">
- <output-dir compare="Text">scalar_min</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_min_empty">
- <output-dir compare="Text">scalar_min_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_min_null">
- <output-dir compare="Text">scalar_min_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_sum">
- <output-dir compare="Text">scalar_sum</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_sum_empty">
- <output-dir compare="Text">scalar_sum_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="scalar_sum_null">
- <output-dir compare="Text">scalar_sum_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_double">
- <output-dir compare="Text">sum_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_double_null">
- <output-dir compare="Text">sum_double_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_empty_01">
- <output-dir compare="Text">sum_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_empty_02">
- <output-dir compare="Text">sum_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_float">
- <output-dir compare="Text">sum_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_float_null">
- <output-dir compare="Text">sum_float_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int16">
- <output-dir compare="Text">sum_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int16_null">
- <output-dir compare="Text">sum_int16_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int32">
- <output-dir compare="Text">sum_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int32_null">
- <output-dir compare="Text">sum_int32_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int64">
- <output-dir compare="Text">sum_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int64_null">
- <output-dir compare="Text">sum_int64_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int8">
- <output-dir compare="Text">sum_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_int8_null">
- <output-dir compare="Text">sum_int8_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_null-with-pred">
- <output-dir compare="Text">sum_null-with-pred</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate">
- <compilation-unit name="sum_numeric_null">
- <output-dir compare="Text">sum_numeric_null</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="aggregate-sql">
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue531_string_min_max">
- <output-dir compare="Text">issue531_string_min_max</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="agg_null">
- <output-dir compare="Text">agg_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="agg_null_rec">
- <output-dir compare="Text">agg_null_rec</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="agg_null_rec_1">
- <output-dir compare="Text">agg_null_rec_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="agg_number_rec">
- <output-dir compare="Text">agg_number_rec</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_mixed">
- <output-dir compare="Text">avg_mixed</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_mixed">
- <output-dir compare="Text">sum_mixed</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="min_mixed">
- <output-dir compare="Text">min_mixed</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="agg_number">
- <output-dir compare="Text">agg_number</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue425_min_hetero_list_1">
- <output-dir compare="Text">issue425_min_hetero_list_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue425_min_hetero_list">
- <output-dir compare="Text">issue425_min_hetero_list</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue425_sum_hetero_list_1">
- <output-dir compare="Text">issue425_sum_hetero_list_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue425_sum_hetero_list">
- <output-dir compare="Text">issue425_sum_hetero_list</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="query-issue400">
- <output-dir compare="Text">query-issue400</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue395">
- <output-dir compare="Text">issue395</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue412_0">
- <output-dir compare="Text">issue412_0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="issue412_1">
- <output-dir compare="Text">issue412_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_double">
- <output-dir compare="Text">avg_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_double_null">
- <output-dir compare="Text">avg_double_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_empty_01">
- <output-dir compare="Text">avg_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_empty_02">
- <output-dir compare="Text">avg_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_float">
- <output-dir compare="Text">avg_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_float_null">
- <output-dir compare="Text">avg_float_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int16">
- <output-dir compare="Text">avg_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int16_null">
- <output-dir compare="Text">avg_int16_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int32">
- <output-dir compare="Text">avg_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int32_null">
- <output-dir compare="Text">avg_int32_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int64">
- <output-dir compare="Text">avg_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int64_null">
- <output-dir compare="Text">avg_int64_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int8">
- <output-dir compare="Text">avg_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="avg_int8_null">
- <output-dir compare="Text">avg_int8_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="count_01">
- <output-dir compare="Text">count_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="count_empty_01">
- <output-dir compare="Text">count_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="count_empty_02">
- <output-dir compare="Text">count_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="count_null">
- <output-dir compare="Text">count_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="max_empty_01">
- <output-dir compare="Text">max_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="max_empty_02">
- <output-dir compare="Text">max_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="min_empty_01">
- <output-dir compare="Text">min_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="min_empty_02">
- <output-dir compare="Text">min_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_avg">
- <output-dir compare="Text">scalar_avg</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_avg_empty">
- <output-dir compare="Text">scalar_avg_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_avg_null">
- <output-dir compare="Text">scalar_avg_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_count">
- <output-dir compare="Text">scalar_count</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_count_empty">
- <output-dir compare="Text">scalar_count_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_count_null">
- <output-dir compare="Text">scalar_count_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_max">
- <output-dir compare="Text">scalar_max</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_max_empty">
- <output-dir compare="Text">scalar_max_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_max_null">
- <output-dir compare="Text">scalar_max_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_min">
- <output-dir compare="Text">scalar_min</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_min_empty">
- <output-dir compare="Text">scalar_min_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_min_null">
- <output-dir compare="Text">scalar_min_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_sum">
- <output-dir compare="Text">scalar_sum</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_sum_empty">
- <output-dir compare="Text">scalar_sum_empty</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="scalar_sum_null">
- <output-dir compare="Text">scalar_sum_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_double">
- <output-dir compare="Text">sum_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_double_null">
- <output-dir compare="Text">sum_double_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_empty_01">
- <output-dir compare="Text">sum_empty_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_empty_02">
- <output-dir compare="Text">sum_empty_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_float">
- <output-dir compare="Text">sum_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_float_null">
- <output-dir compare="Text">sum_float_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int16">
- <output-dir compare="Text">sum_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int16_null">
- <output-dir compare="Text">sum_int16_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int32">
- <output-dir compare="Text">sum_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int32_null">
- <output-dir compare="Text">sum_int32_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int64">
- <output-dir compare="Text">sum_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int64_null">
- <output-dir compare="Text">sum_int64_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int8">
- <output-dir compare="Text">sum_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_int8_null">
- <output-dir compare="Text">sum_int8_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_null-with-pred">
- <output-dir compare="Text">sum_null-with-pred</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="aggregate-sql">
- <compilation-unit name="sum_numeric_null">
- <output-dir compare="Text">sum_numeric_null</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="boolean">
- <test-case FilePath="boolean">
- <compilation-unit name="and_01">
- <output-dir compare="Text">and_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="boolean">
- <compilation-unit name="and_null">
- <output-dir compare="Text">and_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="boolean">
- <compilation-unit name="and_null_false">
- <output-dir compare="Text">and_null_false</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="boolean">
- <compilation-unit name="not_01">
- <output-dir compare="Text">not_01</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="comparison">
- <test-case FilePath="comparison">
- <compilation-unit name="year_month_duration_order">
- <output-dir compare="Text">year_month_duration_order</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="datetime_order">
- <output-dir compare="Text">datetime_order</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="datetime_range">
- <output-dir compare="Text">datetime_range</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="datetime_tzeq">
- <output-dir compare="Text">datetime_tzeq</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="double">
- <output-dir compare="Text">double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="double_gte_01">
- <output-dir compare="Text">double_gte_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="double_null">
- <output-dir compare="Text">double_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="eq_01">
- <output-dir compare="Text">eq_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="float">
- <output-dir compare="Text">float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="float_null">
- <output-dir compare="Text">float_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="gt_01">
- <output-dir compare="Text">gt_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="gte_01">
- <output-dir compare="Text">gte_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int16">
- <output-dir compare="Text">int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int16_null">
- <output-dir compare="Text">int16_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int32">
- <output-dir compare="Text">int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int32_null">
- <output-dir compare="Text">int32_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int64">
- <output-dir compare="Text">int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int64_null">
- <output-dir compare="Text">int64_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int8">
- <output-dir compare="Text">int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="int8_null">
- <output-dir compare="Text">int8_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="lt_01">
- <output-dir compare="Text">lt_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="lte_01">
- <output-dir compare="Text">lte_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="neq_01">
- <output-dir compare="Text">neq_01</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="aggregate">
+ <compilation-unit name="max_empty_01">
+ <output-dir compare="Text">max_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="max_empty_02">
+ <output-dir compare="Text">max_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="min_empty_01">
+ <output-dir compare="Text">min_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="min_empty_02">
+ <output-dir compare="Text">min_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_avg">
+ <output-dir compare="Text">scalar_avg</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_avg_empty">
+ <output-dir compare="Text">scalar_avg_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_avg_null">
+ <output-dir compare="Text">scalar_avg_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_count">
+ <output-dir compare="Text">scalar_count</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_count_empty">
+ <output-dir compare="Text">scalar_count_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_count_null">
+ <output-dir compare="Text">scalar_count_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_max">
+ <output-dir compare="Text">scalar_max</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_max_empty">
+ <output-dir compare="Text">scalar_max_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_max_null">
+ <output-dir compare="Text">scalar_max_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_min">
+ <output-dir compare="Text">scalar_min</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_min_empty">
+ <output-dir compare="Text">scalar_min_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_min_null">
+ <output-dir compare="Text">scalar_min_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_sum">
+ <output-dir compare="Text">scalar_sum</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_sum_empty">
+ <output-dir compare="Text">scalar_sum_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="scalar_sum_null">
+ <output-dir compare="Text">scalar_sum_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_double">
+ <output-dir compare="Text">sum_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_double_null">
+ <output-dir compare="Text">sum_double_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_empty_01">
+ <output-dir compare="Text">sum_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_empty_02">
+ <output-dir compare="Text">sum_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_float">
+ <output-dir compare="Text">sum_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_float_null">
+ <output-dir compare="Text">sum_float_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int16">
+ <output-dir compare="Text">sum_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int16_null">
+ <output-dir compare="Text">sum_int16_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int32">
+ <output-dir compare="Text">sum_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int32_null">
+ <output-dir compare="Text">sum_int32_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int64">
+ <output-dir compare="Text">sum_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int64_null">
+ <output-dir compare="Text">sum_int64_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int8">
+ <output-dir compare="Text">sum_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_int8_null">
+ <output-dir compare="Text">sum_int8_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_null-with-pred">
+ <output-dir compare="Text">sum_null-with-pred</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate">
+ <compilation-unit name="sum_numeric_null">
+ <output-dir compare="Text">sum_numeric_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="aggregate-sql">
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue531_string_min_max">
+ <output-dir compare="Text">issue531_string_min_max</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="agg_null">
+ <output-dir compare="Text">agg_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="agg_null_rec">
+ <output-dir compare="Text">agg_null_rec</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="agg_null_rec_1">
+ <output-dir compare="Text">agg_null_rec_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="agg_number_rec">
+ <output-dir compare="Text">agg_number_rec</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_mixed">
+ <output-dir compare="Text">avg_mixed</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_mixed">
+ <output-dir compare="Text">sum_mixed</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="min_mixed">
+ <output-dir compare="Text">min_mixed</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="agg_number">
+ <output-dir compare="Text">agg_number</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue425_min_hetero_list_1">
+ <output-dir compare="Text">issue425_min_hetero_list_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue425_min_hetero_list">
+ <output-dir compare="Text">issue425_min_hetero_list</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue425_sum_hetero_list_1">
+ <output-dir compare="Text">issue425_sum_hetero_list_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue425_sum_hetero_list">
+ <output-dir compare="Text">issue425_sum_hetero_list</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="query-issue400">
+ <output-dir compare="Text">query-issue400</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue395">
+ <output-dir compare="Text">issue395</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue412_0">
+ <output-dir compare="Text">issue412_0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="issue412_1">
+ <output-dir compare="Text">issue412_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_double">
+ <output-dir compare="Text">avg_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_double_null">
+ <output-dir compare="Text">avg_double_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_empty_01">
+ <output-dir compare="Text">avg_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_empty_02">
+ <output-dir compare="Text">avg_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_float">
+ <output-dir compare="Text">avg_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_float_null">
+ <output-dir compare="Text">avg_float_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int16">
+ <output-dir compare="Text">avg_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int16_null">
+ <output-dir compare="Text">avg_int16_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int32">
+ <output-dir compare="Text">avg_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int32_null">
+ <output-dir compare="Text">avg_int32_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int64">
+ <output-dir compare="Text">avg_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int64_null">
+ <output-dir compare="Text">avg_int64_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int8">
+ <output-dir compare="Text">avg_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="avg_int8_null">
+ <output-dir compare="Text">avg_int8_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="count_01">
+ <output-dir compare="Text">count_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="count_empty_01">
+ <output-dir compare="Text">count_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="count_empty_02">
+ <output-dir compare="Text">count_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="count_null">
+ <output-dir compare="Text">count_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="max_empty_01">
+ <output-dir compare="Text">max_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="max_empty_02">
+ <output-dir compare="Text">max_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="min_empty_01">
+ <output-dir compare="Text">min_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="min_empty_02">
+ <output-dir compare="Text">min_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_avg">
+ <output-dir compare="Text">scalar_avg</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_avg_empty">
+ <output-dir compare="Text">scalar_avg_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_avg_null">
+ <output-dir compare="Text">scalar_avg_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_count">
+ <output-dir compare="Text">scalar_count</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_count_empty">
+ <output-dir compare="Text">scalar_count_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_count_null">
+ <output-dir compare="Text">scalar_count_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_max">
+ <output-dir compare="Text">scalar_max</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_max_empty">
+ <output-dir compare="Text">scalar_max_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_max_null">
+ <output-dir compare="Text">scalar_max_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_min">
+ <output-dir compare="Text">scalar_min</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_min_empty">
+ <output-dir compare="Text">scalar_min_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_min_null">
+ <output-dir compare="Text">scalar_min_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_sum">
+ <output-dir compare="Text">scalar_sum</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_sum_empty">
+ <output-dir compare="Text">scalar_sum_empty</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="scalar_sum_null">
+ <output-dir compare="Text">scalar_sum_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_double">
+ <output-dir compare="Text">sum_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_double_null">
+ <output-dir compare="Text">sum_double_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_empty_01">
+ <output-dir compare="Text">sum_empty_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_empty_02">
+ <output-dir compare="Text">sum_empty_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_float">
+ <output-dir compare="Text">sum_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_float_null">
+ <output-dir compare="Text">sum_float_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int16">
+ <output-dir compare="Text">sum_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int16_null">
+ <output-dir compare="Text">sum_int16_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int32">
+ <output-dir compare="Text">sum_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int32_null">
+ <output-dir compare="Text">sum_int32_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int64">
+ <output-dir compare="Text">sum_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int64_null">
+ <output-dir compare="Text">sum_int64_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int8">
+ <output-dir compare="Text">sum_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_int8_null">
+ <output-dir compare="Text">sum_int8_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_null-with-pred">
+ <output-dir compare="Text">sum_null-with-pred</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="aggregate-sql">
+ <compilation-unit name="sum_numeric_null">
+ <output-dir compare="Text">sum_numeric_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="boolean">
+ <test-case FilePath="boolean">
+ <compilation-unit name="and_01">
+ <output-dir compare="Text">and_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="boolean">
+ <compilation-unit name="and_null">
+ <output-dir compare="Text">and_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="boolean">
+ <compilation-unit name="and_null_false">
+ <output-dir compare="Text">and_null_false</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="boolean">
+ <compilation-unit name="not_01">
+ <output-dir compare="Text">not_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="comparison">
+ <test-case FilePath="comparison">
+ <compilation-unit name="year_month_duration_order">
+ <output-dir compare="Text">year_month_duration_order</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="datetime_order">
+ <output-dir compare="Text">datetime_order</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="datetime_range">
+ <output-dir compare="Text">datetime_range</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="datetime_tzeq">
+ <output-dir compare="Text">datetime_tzeq</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="double">
+ <output-dir compare="Text">double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="double_gte_01">
+ <output-dir compare="Text">double_gte_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="double_null">
+ <output-dir compare="Text">double_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="eq_01">
+ <output-dir compare="Text">eq_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="float">
+ <output-dir compare="Text">float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="float_null">
+ <output-dir compare="Text">float_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="gt_01">
+ <output-dir compare="Text">gt_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="gte_01">
+ <output-dir compare="Text">gte_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int16">
+ <output-dir compare="Text">int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int16_null">
+ <output-dir compare="Text">int16_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int32">
+ <output-dir compare="Text">int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int32_null">
+ <output-dir compare="Text">int32_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int64">
+ <output-dir compare="Text">int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int64_null">
+ <output-dir compare="Text">int64_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int8">
+ <output-dir compare="Text">int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="int8_null">
+ <output-dir compare="Text">int8_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="lt_01">
+ <output-dir compare="Text">lt_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="lte_01">
+ <output-dir compare="Text">lte_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="neq_01">
+ <output-dir compare="Text">neq_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="comparison">
<compilation-unit name="numeric-comparison_01">
<output-dir compare="Text">numeric-comparison_01</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="comparison">
- <compilation-unit name="string">
- <output-dir compare="Text">string</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="string_null">
- <output-dir compare="Text">string_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_equality">
- <output-dir compare="Text">issue363_equality</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_duration">
- <output-dir compare="Text">issue363_inequality_duration</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_interval">
- <output-dir compare="Text">issue363_inequality_interval</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_point">
- <output-dir compare="Text">issue363_inequality_point</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_line">
- <output-dir compare="Text">issue363_inequality_line</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_polygon">
- <output-dir compare="Text">issue363_inequality_polygon</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_rectangle">
- <output-dir compare="Text">issue363_inequality_rectangle</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="comparison">
- <compilation-unit name="issue363_inequality_circle">
- <output-dir compare="Text">issue363_inequality_circle</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="constructor">
- <test-case FilePath="constructor">
- <compilation-unit name="add-null">
- <output-dir compare="Text">add-null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="boolean_01">
- <output-dir compare="Text">boolean_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="circle_01">
- <output-dir compare="Text">circle_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="date_01">
- <output-dir compare="Text">date_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="datetime_01">
- <output-dir compare="Text">datetime_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="double_01">
- <output-dir compare="Text">double_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="duration_01">
- <output-dir compare="Text">duration_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="duration_02">
- <output-dir compare="Text">duration_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="float_01">
- <output-dir compare="Text">float_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="int_01">
- <output-dir compare="Text">int_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="interval">
- <output-dir compare="Text">interval</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="line_01">
- <output-dir compare="Text">line_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="rectangle_01">
- <output-dir compare="Text">rectangle_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="point_01">
- <output-dir compare="Text">point_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="polygon_01">
- <output-dir compare="Text">polygon_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="primitive-01">
- <output-dir compare="Text">primitive-01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="primitive-02">
- <output-dir compare="Text">primitive-02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="primitive-03">
- <output-dir compare="Text">primitive-03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="primitive-04">
- <output-dir compare="Text">primitive-04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="string_01">
- <output-dir compare="Text">string_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="time_01">
- <output-dir compare="Text">time_01</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="custord">
- <!--
+ <test-case FilePath="comparison">
+ <compilation-unit name="string">
+ <output-dir compare="Text">string</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="string_null">
+ <output-dir compare="Text">string_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_equality">
+ <output-dir compare="Text">issue363_equality</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_duration">
+ <output-dir compare="Text">issue363_inequality_duration</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_interval">
+ <output-dir compare="Text">issue363_inequality_interval</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_point">
+ <output-dir compare="Text">issue363_inequality_point</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_line">
+ <output-dir compare="Text">issue363_inequality_line</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_polygon">
+ <output-dir compare="Text">issue363_inequality_polygon</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_rectangle">
+ <output-dir compare="Text">issue363_inequality_rectangle</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="issue363_inequality_circle">
+ <output-dir compare="Text">issue363_inequality_circle</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="binary">
+ <output-dir compare="Text">binary</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="comparison">
+ <compilation-unit name="binary_null">
+ <output-dir compare="Text">binary_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="constructor">
+ <test-case FilePath="constructor">
+ <compilation-unit name="binary_01">
+ <output-dir compare="Text">binary_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="add-null">
+ <output-dir compare="Text">add-null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="boolean_01">
+ <output-dir compare="Text">boolean_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="circle_01">
+ <output-dir compare="Text">circle_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="date_01">
+ <output-dir compare="Text">date_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="datetime_01">
+ <output-dir compare="Text">datetime_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="double_01">
+ <output-dir compare="Text">double_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="duration_01">
+ <output-dir compare="Text">duration_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="duration_02">
+ <output-dir compare="Text">duration_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="float_01">
+ <output-dir compare="Text">float_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="int_01">
+ <output-dir compare="Text">int_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="interval">
+ <output-dir compare="Text">interval</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="line_01">
+ <output-dir compare="Text">line_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="rectangle_01">
+ <output-dir compare="Text">rectangle_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="point_01">
+ <output-dir compare="Text">point_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="polygon_01">
+ <output-dir compare="Text">polygon_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="primitive-01">
+ <output-dir compare="Text">primitive-01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="primitive-02">
+ <output-dir compare="Text">primitive-02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="primitive-03">
+ <output-dir compare="Text">primitive-03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="primitive-04">
+ <output-dir compare="Text">primitive-04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="string_01">
+ <output-dir compare="Text">string_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="time_01">
+ <output-dir compare="Text">time_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="custord">
+ <!--
<test-case FilePath="custord">
<compilation-unit name="co">
<output-dir compare="Text">co</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_01">
- <output-dir compare="Text">customer_q_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_02">
- <output-dir compare="Text">customer_q_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_03">
- <output-dir compare="Text">customer_q_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_04">
- <output-dir compare="Text">customer_q_04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_05">
- <output-dir compare="Text">customer_q_05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_06">
- <output-dir compare="Text">customer_q_06</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_07">
- <output-dir compare="Text">customer_q_07</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="customer_q_08">
- <output-dir compare="Text">customer_q_08</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_01">
+ <output-dir compare="Text">customer_q_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_02">
+ <output-dir compare="Text">customer_q_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_03">
+ <output-dir compare="Text">customer_q_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_04">
+ <output-dir compare="Text">customer_q_04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_05">
+ <output-dir compare="Text">customer_q_05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_06">
+ <output-dir compare="Text">customer_q_06</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_07">
+ <output-dir compare="Text">customer_q_07</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="customer_q_08">
+ <output-dir compare="Text">customer_q_08</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="custord">
<compilation-unit name="denorm-cust-order_01">
<output-dir compare="Text">denorm-cust-order_01</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="custord">
- <compilation-unit name="denorm-cust-order_02">
- <output-dir compare="Text">denorm-cust-order_02</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="custord">
+ <compilation-unit name="denorm-cust-order_02">
+ <output-dir compare="Text">denorm-cust-order_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="custord">
<compilation-unit name="denorm-cust-order_03">
<output-dir compare="Text">denorm-cust-order_03</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="custord">
<compilation-unit name="freq-clerk">
<output-dir compare="Text">freq-clerk</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="custord">
- <compilation-unit name="join_q_01">
- <output-dir compare="Text">join_q_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="join_q_02">
- <output-dir compare="Text">join_q_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="join_q_03">
- <output-dir compare="Text">join_q_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="join_q_04">
- <output-dir compare="Text">join_q_04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="load-test">
- <output-dir compare="Text">load-test</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="order_q_01">
- <output-dir compare="Text">order_q_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="order_q_02">
- <output-dir compare="Text">order_q_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="order_q_03">
- <output-dir compare="Text">order_q_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="order_q_04">
- <output-dir compare="Text">order_q_04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="order_q_05">
- <output-dir compare="Text">order_q_05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="custord">
- <compilation-unit name="order_q_06">
- <output-dir compare="Text">order_q_06</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="dapd">
- <test-case FilePath="dapd">
- <compilation-unit name="q1">
- <output-dir compare="Text">q1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dapd">
- <compilation-unit name="q2">
- <output-dir compare="Text">q2</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="custord">
+ <compilation-unit name="join_q_01">
+ <output-dir compare="Text">join_q_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="join_q_02">
+ <output-dir compare="Text">join_q_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="join_q_03">
+ <output-dir compare="Text">join_q_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="join_q_04">
+ <output-dir compare="Text">join_q_04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="load-test">
+ <output-dir compare="Text">load-test</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="order_q_01">
+ <output-dir compare="Text">order_q_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="order_q_02">
+ <output-dir compare="Text">order_q_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="order_q_03">
+ <output-dir compare="Text">order_q_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="order_q_04">
+ <output-dir compare="Text">order_q_04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="order_q_05">
+ <output-dir compare="Text">order_q_05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="custord">
+ <compilation-unit name="order_q_06">
+ <output-dir compare="Text">order_q_06</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="dapd">
+ <test-case FilePath="dapd">
+ <compilation-unit name="q1">
+ <output-dir compare="Text">q1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dapd">
+ <compilation-unit name="q2">
+ <output-dir compare="Text">q2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="dapd">
<compilation-unit name="q3">
<output-dir compare="Text">q3</output-dir>
</compilation-unit>
</test-case>
-->
- </test-group>
- <test-group name="dml">
- <test-case FilePath="dml">
- <compilation-unit name="compact-dataset-and-its-indexes">
- <output-dir compare="Text">compact-dataset-and-its-indexes</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="using-constant-merge-policy">
- <output-dir compare="Text">using-constant-merge-policy</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="using-prefix-merge-policy">
- <output-dir compare="Text">using-prefix-merge-policy</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="using-correlated-prefix-merge-policy">
- <output-dir compare="Text">using-correlated-prefix-merge-policy</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="using-no-merge-policy">
- <output-dir compare="Text">using-no-merge-policy</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="query-issue382">
- <output-dir compare="Text">query-issue382</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="query-issue433">
- <output-dir compare="Text">query-issue433</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="query-issue288">
- <output-dir compare="Text">query-issue288</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="query-issue205">
- <output-dir compare="Text">query-issue205</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="delete-from-loaded-dataset-with-index">
- <output-dir compare="Text">delete-from-loaded-dataset-with-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="delete-from-loaded-dataset">
- <output-dir compare="Text">delete-from-loaded-dataset</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="delete-syntax-change">
- <output-dir compare="Text">delete-syntax-change</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="drop-empty-secondary-indexes">
- <output-dir compare="Text">drop-empty-secondary-indexes</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="drop-index">
- <output-dir compare="Text">drop-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="create-drop-cltype">
- <output-dir compare="Text">create-drop-cltype</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="create-drop-opntype">
- <output-dir compare="Text">create-drop-opntype</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="empty-load-with-index">
- <output-dir compare="Text">empty-load-with-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-into-empty-dataset">
- <output-dir compare="Text">insert-into-empty-dataset</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-into-empty-dataset-with-index">
- <output-dir compare="Text">insert-into-empty-dataset-with-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-syntax">
- <output-dir compare="Text">insert-syntax</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-and-scan-dataset">
- <output-dir compare="Text">insert-and-scan-dataset</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-and-scan-dataset-with-index">
- <output-dir compare="Text">insert-and-scan-dataset-with-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-and-scan-joined-datasets">
- <output-dir compare="Text">insert-and-scan-joined-datasets</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-into-loaded-dataset-with-index_01">
- <output-dir compare="Text">insert-into-loaded-dataset-with-index_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-into-loaded-dataset-with-index_02">
- <output-dir compare="Text">insert-into-loaded-dataset-with-index_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-into-loaded-dataset_01">
- <output-dir compare="Text">insert-into-loaded-dataset_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-into-loaded-dataset_02">
- <output-dir compare="Text">insert-into-loaded-dataset_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-src-dst-01">
- <output-dir compare="Text">insert-src-dst-01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert">
- <output-dir compare="Text">insert</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert-duplicated-keys">
- <output-dir compare="Text">insert-duplicated-keys</output-dir>
- <expected-error>edu.uci.ics.hyracks.storage.am.common.exceptions.TreeIndexDuplicateKeyException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="insert_less_nc">
- <output-dir compare="Text">insert_less_nc</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ </test-group>
+ <test-group name="dml">
+ <test-case FilePath="dml">
+ <compilation-unit name="compact-dataset-and-its-indexes">
+ <output-dir compare="Text">compact-dataset-and-its-indexes</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="using-constant-merge-policy">
+ <output-dir compare="Text">using-constant-merge-policy</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="using-prefix-merge-policy">
+ <output-dir compare="Text">using-prefix-merge-policy</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="using-correlated-prefix-merge-policy">
+ <output-dir compare="Text">using-correlated-prefix-merge-policy</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="using-no-merge-policy">
+ <output-dir compare="Text">using-no-merge-policy</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="query-issue382">
+ <output-dir compare="Text">query-issue382</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="query-issue433">
+ <output-dir compare="Text">query-issue433</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="query-issue288">
+ <output-dir compare="Text">query-issue288</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="query-issue205">
+ <output-dir compare="Text">query-issue205</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="delete-from-loaded-dataset-with-index">
+ <output-dir compare="Text">delete-from-loaded-dataset-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="delete-from-loaded-dataset">
+ <output-dir compare="Text">delete-from-loaded-dataset</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="delete-syntax-change">
+ <output-dir compare="Text">delete-syntax-change</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="drop-empty-secondary-indexes">
+ <output-dir compare="Text">drop-empty-secondary-indexes</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="drop-index">
+ <output-dir compare="Text">drop-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="create-drop-cltype">
+ <output-dir compare="Text">create-drop-cltype</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="create-drop-opntype">
+ <output-dir compare="Text">create-drop-opntype</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="empty-load-with-index">
+ <output-dir compare="Text">empty-load-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-into-empty-dataset">
+ <output-dir compare="Text">insert-into-empty-dataset</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-into-empty-dataset-with-index">
+ <output-dir compare="Text">insert-into-empty-dataset-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-syntax">
+ <output-dir compare="Text">insert-syntax</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-and-scan-dataset">
+ <output-dir compare="Text">insert-and-scan-dataset</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-and-scan-dataset-with-index">
+ <output-dir compare="Text">insert-and-scan-dataset-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-and-scan-joined-datasets">
+ <output-dir compare="Text">insert-and-scan-joined-datasets</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-into-loaded-dataset-with-index_01">
+ <output-dir compare="Text">insert-into-loaded-dataset-with-index_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-into-loaded-dataset-with-index_02">
+ <output-dir compare="Text">insert-into-loaded-dataset-with-index_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-into-loaded-dataset_01">
+ <output-dir compare="Text">insert-into-loaded-dataset_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-into-loaded-dataset_02">
+ <output-dir compare="Text">insert-into-loaded-dataset_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-src-dst-01">
+ <output-dir compare="Text">insert-src-dst-01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert">
+ <output-dir compare="Text">insert</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert-duplicated-keys">
+ <output-dir compare="Text">insert-duplicated-keys</output-dir>
+ <expected-error>edu.uci.ics.hyracks.storage.am.common.exceptions.TreeIndexDuplicateKeyException
+ </expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="insert_less_nc">
+ <output-dir compare="Text">insert_less_nc</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="dml">
<compilation-unit name="load-from-hdfs">
<output-dir compare="Text">load-from-hdfs</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="dml">
- <compilation-unit name="load-with-autogenerated-pk_txt_01">
- <output-dir compare="Text">load-with-autogenerated-pk_txt_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-autogenerated-pk_adm_01">
- <output-dir compare="Text">load-with-autogenerated-pk_adm_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-autogenerated-pk_adm_02">
- <output-dir compare="Text">load-with-autogenerated-pk_adm_02</output-dir>
- <expected-error>edu.uci.ics.asterix.runtime.operators.file.ADMDataParser.ParseException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-autogenerated-pk_csv_01">
- <output-dir compare="Text">load-with-autogenerated-pk_csv_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-autogenerated-pk_csv_02">
- <output-dir compare="Text">load-with-autogenerated-pk_csv_02</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-index">
- <output-dir compare="Text">load-with-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-ngram-index">
- <output-dir compare="Text">load-with-ngram-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-rtree-index">
- <output-dir compare="Text">load-with-rtree-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="load-with-word-index">
- <output-dir compare="Text">load-with-word-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-c2o-recursive">
- <output-dir compare="Text">opentype-c2o-recursive</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-c2o">
- <output-dir compare="Text">opentype-c2o</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-closed-optional">
- <output-dir compare="Text">opentype-closed-optional</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-insert">
- <output-dir compare="Text">opentype-insert</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-insert2">
- <output-dir compare="Text">opentype-insert2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-noexpand">
- <output-dir compare="Text">opentype-noexpand</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-o2c-recursive">
- <output-dir compare="Text">opentype-o2c-recursive</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-o2c">
- <output-dir compare="Text">opentype-o2c</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="opentype-o2o">
- <output-dir compare="Text">opentype-o2o</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-btree-secondary-index-nullable">
- <output-dir compare="Text">scan-delete-btree-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-rtree-secondary-index-nullable">
- <output-dir compare="Text">scan-delete-rtree-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-rtree-secondary-index">
- <output-dir compare="Text">scan-delete-rtree-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-btree-secondary-index-nullable">
- <output-dir compare="Text">scan-insert-btree-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-rtree-secondary-index-nullable">
- <output-dir compare="Text">scan-insert-rtree-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-rtree-secondary-index">
- <output-dir compare="Text">scan-insert-rtree-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index">
- <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-inverted-index-word-secondary-index">
- <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-nullable">
- <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-insert-inverted-index-word-secondary-index-nullable">
- <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index">
- <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-inverted-index-word-secondary-index">
- <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index-nullable">
- <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="dml">
- <compilation-unit name="scan-delete-inverted-index-word-secondary-index-nullable">
- <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="employee">
- <test-case FilePath="employee">
- <compilation-unit name="q_01">
- <output-dir compare="Text">q_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="employee">
- <compilation-unit name="q_02">
- <output-dir compare="Text">q_02</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="failure">
- <!--
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-autogenerated-pk_txt_01">
+ <output-dir compare="Text">load-with-autogenerated-pk_txt_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-autogenerated-pk_adm_01">
+ <output-dir compare="Text">load-with-autogenerated-pk_adm_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-autogenerated-pk_adm_02">
+ <output-dir compare="Text">load-with-autogenerated-pk_adm_02</output-dir>
+ <expected-error>edu.uci.ics.asterix.runtime.operators.file.ADMDataParser.ParseException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-autogenerated-pk_csv_01">
+ <output-dir compare="Text">load-with-autogenerated-pk_csv_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-autogenerated-pk_csv_02">
+ <output-dir compare="Text">load-with-autogenerated-pk_csv_02</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-index">
+ <output-dir compare="Text">load-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-ngram-index">
+ <output-dir compare="Text">load-with-ngram-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-rtree-index">
+ <output-dir compare="Text">load-with-rtree-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="load-with-word-index">
+ <output-dir compare="Text">load-with-word-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-c2o-recursive">
+ <output-dir compare="Text">opentype-c2o-recursive</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-c2o">
+ <output-dir compare="Text">opentype-c2o</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-closed-optional">
+ <output-dir compare="Text">opentype-closed-optional</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-insert">
+ <output-dir compare="Text">opentype-insert</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-insert2">
+ <output-dir compare="Text">opentype-insert2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-noexpand">
+ <output-dir compare="Text">opentype-noexpand</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-o2c-recursive">
+ <output-dir compare="Text">opentype-o2c-recursive</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-o2c">
+ <output-dir compare="Text">opentype-o2c</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="opentype-o2o">
+ <output-dir compare="Text">opentype-o2o</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-btree-secondary-index-nullable">
+ <output-dir compare="Text">scan-delete-btree-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-rtree-secondary-index-nullable">
+ <output-dir compare="Text">scan-delete-rtree-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-rtree-secondary-index">
+ <output-dir compare="Text">scan-delete-rtree-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-btree-secondary-index-nullable">
+ <output-dir compare="Text">scan-insert-btree-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-rtree-secondary-index-nullable">
+ <output-dir compare="Text">scan-insert-rtree-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-rtree-secondary-index">
+ <output-dir compare="Text">scan-insert-rtree-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index">
+ <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-inverted-index-word-secondary-index">
+ <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-nullable">
+ <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-insert-inverted-index-word-secondary-index-nullable">
+ <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index">
+ <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-inverted-index-word-secondary-index">
+ <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index-nullable">
+ <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="scan-delete-inverted-index-word-secondary-index-nullable">
+ <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="employee">
+ <test-case FilePath="employee">
+ <compilation-unit name="q_01">
+ <output-dir compare="Text">q_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="employee">
+ <compilation-unit name="q_02">
+ <output-dir compare="Text">q_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="failure">
+ <!--
<test-case FilePath="failure">
<compilation-unit name="q1_pricing_summary_report_failure">
<output-dir compare="Text">q1_pricing_summary_report_failure</output-dir>
</compilation-unit>
</test-case>
-->
- </test-group>
- <!--
+ </test-group>
+ <!--
<test-group name="flwor">
<test-case FilePath="flwor">
<compilation-unit name="for01">
@@ -2082,3053 +2099,3058 @@
</test-case>
</test-group>
-->
- <test-group name="fuzzyjoin">
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-1_1">
- <output-dir compare="Text">dblp-1_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-1_2.1.1">
- <output-dir compare="Text">dblp-1_2.1.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-1_2.1">
- <output-dir compare="Text">dblp-1_2.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-1_2">
- <output-dir compare="Text">dblp-1_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2.1_5.3.1">
- <output-dir compare="Text">dblp-2.1_5.3.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_1">
- <output-dir compare="Text">dblp-2_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_2">
- <output-dir compare="Text">dblp-2_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2.2">
- <output-dir compare="Text">dblp-2.2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_3">
- <output-dir compare="Text">dblp-2_3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_4">
- <output-dir compare="Text">dblp-2_4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_5.1">
- <output-dir compare="Text">dblp-2_5.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_5.2">
- <output-dir compare="Text">dblp-2_5.2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_5.3.1">
- <output-dir compare="Text">dblp-2_5.3.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_5.3">
- <output-dir compare="Text">dblp-2_5.3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-2_5">
- <output-dir compare="Text">dblp-2_5</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-3_1.1">
- <output-dir compare="Text">dblp-3_1.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-3_1.2">
- <output-dir compare="Text">dblp-3_1.2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-3_1">
- <output-dir compare="Text">dblp-3_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-aqlplus_1">
- <output-dir compare="Text">dblp-aqlplus_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-aqlplus_2">
- <output-dir compare="Text">dblp-aqlplus_2</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_1">
- <output-dir compare="Text">dblp-csx-2_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_2">
- <output-dir compare="Text">dblp-csx-2_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_3">
- <output-dir compare="Text">dblp-csx-2_3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_4">
- <output-dir compare="Text">dblp-csx-2_4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_5.1">
- <output-dir compare="Text">dblp-csx-2_5.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_5.2">
- <output-dir compare="Text">dblp-csx-2_5.2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_5.3.1">
- <output-dir compare="Text">dblp-csx-2_5.3.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_5.3">
- <output-dir compare="Text">dblp-csx-2_5.3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-2_5">
- <output-dir compare="Text">dblp-csx-2_5</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_1">
- <output-dir compare="Text">dblp-csx-3_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_2">
- <output-dir compare="Text">dblp-csx-3_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_3">
- <output-dir compare="Text">dblp-csx-3_3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_4">
- <output-dir compare="Text">dblp-csx-3_4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5.1">
- <output-dir compare="Text">dblp-csx-3_5.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5.2">
- <output-dir compare="Text">dblp-csx-3_5.2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5.3.1">
- <output-dir compare="Text">dblp-csx-3_5.3.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5.3">
- <output-dir compare="Text">dblp-csx-3_5.3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5.4.1">
- <output-dir compare="Text">dblp-csx-3_5.4.1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5.4">
- <output-dir compare="Text">dblp-csx-3_5.4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-3_5">
- <output-dir compare="Text">dblp-csx-3_5</output-dir>
- </compilation-unit>
- </test-case>
- -->
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-aqlplus_1">
- <output-dir compare="Text">dblp-csx-aqlplus_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-aqlplus_2">
- <output-dir compare="Text">dblp-csx-aqlplus_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-aqlplus_3">
- <output-dir compare="Text">dblp-csx-aqlplus_3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-csx-dblp-aqlplus_1">
- <output-dir compare="Text">dblp-csx-dblp-aqlplus_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="dblp-lookup_1">
- <output-dir compare="Text">dblp-lookup_1</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-group name="fuzzyjoin">
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-1_1">
+ <output-dir compare="Text">dblp-1_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-1_2.1.1">
+ <output-dir compare="Text">dblp-1_2.1.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-1_2.1">
+ <output-dir compare="Text">dblp-1_2.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-1_2">
+ <output-dir compare="Text">dblp-1_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2.1_5.3.1">
+ <output-dir compare="Text">dblp-2.1_5.3.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_1">
+ <output-dir compare="Text">dblp-2_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_2">
+ <output-dir compare="Text">dblp-2_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2.2">
+ <output-dir compare="Text">dblp-2.2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_3">
+ <output-dir compare="Text">dblp-2_3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_4">
+ <output-dir compare="Text">dblp-2_4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_5.1">
+ <output-dir compare="Text">dblp-2_5.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_5.2">
+ <output-dir compare="Text">dblp-2_5.2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_5.3.1">
+ <output-dir compare="Text">dblp-2_5.3.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_5.3">
+ <output-dir compare="Text">dblp-2_5.3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-2_5">
+ <output-dir compare="Text">dblp-2_5</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-3_1.1">
+ <output-dir compare="Text">dblp-3_1.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-3_1.2">
+ <output-dir compare="Text">dblp-3_1.2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-3_1">
+ <output-dir compare="Text">dblp-3_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-aqlplus_1">
+ <output-dir compare="Text">dblp-aqlplus_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-aqlplus_2">
+ <output-dir compare="Text">dblp-aqlplus_2</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_1">
+ <output-dir compare="Text">dblp-csx-2_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_2">
+ <output-dir compare="Text">dblp-csx-2_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_3">
+ <output-dir compare="Text">dblp-csx-2_3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_4">
+ <output-dir compare="Text">dblp-csx-2_4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_5.1">
+ <output-dir compare="Text">dblp-csx-2_5.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_5.2">
+ <output-dir compare="Text">dblp-csx-2_5.2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_5.3.1">
+ <output-dir compare="Text">dblp-csx-2_5.3.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_5.3">
+ <output-dir compare="Text">dblp-csx-2_5.3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-2_5">
+ <output-dir compare="Text">dblp-csx-2_5</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_1">
+ <output-dir compare="Text">dblp-csx-3_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_2">
+ <output-dir compare="Text">dblp-csx-3_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_3">
+ <output-dir compare="Text">dblp-csx-3_3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_4">
+ <output-dir compare="Text">dblp-csx-3_4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5.1">
+ <output-dir compare="Text">dblp-csx-3_5.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5.2">
+ <output-dir compare="Text">dblp-csx-3_5.2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5.3.1">
+ <output-dir compare="Text">dblp-csx-3_5.3.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5.3">
+ <output-dir compare="Text">dblp-csx-3_5.3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5.4.1">
+ <output-dir compare="Text">dblp-csx-3_5.4.1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5.4">
+ <output-dir compare="Text">dblp-csx-3_5.4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-3_5">
+ <output-dir compare="Text">dblp-csx-3_5</output-dir>
+ </compilation-unit>
+ </test-case>
+ -->
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-aqlplus_1">
+ <output-dir compare="Text">dblp-csx-aqlplus_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-aqlplus_2">
+ <output-dir compare="Text">dblp-csx-aqlplus_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-aqlplus_3">
+ <output-dir compare="Text">dblp-csx-aqlplus_3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-csx-dblp-aqlplus_1">
+ <output-dir compare="Text">dblp-csx-dblp-aqlplus_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="dblp-lookup_1">
+ <output-dir compare="Text">dblp-lookup_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="fuzzyjoin">
<compilation-unit name="dblp-splits-3_1">
<output-dir compare="Text">dblp-splits-3_1</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="fuzzyjoin">
- <compilation-unit name="opentype">
- <output-dir compare="Text">opentype</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="index-join">
- <test-case FilePath="index-join">
- <compilation-unit name="btree-primary-equi-join">
- <output-dir compare="Text">btree-primary-equi-join</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-join">
- <compilation-unit name="btree-secondary-equi-join">
- <output-dir compare="Text">btree-secondary-equi-join</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-join">
- <compilation-unit name="rtree-spatial-intersect-point">
- <output-dir compare="Text">rtree-spatial-intersect-point</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="index-selection">
- <test-case FilePath="index-selection">
- <compilation-unit name="btree-index-composite-key">
- <output-dir compare="Text">btree-index-composite-key</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="btree-index-composite-key-mixed-intervals">
- <output-dir compare="Text">btree-index-composite-key-mixed-intervals</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="btree-index-rewrite-multiple">
- <output-dir compare="Text">btree-index-rewrite-multiple</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="cust-index-age-nullable">
- <output-dir compare="Text">cust-index-age-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ngram-contains">
- <output-dir compare="Text">inverted-index-ngram-contains</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ngram-edit-distance-panic">
- <output-dir compare="Text">inverted-index-ngram-edit-distance-panic</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ngram-edit-distance">
- <output-dir compare="Text">inverted-index-ngram-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ngram-edit-distance-word-tokens">
- <output-dir compare="Text">inverted-index-ngram-edit-distance-word-tokens</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ngram-jaccard">
- <output-dir compare="Text">inverted-index-ngram-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ngram-edit-distance-contains">
- <output-dir compare="Text">inverted-index-ngram-edit-distance-contains</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-olist-edit-distance-panic">
- <output-dir compare="Text">inverted-index-olist-edit-distance-panic</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-olist-edit-distance">
- <output-dir compare="Text">inverted-index-olist-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-olist-jaccard">
- <output-dir compare="Text">inverted-index-olist-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-ulist-jaccard">
- <output-dir compare="Text">inverted-index-ulist-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-word-contains">
- <output-dir compare="Text">inverted-index-word-contains</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="inverted-index-word-jaccard">
- <output-dir compare="Text">inverted-index-word-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="orders-index-custkey-conjunctive-open">
- <output-dir compare="Text">orders-index-custkey-conjunctive-open</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="orders-index-custkey-conjunctive">
- <output-dir compare="Text">orders-index-custkey-conjunctive</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="orders-index-custkey-open">
- <output-dir compare="Text">orders-index-custkey-open</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="orders-index-custkey">
- <output-dir compare="Text">orders-index-custkey</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="range-search-open">
- <output-dir compare="Text">range-search-open</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="range-search">
- <output-dir compare="Text">range-search</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="rtree-secondary-index-nullable">
- <output-dir compare="Text">rtree-secondary-index-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="rtree-secondary-index-open">
- <output-dir compare="Text">rtree-secondary-index-open</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="rtree-secondary-index">
- <output-dir compare="Text">rtree-secondary-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="rtree-secondary-index-circular-query">
- <output-dir compare="Text">rtree-secondary-index-circular-query</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-selection">
- <compilation-unit name="disjunctive-predicate-1">
- <output-dir compare="Text">disjunctive-predicate-1</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="inverted-index-join">
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="ngram-edit-distance">
- <output-dir compare="Text">ngram-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="ngram-edit-distance-inline">
- <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="ngram-jaccard">
- <output-dir compare="Text">ngram-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="ngram-jaccard-inline">
- <output-dir compare="Text">ngram-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="olist-edit-distance">
- <output-dir compare="Text">olist-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="olist-edit-distance-inline">
- <output-dir compare="Text">olist-edit-distance-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="olist-jaccard">
- <output-dir compare="Text">olist-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="olist-jaccard-inline">
- <output-dir compare="Text">olist-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="ulist-jaccard">
- <output-dir compare="Text">ulist-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="ulist-jaccard-inline">
- <output-dir compare="Text">ulist-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="word-jaccard">
- <output-dir compare="Text">word-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join">
- <compilation-unit name="word-jaccard-inline">
- <output-dir compare="Text">word-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="inverted-index-join-noeqjoin">
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="ngram-edit-distance">
- <output-dir compare="Text">ngram-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="ngram-edit-distance-inline">
- <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="ngram-jaccard">
- <output-dir compare="Text">ngram-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="ngram-jaccard-inline">
- <output-dir compare="Text">ngram-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="olist-edit-distance">
- <output-dir compare="Text">olist-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="olist-edit-distance-inline">
- <output-dir compare="Text">olist-edit-distance-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="olist-jaccard">
- <output-dir compare="Text">olist-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="olist-jaccard-inline">
- <output-dir compare="Text">olist-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="ulist-jaccard">
- <output-dir compare="Text">ulist-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="ulist-jaccard-inline">
- <output-dir compare="Text">ulist-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="word-jaccard">
- <output-dir compare="Text">word-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="inverted-index-join-noeqjoin">
- <compilation-unit name="word-jaccard-inline">
- <output-dir compare="Text">word-jaccard-inline</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="list">
- <test-case FilePath="list">
- <compilation-unit name="any-collection-member_01">
- <output-dir compare="Text">any-collection-member_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="get-item_01">
- <output-dir compare="Text">get-item_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="get-item_02">
- <output-dir compare="Text">get-item_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="len_01">
- <output-dir compare="Text">len_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="len_null_01">
- <output-dir compare="Text">len_null_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="listify_01">
- <output-dir compare="Text">listify_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="listify_02">
- <output-dir compare="Text">listify_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="listify_03">
- <output-dir compare="Text">listify_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="ordered-list-constructor_01">
- <output-dir compare="Text">ordered-list-constructor_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="ordered-list-constructor_02">
- <output-dir compare="Text">ordered-list-constructor_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="ordered-list-constructor_03">
- <output-dir compare="Text">ordered-list-constructor_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="scan-collection_01">
- <output-dir compare="Text">scan-collection_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="union_01">
- <output-dir compare="Text">union_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="union_02">
- <output-dir compare="Text">union_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="unordered-list-constructor_01">
- <output-dir compare="Text">unordered-list-constructor_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="unordered-list-constructor_02">
- <output-dir compare="Text">unordered-list-constructor_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="unordered-list-constructor_03">
- <output-dir compare="Text">unordered-list-constructor_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="list">
- <compilation-unit name="query-issue428">
- <output-dir compare="Text">query-issue428</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="misc">
- <test-case FilePath="misc">
- <compilation-unit name="partition-by-nonexistent-field">
- <output-dir compare="Text">partition-by-nonexistent-field</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="float_01">
- <output-dir compare="Text">float_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="flushtest">
- <output-dir compare="Text">flushtest</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="groupby-orderby-count">
- <output-dir compare="Text">groupby-orderby-count</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="ifthenelse_01">
- <output-dir compare="Text">ifthenelse_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="is-null_01">
- <output-dir compare="Text">is-null_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="nested-loop-join_01">
- <output-dir compare="Text">nested-loop-join_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="query_issue267">
- <output-dir compare="Text">query_issue267</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="stable_sort">
- <output-dir compare="Text">stable_sort</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="fuzzyjoin">
+ <compilation-unit name="opentype">
+ <output-dir compare="Text">opentype</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="index-join">
+ <test-case FilePath="index-join">
+ <compilation-unit name="btree-primary-equi-join">
+ <output-dir compare="Text">btree-primary-equi-join</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-join">
+ <compilation-unit name="btree-secondary-equi-join">
+ <output-dir compare="Text">btree-secondary-equi-join</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-join">
+ <compilation-unit name="rtree-spatial-intersect-point">
+ <output-dir compare="Text">rtree-spatial-intersect-point</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="index-selection">
+ <test-case FilePath="index-selection">
+ <compilation-unit name="btree-index-composite-key">
+ <output-dir compare="Text">btree-index-composite-key</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="btree-index-composite-key-mixed-intervals">
+ <output-dir compare="Text">btree-index-composite-key-mixed-intervals</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="btree-index-rewrite-multiple">
+ <output-dir compare="Text">btree-index-rewrite-multiple</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="cust-index-age-nullable">
+ <output-dir compare="Text">cust-index-age-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ngram-contains">
+ <output-dir compare="Text">inverted-index-ngram-contains</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ngram-edit-distance-panic">
+ <output-dir compare="Text">inverted-index-ngram-edit-distance-panic</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ngram-edit-distance">
+ <output-dir compare="Text">inverted-index-ngram-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ngram-edit-distance-word-tokens">
+ <output-dir compare="Text">inverted-index-ngram-edit-distance-word-tokens</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ngram-jaccard">
+ <output-dir compare="Text">inverted-index-ngram-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ngram-edit-distance-contains">
+ <output-dir compare="Text">inverted-index-ngram-edit-distance-contains</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-olist-edit-distance-panic">
+ <output-dir compare="Text">inverted-index-olist-edit-distance-panic</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-olist-edit-distance">
+ <output-dir compare="Text">inverted-index-olist-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-olist-jaccard">
+ <output-dir compare="Text">inverted-index-olist-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-ulist-jaccard">
+ <output-dir compare="Text">inverted-index-ulist-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-word-contains">
+ <output-dir compare="Text">inverted-index-word-contains</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="inverted-index-word-jaccard">
+ <output-dir compare="Text">inverted-index-word-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="orders-index-custkey-conjunctive-open">
+ <output-dir compare="Text">orders-index-custkey-conjunctive-open</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="orders-index-custkey-conjunctive">
+ <output-dir compare="Text">orders-index-custkey-conjunctive</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="orders-index-custkey-open">
+ <output-dir compare="Text">orders-index-custkey-open</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="orders-index-custkey">
+ <output-dir compare="Text">orders-index-custkey</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="range-search-open">
+ <output-dir compare="Text">range-search-open</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="range-search">
+ <output-dir compare="Text">range-search</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="rtree-secondary-index-nullable">
+ <output-dir compare="Text">rtree-secondary-index-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="rtree-secondary-index-open">
+ <output-dir compare="Text">rtree-secondary-index-open</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="rtree-secondary-index">
+ <output-dir compare="Text">rtree-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="rtree-secondary-index-circular-query">
+ <output-dir compare="Text">rtree-secondary-index-circular-query</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-selection">
+ <compilation-unit name="disjunctive-predicate-1">
+ <output-dir compare="Text">disjunctive-predicate-1</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="inverted-index-join">
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="ngram-edit-distance">
+ <output-dir compare="Text">ngram-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="ngram-edit-distance-inline">
+ <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="ngram-jaccard">
+ <output-dir compare="Text">ngram-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="ngram-jaccard-inline">
+ <output-dir compare="Text">ngram-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="olist-edit-distance">
+ <output-dir compare="Text">olist-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="olist-edit-distance-inline">
+ <output-dir compare="Text">olist-edit-distance-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="olist-jaccard">
+ <output-dir compare="Text">olist-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="olist-jaccard-inline">
+ <output-dir compare="Text">olist-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="ulist-jaccard">
+ <output-dir compare="Text">ulist-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="ulist-jaccard-inline">
+ <output-dir compare="Text">ulist-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="word-jaccard">
+ <output-dir compare="Text">word-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join">
+ <compilation-unit name="word-jaccard-inline">
+ <output-dir compare="Text">word-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="inverted-index-join-noeqjoin">
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="ngram-edit-distance">
+ <output-dir compare="Text">ngram-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="ngram-edit-distance-inline">
+ <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="ngram-jaccard">
+ <output-dir compare="Text">ngram-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="ngram-jaccard-inline">
+ <output-dir compare="Text">ngram-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="olist-edit-distance">
+ <output-dir compare="Text">olist-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="olist-edit-distance-inline">
+ <output-dir compare="Text">olist-edit-distance-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="olist-jaccard">
+ <output-dir compare="Text">olist-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="olist-jaccard-inline">
+ <output-dir compare="Text">olist-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="ulist-jaccard">
+ <output-dir compare="Text">ulist-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="ulist-jaccard-inline">
+ <output-dir compare="Text">ulist-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="word-jaccard">
+ <output-dir compare="Text">word-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="inverted-index-join-noeqjoin">
+ <compilation-unit name="word-jaccard-inline">
+ <output-dir compare="Text">word-jaccard-inline</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="list">
+ <test-case FilePath="list">
+ <compilation-unit name="any-collection-member_01">
+ <output-dir compare="Text">any-collection-member_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="get-item_01">
+ <output-dir compare="Text">get-item_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="get-item_02">
+ <output-dir compare="Text">get-item_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="len_01">
+ <output-dir compare="Text">len_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="len_null_01">
+ <output-dir compare="Text">len_null_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="listify_01">
+ <output-dir compare="Text">listify_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="listify_02">
+ <output-dir compare="Text">listify_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="listify_03">
+ <output-dir compare="Text">listify_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="ordered-list-constructor_01">
+ <output-dir compare="Text">ordered-list-constructor_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="ordered-list-constructor_02">
+ <output-dir compare="Text">ordered-list-constructor_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="ordered-list-constructor_03">
+ <output-dir compare="Text">ordered-list-constructor_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="scan-collection_01">
+ <output-dir compare="Text">scan-collection_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="union_01">
+ <output-dir compare="Text">union_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="union_02">
+ <output-dir compare="Text">union_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="unordered-list-constructor_01">
+ <output-dir compare="Text">unordered-list-constructor_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="unordered-list-constructor_02">
+ <output-dir compare="Text">unordered-list-constructor_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="unordered-list-constructor_03">
+ <output-dir compare="Text">unordered-list-constructor_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="list">
+ <compilation-unit name="query-issue428">
+ <output-dir compare="Text">query-issue428</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="misc">
+ <test-case FilePath="misc">
+ <compilation-unit name="partition-by-nonexistent-field">
+ <output-dir compare="Text">partition-by-nonexistent-field</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="float_01">
+ <output-dir compare="Text">float_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="flushtest">
+ <output-dir compare="Text">flushtest</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="groupby-orderby-count">
+ <output-dir compare="Text">groupby-orderby-count</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="ifthenelse_01">
+ <output-dir compare="Text">ifthenelse_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="is-null_01">
+ <output-dir compare="Text">is-null_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="nested-loop-join_01">
+ <output-dir compare="Text">nested-loop-join_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="query_issue267">
+ <output-dir compare="Text">query_issue267</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="stable_sort">
+ <output-dir compare="Text">stable_sort</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="misc">
<compilation-unit name="range_01">
<output-dir compare="Text">range_01</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="misc">
<compilation-unit name="tid_01">
<output-dir compare="Text">tid_01</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="misc">
- <compilation-unit name="year_01">
- <output-dir compare="Text">year_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="string_eq_01">
- <output-dir compare="Text">string_eq_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="misc">
- <compilation-unit name="prefix-search">
- <output-dir compare="Text">prefix-search</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="nestrecords">
- <test-case FilePath="nestrecords">
- <compilation-unit name="nestrecord">
- <output-dir compare="Text">nestrecord</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="numeric">
- <test-case FilePath="numeric">
- <compilation-unit name="caret0">
- <output-dir compare="Text">caret0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="abs0">
- <output-dir compare="Text">abs0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="abs1">
- <output-dir compare="Text">abs1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="abs2">
- <output-dir compare="Text">abs2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="abs3">
- <output-dir compare="Text">abs3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="abs4">
- <output-dir compare="Text">abs4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="add_double">
- <output-dir compare="Text">add_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="add_float">
- <output-dir compare="Text">add_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="add_int16">
- <output-dir compare="Text">add_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="add_int32">
- <output-dir compare="Text">add_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="add_int64">
- <output-dir compare="Text">add_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="add_int8">
- <output-dir compare="Text">add_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="ceiling0">
- <output-dir compare="Text">ceiling0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="ceiling1">
- <output-dir compare="Text">ceiling1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="ceiling2">
- <output-dir compare="Text">ceiling2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="ceiling3">
- <output-dir compare="Text">ceiling3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="ceiling4">
- <output-dir compare="Text">ceiling4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="divide_double">
- <output-dir compare="Text">divide_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="divide_float">
- <output-dir compare="Text">divide_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="divide_int16">
- <output-dir compare="Text">divide_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="divide_int32">
- <output-dir compare="Text">divide_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="divide_int64">
- <output-dir compare="Text">divide_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="divide_int8">
- <output-dir compare="Text">divide_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="floor0">
- <output-dir compare="Text">floor0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="floor1">
- <output-dir compare="Text">floor1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="floor2">
- <output-dir compare="Text">floor2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="floor3">
- <output-dir compare="Text">floor3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="floor4">
- <output-dir compare="Text">floor4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="multiply_double">
- <output-dir compare="Text">multiply_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="multiply_float">
- <output-dir compare="Text">multiply_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="multiply_int16">
- <output-dir compare="Text">multiply_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="multiply_int32">
- <output-dir compare="Text">multiply_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="multiply_int64">
- <output-dir compare="Text">multiply_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="multiply_int8">
- <output-dir compare="Text">multiply_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even0">
- <output-dir compare="Text">round-half-to-even0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even1">
- <output-dir compare="Text">round-half-to-even1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even2">
- <output-dir compare="Text">round-half-to-even2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even20">
- <output-dir compare="Text">round-half-to-even20</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even21">
- <output-dir compare="Text">round-half-to-even21</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even22">
- <output-dir compare="Text">round-half-to-even22</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even23">
- <output-dir compare="Text">round-half-to-even23</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even24">
- <output-dir compare="Text">round-half-to-even24</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even3">
- <output-dir compare="Text">round-half-to-even3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even4">
- <output-dir compare="Text">round-half-to-even4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round-half-to-even5">
- <output-dir compare="Text">round-half-to-even5</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round0">
- <output-dir compare="Text">round0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round1">
- <output-dir compare="Text">round1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round2">
- <output-dir compare="Text">round2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round3">
- <output-dir compare="Text">round3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="round4">
- <output-dir compare="Text">round4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="subtract_double">
- <output-dir compare="Text">subtract_double</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="subtract_float">
- <output-dir compare="Text">subtract_float</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="subtract_int16">
- <output-dir compare="Text">subtract_int16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="subtract_int32">
- <output-dir compare="Text">subtract_int32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="subtract_int64">
- <output-dir compare="Text">subtract_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="subtract_int8">
- <output-dir compare="Text">subtract_int8</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="unary-minus_double_02">
- <output-dir compare="Text">unary-minus_double_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="unary-minus_float_02">
- <output-dir compare="Text">unary-minus_float_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="unary-minus_int_02">
- <output-dir compare="Text">unary-minus_int_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="unary-minus_null">
- <output-dir compare="Text">unary-minus_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="numeric">
- <compilation-unit name="query-issue355">
- <output-dir compare="Text">query-issue355</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="open-closed">
- <!--
+ <test-case FilePath="misc">
+ <compilation-unit name="year_01">
+ <output-dir compare="Text">year_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="string_eq_01">
+ <output-dir compare="Text">string_eq_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="prefix-search">
+ <output-dir compare="Text">prefix-search</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="nestrecords">
+ <test-case FilePath="nestrecords">
+ <compilation-unit name="nestrecord">
+ <output-dir compare="Text">nestrecord</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="numeric">
+ <test-case FilePath="numeric">
+ <compilation-unit name="caret0">
+ <output-dir compare="Text">caret0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="abs0">
+ <output-dir compare="Text">abs0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="abs1">
+ <output-dir compare="Text">abs1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="abs2">
+ <output-dir compare="Text">abs2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="abs3">
+ <output-dir compare="Text">abs3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="abs4">
+ <output-dir compare="Text">abs4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="add_double">
+ <output-dir compare="Text">add_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="add_float">
+ <output-dir compare="Text">add_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="add_int16">
+ <output-dir compare="Text">add_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="add_int32">
+ <output-dir compare="Text">add_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="add_int64">
+ <output-dir compare="Text">add_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="add_int8">
+ <output-dir compare="Text">add_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="ceiling0">
+ <output-dir compare="Text">ceiling0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="ceiling1">
+ <output-dir compare="Text">ceiling1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="ceiling2">
+ <output-dir compare="Text">ceiling2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="ceiling3">
+ <output-dir compare="Text">ceiling3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="ceiling4">
+ <output-dir compare="Text">ceiling4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="divide_double">
+ <output-dir compare="Text">divide_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="divide_float">
+ <output-dir compare="Text">divide_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="divide_int16">
+ <output-dir compare="Text">divide_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="divide_int32">
+ <output-dir compare="Text">divide_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="divide_int64">
+ <output-dir compare="Text">divide_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="divide_int8">
+ <output-dir compare="Text">divide_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="floor0">
+ <output-dir compare="Text">floor0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="floor1">
+ <output-dir compare="Text">floor1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="floor2">
+ <output-dir compare="Text">floor2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="floor3">
+ <output-dir compare="Text">floor3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="floor4">
+ <output-dir compare="Text">floor4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="multiply_double">
+ <output-dir compare="Text">multiply_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="multiply_float">
+ <output-dir compare="Text">multiply_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="multiply_int16">
+ <output-dir compare="Text">multiply_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="multiply_int32">
+ <output-dir compare="Text">multiply_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="multiply_int64">
+ <output-dir compare="Text">multiply_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="multiply_int8">
+ <output-dir compare="Text">multiply_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even0">
+ <output-dir compare="Text">round-half-to-even0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even1">
+ <output-dir compare="Text">round-half-to-even1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even2">
+ <output-dir compare="Text">round-half-to-even2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even20">
+ <output-dir compare="Text">round-half-to-even20</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even21">
+ <output-dir compare="Text">round-half-to-even21</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even22">
+ <output-dir compare="Text">round-half-to-even22</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even23">
+ <output-dir compare="Text">round-half-to-even23</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even24">
+ <output-dir compare="Text">round-half-to-even24</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even3">
+ <output-dir compare="Text">round-half-to-even3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even4">
+ <output-dir compare="Text">round-half-to-even4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round-half-to-even5">
+ <output-dir compare="Text">round-half-to-even5</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round0">
+ <output-dir compare="Text">round0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round1">
+ <output-dir compare="Text">round1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round2">
+ <output-dir compare="Text">round2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round3">
+ <output-dir compare="Text">round3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="round4">
+ <output-dir compare="Text">round4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="subtract_double">
+ <output-dir compare="Text">subtract_double</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="subtract_float">
+ <output-dir compare="Text">subtract_float</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="subtract_int16">
+ <output-dir compare="Text">subtract_int16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="subtract_int32">
+ <output-dir compare="Text">subtract_int32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="subtract_int64">
+ <output-dir compare="Text">subtract_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="subtract_int8">
+ <output-dir compare="Text">subtract_int8</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="unary-minus_double_02">
+ <output-dir compare="Text">unary-minus_double_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="unary-minus_float_02">
+ <output-dir compare="Text">unary-minus_float_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="unary-minus_int_02">
+ <output-dir compare="Text">unary-minus_int_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="unary-minus_null">
+ <output-dir compare="Text">unary-minus_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="numeric">
+ <compilation-unit name="query-issue355">
+ <output-dir compare="Text">query-issue355</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="open-closed">
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="c2c-w-optional">
<output-dir compare="Text">c2c-w-optional</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="c2c-wo-optional">
<output-dir compare="Text">c2c-wo-optional</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="c2c">
<output-dir compare="Text">c2c</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="open-closed">
- <compilation-unit name="heterog-list-ordered01">
- <output-dir compare="Text">heterog-list-ordered01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="heterog-list01">
- <output-dir compare="Text">heterog-list01</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="open-closed">
+ <compilation-unit name="heterog-list-ordered01">
+ <output-dir compare="Text">heterog-list-ordered01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="heterog-list01">
+ <output-dir compare="Text">heterog-list01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="heterog-list02">
<output-dir compare="Text">heterog-list02</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="heterog-list03">
<output-dir compare="Text">heterog-list03</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-01">
- <output-dir compare="Text">open-closed-01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-12">
- <output-dir compare="Text">open-closed-12</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-14">
- <output-dir compare="Text">open-closed-14</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue134">
- <output-dir compare="Text">query-issue134</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue55">
- <output-dir compare="Text">query-issue55</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue55-1">
- <output-dir compare="Text">query-issue55-1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue166">
- <output-dir compare="Text">query-issue166</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue208">
- <output-dir compare="Text">query-issue208</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue236">
- <output-dir compare="Text">query-issue236</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-01">
+ <output-dir compare="Text">open-closed-01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-12">
+ <output-dir compare="Text">open-closed-12</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-14">
+ <output-dir compare="Text">open-closed-14</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue134">
+ <output-dir compare="Text">query-issue134</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue55">
+ <output-dir compare="Text">query-issue55</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue55-1">
+ <output-dir compare="Text">query-issue55-1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue166">
+ <output-dir compare="Text">query-issue166</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue208">
+ <output-dir compare="Text">query-issue208</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue236">
+ <output-dir compare="Text">query-issue236</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-15">
<output-dir compare="Text">open-closed-15</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-16">
<output-dir compare="Text">open-closed-16</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-17">
<output-dir compare="Text">open-closed-17</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-19">
<output-dir compare="Text">open-closed-19</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-20">
<output-dir compare="Text">open-closed-20</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-21">
<output-dir compare="Text">open-closed-21</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-22">
<output-dir compare="Text">open-closed-22</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-24">
- <output-dir compare="Text">open-closed-24</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-25">
- <output-dir compare="Text">open-closed-25</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-26">
- <output-dir compare="Text">open-closed-26</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-24">
+ <output-dir compare="Text">open-closed-24</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-25">
+ <output-dir compare="Text">open-closed-25</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-26">
+ <output-dir compare="Text">open-closed-26</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-28">
<output-dir compare="Text">open-closed-28</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-29">
- <output-dir compare="Text">open-closed-29</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-29">
+ <output-dir compare="Text">open-closed-29</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="open-closed">
<compilation-unit name="open-closed-30">
<output-dir compare="Text">open-closed-30</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-31">
- <output-dir compare="Text">open-closed-31</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-32">
- <output-dir compare="Text">open-closed-32</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="open-closed-33">
- <output-dir compare="Text">open-closed-33</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-proposal02">
- <output-dir compare="Text">query-proposal02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-proposal">
- <output-dir compare="Text">query-proposal</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue350">
- <output-dir compare="Text">query-issue350</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue350-2">
- <output-dir compare="Text">query-issue350-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue343">
- <output-dir compare="Text">query-issue343</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue343-2">
- <output-dir compare="Text">query-issue343-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue196">
- <output-dir compare="Text">query-issue196</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue377">
- <output-dir compare="Text">query-issue377</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue410">
- <output-dir compare="Text">query-issue410</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue453">
- <output-dir compare="Text">query-issue453</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue453-2">
- <output-dir compare="Text">query-issue453-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue456">
- <output-dir compare="Text">query-issue456</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue465">
- <output-dir compare="Text">query-issue465</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue258">
- <output-dir compare="Text">query-issue258</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue423">
- <output-dir compare="Text">query-issue423</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue423-2">
- <output-dir compare="Text">query-issue423-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue442">
- <output-dir compare="Text">query-issue442</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue487">
- <output-dir compare="Text">query-issue487</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue592">
- <output-dir compare="Text">query-issue592</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="open-closed">
- <compilation-unit name="query-issue625">
- <output-dir compare="Text">query-issue625</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="quantifiers">
- <test-case FilePath="quantifiers">
- <compilation-unit name="everysat_01">
- <output-dir compare="Text">everysat_01</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-31">
+ <output-dir compare="Text">open-closed-31</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-32">
+ <output-dir compare="Text">open-closed-32</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="open-closed-33">
+ <output-dir compare="Text">open-closed-33</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-proposal02">
+ <output-dir compare="Text">query-proposal02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-proposal">
+ <output-dir compare="Text">query-proposal</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue350">
+ <output-dir compare="Text">query-issue350</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue350-2">
+ <output-dir compare="Text">query-issue350-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue343">
+ <output-dir compare="Text">query-issue343</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue343-2">
+ <output-dir compare="Text">query-issue343-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue196">
+ <output-dir compare="Text">query-issue196</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue377">
+ <output-dir compare="Text">query-issue377</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue410">
+ <output-dir compare="Text">query-issue410</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue453">
+ <output-dir compare="Text">query-issue453</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue453-2">
+ <output-dir compare="Text">query-issue453-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue456">
+ <output-dir compare="Text">query-issue456</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue465">
+ <output-dir compare="Text">query-issue465</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue258">
+ <output-dir compare="Text">query-issue258</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue423">
+ <output-dir compare="Text">query-issue423</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue423-2">
+ <output-dir compare="Text">query-issue423-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue442">
+ <output-dir compare="Text">query-issue442</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue487">
+ <output-dir compare="Text">query-issue487</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue592">
+ <output-dir compare="Text">query-issue592</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="open-closed">
+ <compilation-unit name="query-issue625">
+ <output-dir compare="Text">query-issue625</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="quantifiers">
+ <test-case FilePath="quantifiers">
+ <compilation-unit name="everysat_01">
+ <output-dir compare="Text">everysat_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="quantifiers">
<compilation-unit name="everysat_02">
<output-dir compare="Text">everysat_02</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="quantifiers">
<compilation-unit name="everysat_03">
<output-dir compare="Text">everysat_03</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="quantifiers">
- <compilation-unit name="everysat_04">
- <output-dir compare="Text">everysat_04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="quantifiers">
- <compilation-unit name="somesat_01">
- <output-dir compare="Text">somesat_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="quantifiers">
- <compilation-unit name="somesat_02">
- <output-dir compare="Text">somesat_02</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="quantifiers">
+ <compilation-unit name="everysat_04">
+ <output-dir compare="Text">everysat_04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="quantifiers">
+ <compilation-unit name="somesat_01">
+ <output-dir compare="Text">somesat_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="quantifiers">
+ <compilation-unit name="somesat_02">
+ <output-dir compare="Text">somesat_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="quantifiers">
<compilation-unit name="somesat_03">
<output-dir compare="Text">somesat_03</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="quantifiers">
<compilation-unit name="somesat_04">
<output-dir compare="Text">somesat_04</output-dir>
</compilation-unit>
</test-case>
-->
- <!--
+ <!--
<test-case FilePath="quantifiers">
<compilation-unit name="somesat_05">
<output-dir compare="Text">somesat_05</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="quantifiers">
- <compilation-unit name="somesat_06">
- <output-dir compare="Text">somesat_06</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="records">
- <test-case FilePath="records">
- <compilation-unit name="closed-record-constructor_01">
- <output-dir compare="Text">closed-record-constructor_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="closed-record-constructor_02">
- <output-dir compare="Text">closed-record-constructor_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="closed-record-constructor_03">
- <output-dir compare="Text">closed-record-constructor_03</output-dir>
- </compilation-unit>
- </test-case>
- -->
- <test-case FilePath="records">
- <compilation-unit name="expFieldName">
- <output-dir compare="Text">expFieldName</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="field-access-by-index_01">
- <output-dir compare="Text">field-access-by-index_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="field-access-on-open-field">
- <output-dir compare="Text">field-access-on-open-field</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="open-record-constructor_01">
- <output-dir compare="Text">open-record-constructor_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="open-record-constructor_02">
- <output-dir compare="Text">open-record-constructor_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="closed-closed-fieldname-conflict_issue173">
- <output-dir compare="Text">closed-closed-fieldname-conflict_issue173</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="open-closed-fieldname-conflict_issue173">
- <output-dir compare="Text">open-closed-fieldname-conflict_issue173</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="records">
- <compilation-unit name="open-open-fieldname-conflict_issue173">
- <output-dir compare="Text">open-open-fieldname-conflict_issue173</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="scan">
- <test-case FilePath="scan">
- <compilation-unit name="10">
- <output-dir compare="Text">10</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="20">
- <output-dir compare="Text">20</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="issue238_query_1">
- <output-dir compare="Text">issue238_query_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="issue238_query_2">
- <output-dir compare="Text">issue238_query_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="invalid-scan-syntax">
- <output-dir compare="Text">invalid-scan-syntax</output-dir>
- <expected-error>SyntaxError</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="30">
- <output-dir compare="Text">30</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="alltypes_01">
- <output-dir compare="Text">alltypes_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="alltypes_02">
- <output-dir compare="Text">alltypes_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="numeric_types_01">
- <output-dir compare="Text">numeric_types_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="scan">
- <compilation-unit name="spatial_types_01">
- <output-dir compare="Text">spatial_types_01</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="quantifiers">
+ <compilation-unit name="somesat_06">
+ <output-dir compare="Text">somesat_06</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="records">
+ <test-case FilePath="records">
+ <compilation-unit name="closed-record-constructor_01">
+ <output-dir compare="Text">closed-record-constructor_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="closed-record-constructor_02">
+ <output-dir compare="Text">closed-record-constructor_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="closed-record-constructor_03">
+ <output-dir compare="Text">closed-record-constructor_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ -->
+ <test-case FilePath="records">
+ <compilation-unit name="expFieldName">
+ <output-dir compare="Text">expFieldName</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="field-access-by-index_01">
+ <output-dir compare="Text">field-access-by-index_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="field-access-on-open-field">
+ <output-dir compare="Text">field-access-on-open-field</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="open-record-constructor_01">
+ <output-dir compare="Text">open-record-constructor_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="open-record-constructor_02">
+ <output-dir compare="Text">open-record-constructor_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="closed-closed-fieldname-conflict_issue173">
+ <output-dir compare="Text">closed-closed-fieldname-conflict_issue173</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="open-closed-fieldname-conflict_issue173">
+ <output-dir compare="Text">open-closed-fieldname-conflict_issue173</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="records">
+ <compilation-unit name="open-open-fieldname-conflict_issue173">
+ <output-dir compare="Text">open-open-fieldname-conflict_issue173</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="scan">
+ <test-case FilePath="scan">
+ <compilation-unit name="10">
+ <output-dir compare="Text">10</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="20">
+ <output-dir compare="Text">20</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="issue238_query_1">
+ <output-dir compare="Text">issue238_query_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="issue238_query_2">
+ <output-dir compare="Text">issue238_query_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="invalid-scan-syntax">
+ <output-dir compare="Text">invalid-scan-syntax</output-dir>
+ <expected-error>SyntaxError</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="30">
+ <output-dir compare="Text">30</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="alltypes_01">
+ <output-dir compare="Text">alltypes_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="alltypes_02">
+ <output-dir compare="Text">alltypes_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="numeric_types_01">
+ <output-dir compare="Text">numeric_types_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="scan">
+ <compilation-unit name="spatial_types_01">
+ <output-dir compare="Text">spatial_types_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="scan">
<compilation-unit name="spatial_types_02">
<output-dir compare="Text">spatial_types_02</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="scan">
- <compilation-unit name="temp_types_01">
- <output-dir compare="Text">temp_types_01</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ <test-case FilePath="scan">
+ <compilation-unit name="temp_types_01">
+ <output-dir compare="Text">temp_types_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="scan">
<compilation-unit name="temp_types_02">
<output-dir compare="Text">temp_types_02</output-dir>
</compilation-unit>
</test-case>
-->
- </test-group>
- <test-group name="semistructured">
- <test-case FilePath="semistructured">
- <compilation-unit name="count-nullable">
- <output-dir compare="Text">count-nullable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="semistructured">
- <compilation-unit name="cust-filter">
- <output-dir compare="Text">cust-filter</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="semistructured">
- <compilation-unit name="has-param1">
- <output-dir compare="Text">has-param1</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="similarity">
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance-check_ints">
- <output-dir compare="Text">edit-distance-check_ints</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance-check_strings">
- <output-dir compare="Text">edit-distance-check_strings</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance-check_unicode">
- <output-dir compare="Text">edit-distance-check_unicode</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance-list-is-filterable">
- <output-dir compare="Text">edit-distance-list-is-filterable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance-string-is-filterable">
- <output-dir compare="Text">edit-distance-string-is-filterable</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance_ints">
- <output-dir compare="Text">edit-distance_ints</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="edit-distance_strings">
- <output-dir compare="Text">edit-distance_strings</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="fuzzyeq-edit-distance">
- <output-dir compare="Text">fuzzyeq-edit-distance</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="fuzzyeq-similarity-jaccard">
- <output-dir compare="Text">fuzzyeq-similarity-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="prefix-len-jaccard">
- <output-dir compare="Text">prefix-len-jaccard</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-check_ints">
- <output-dir compare="Text">similarity-jaccard-check_ints</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-check_query">
- <output-dir compare="Text">similarity-jaccard-check_query</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-check_strings">
- <output-dir compare="Text">similarity-jaccard-check_strings</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-prefix-check">
- <output-dir compare="Text">similarity-jaccard-prefix-check</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-prefix">
- <output-dir compare="Text">similarity-jaccard-prefix</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-sorted-check_ints">
- <output-dir compare="Text">similarity-jaccard-sorted-check_ints</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-sorted-check_query">
- <output-dir compare="Text">similarity-jaccard-sorted-check_query</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-sorted-check_strings">
- <output-dir compare="Text">similarity-jaccard-sorted-check_strings</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-sorted_ints">
- <output-dir compare="Text">similarity-jaccard-sorted_ints</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-sorted_query">
- <output-dir compare="Text">similarity-jaccard-sorted_query</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-sorted_strings">
- <output-dir compare="Text">similarity-jaccard-sorted_strings</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard_ints">
- <output-dir compare="Text">similarity-jaccard_ints</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard_query">
- <output-dir compare="Text">similarity-jaccard_query</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard_strings">
- <output-dir compare="Text">similarity-jaccard_strings</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="similarity">
- <compilation-unit name="similarity-jaccard-check_strings_issue628">
- <output-dir compare="Text">similarity-jaccard-check_strings_issue628</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="spatial">
- <test-case FilePath="spatial">
- <compilation-unit name="cell-aggregation-with-filtering">
- <output-dir compare="Text">cell-aggregation-with-filtering</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="cell-aggregation">
- <output-dir compare="Text">cell-aggregation</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="circle_accessor">
- <output-dir compare="Text">circle_accessor</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="circle-intersect-circle">
- <output-dir compare="Text">circle-intersect-circle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="create-rtree-index">
- <output-dir compare="Text">create-rtree-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="distance-between-points">
- <output-dir compare="Text">distance-between-points</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="line_accessor">
- <output-dir compare="Text">line_accessor</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="line-intersect-circle">
- <output-dir compare="Text">line-intersect-circle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="line-intersect-line">
- <output-dir compare="Text">line-intersect-line</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="line-intersect-polygon">
- <output-dir compare="Text">line-intersect-polygon</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="line-intersect-rectangle">
- <output-dir compare="Text">line-intersect-rectangle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="point_accessor">
- <output-dir compare="Text">point_accessor</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="point-equals-point">
- <output-dir compare="Text">point-equals-point</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="point-in-circle">
- <output-dir compare="Text">point-in-circle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="point-in-polygon">
- <output-dir compare="Text">point-in-polygon</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="point-in-rectangle">
- <output-dir compare="Text">point-in-rectangle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="point-on-line">
- <output-dir compare="Text">point-on-line</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="polygon_accessor">
- <output-dir compare="Text">polygon_accessor</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="polygon-intersect-circle">
- <output-dir compare="Text">polygon-intersect-circle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="polygon-intersect-polygon">
- <output-dir compare="Text">polygon-intersect-polygon</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="polygon-intersect-rectangle">
- <output-dir compare="Text">polygon-intersect-rectangle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="rectangle_accessor">
- <output-dir compare="Text">rectangle_accessor</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="rectangle-intersect-circle">
- <output-dir compare="Text">rectangle-intersect-circle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="rectangle-intersect-rectangle">
- <output-dir compare="Text">rectangle-intersect-rectangle</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="spatial">
- <compilation-unit name="spatial-area">
- <output-dir compare="Text">spatial-area</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="string">
- <test-case FilePath="string">
- <compilation-unit name="codepoint-to-string1">
- <output-dir compare="Text">codepoint-to-string1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="codepoint-to-string2">
- <output-dir compare="Text">codepoint-to-string2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="concat_01">
- <output-dir compare="Text">concat_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="concat_02">
- <output-dir compare="Text">concat_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="contains_01">
- <output-dir compare="Text">contains_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="cpttostr01">
- <output-dir compare="Text">cpttostr01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="cpttostr02">
- <output-dir compare="Text">cpttostr02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="cpttostr04">
- <output-dir compare="Text">cpttostr04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="end-with1">
- <output-dir compare="Text">end-with1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="end-with2">
- <output-dir compare="Text">end-with2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="end-with3">
- <output-dir compare="Text">end-with3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="end-with4">
- <output-dir compare="Text">end-with4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="end-with5">
- <output-dir compare="Text">end-with5</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="ends-with_01">
- <output-dir compare="Text">ends-with_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="endwith02">
- <output-dir compare="Text">endwith02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="endwith03">
- <output-dir compare="Text">endwith03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="escapes01">
- <output-dir compare="Text">escapes01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="escapes02">
- <output-dir compare="Text">escapes02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="length_01">
- <output-dir compare="Text">length_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="length_02">
- <output-dir compare="Text">length_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="like_01">
- <output-dir compare="Text">like_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="like_null">
- <output-dir compare="Text">like_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="lowercase">
- <output-dir compare="Text">lowercase</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches02">
- <output-dir compare="Text">matches02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches03">
- <output-dir compare="Text">matches03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches04">
- <output-dir compare="Text">matches04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches05">
- <output-dir compare="Text">matches05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches06">
- <output-dir compare="Text">matches06</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches1">
- <output-dir compare="Text">matches1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches11">
- <output-dir compare="Text">matches11</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches2">
- <output-dir compare="Text">matches2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches21">
- <output-dir compare="Text">matches21</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches22">
- <output-dir compare="Text">matches22</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches23">
- <output-dir compare="Text">matches23</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matches3">
- <output-dir compare="Text">matches3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="matchesnull">
- <output-dir compare="Text">matchesnull</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="replace1">
- <output-dir compare="Text">replace1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="replace2">
- <output-dir compare="Text">replace2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="replace21">
- <output-dir compare="Text">replace21</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="replace22">
- <output-dir compare="Text">replace22</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="replace3">
- <output-dir compare="Text">replace3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="start-with1">
- <output-dir compare="Text">start-with1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="start-with2">
- <output-dir compare="Text">start-with2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="start-with3">
- <output-dir compare="Text">start-with3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="start-with4">
- <output-dir compare="Text">start-with4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="start-with5">
- <output-dir compare="Text">start-with5</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="starts-with_01">
- <output-dir compare="Text">starts-with_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="startwith02">
- <output-dir compare="Text">startwith02</output-dir>
- </compilation-unit>
- </test-case>
- <!--
+ </test-group>
+ <test-group name="semistructured">
+ <test-case FilePath="semistructured">
+ <compilation-unit name="count-nullable">
+ <output-dir compare="Text">count-nullable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="semistructured">
+ <compilation-unit name="cust-filter">
+ <output-dir compare="Text">cust-filter</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="semistructured">
+ <compilation-unit name="has-param1">
+ <output-dir compare="Text">has-param1</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="similarity">
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance-check_ints">
+ <output-dir compare="Text">edit-distance-check_ints</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance-check_strings">
+ <output-dir compare="Text">edit-distance-check_strings</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance-check_unicode">
+ <output-dir compare="Text">edit-distance-check_unicode</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance-list-is-filterable">
+ <output-dir compare="Text">edit-distance-list-is-filterable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance-string-is-filterable">
+ <output-dir compare="Text">edit-distance-string-is-filterable</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance_ints">
+ <output-dir compare="Text">edit-distance_ints</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="edit-distance_strings">
+ <output-dir compare="Text">edit-distance_strings</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="fuzzyeq-edit-distance">
+ <output-dir compare="Text">fuzzyeq-edit-distance</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="fuzzyeq-similarity-jaccard">
+ <output-dir compare="Text">fuzzyeq-similarity-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="prefix-len-jaccard">
+ <output-dir compare="Text">prefix-len-jaccard</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-check_ints">
+ <output-dir compare="Text">similarity-jaccard-check_ints</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-check_query">
+ <output-dir compare="Text">similarity-jaccard-check_query</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-check_strings">
+ <output-dir compare="Text">similarity-jaccard-check_strings</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-prefix-check">
+ <output-dir compare="Text">similarity-jaccard-prefix-check</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-prefix">
+ <output-dir compare="Text">similarity-jaccard-prefix</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-sorted-check_ints">
+ <output-dir compare="Text">similarity-jaccard-sorted-check_ints</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-sorted-check_query">
+ <output-dir compare="Text">similarity-jaccard-sorted-check_query</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-sorted-check_strings">
+ <output-dir compare="Text">similarity-jaccard-sorted-check_strings</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-sorted_ints">
+ <output-dir compare="Text">similarity-jaccard-sorted_ints</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-sorted_query">
+ <output-dir compare="Text">similarity-jaccard-sorted_query</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-sorted_strings">
+ <output-dir compare="Text">similarity-jaccard-sorted_strings</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard_ints">
+ <output-dir compare="Text">similarity-jaccard_ints</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard_query">
+ <output-dir compare="Text">similarity-jaccard_query</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard_strings">
+ <output-dir compare="Text">similarity-jaccard_strings</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="similarity">
+ <compilation-unit name="similarity-jaccard-check_strings_issue628">
+ <output-dir compare="Text">similarity-jaccard-check_strings_issue628</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="spatial">
+ <test-case FilePath="spatial">
+ <compilation-unit name="cell-aggregation-with-filtering">
+ <output-dir compare="Text">cell-aggregation-with-filtering</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="cell-aggregation">
+ <output-dir compare="Text">cell-aggregation</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="circle_accessor">
+ <output-dir compare="Text">circle_accessor</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="circle-intersect-circle">
+ <output-dir compare="Text">circle-intersect-circle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="create-rtree-index">
+ <output-dir compare="Text">create-rtree-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="distance-between-points">
+ <output-dir compare="Text">distance-between-points</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="line_accessor">
+ <output-dir compare="Text">line_accessor</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="line-intersect-circle">
+ <output-dir compare="Text">line-intersect-circle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="line-intersect-line">
+ <output-dir compare="Text">line-intersect-line</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="line-intersect-polygon">
+ <output-dir compare="Text">line-intersect-polygon</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="line-intersect-rectangle">
+ <output-dir compare="Text">line-intersect-rectangle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="point_accessor">
+ <output-dir compare="Text">point_accessor</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="point-equals-point">
+ <output-dir compare="Text">point-equals-point</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="point-in-circle">
+ <output-dir compare="Text">point-in-circle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="point-in-polygon">
+ <output-dir compare="Text">point-in-polygon</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="point-in-rectangle">
+ <output-dir compare="Text">point-in-rectangle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="point-on-line">
+ <output-dir compare="Text">point-on-line</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="polygon_accessor">
+ <output-dir compare="Text">polygon_accessor</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="polygon-intersect-circle">
+ <output-dir compare="Text">polygon-intersect-circle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="polygon-intersect-polygon">
+ <output-dir compare="Text">polygon-intersect-polygon</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="polygon-intersect-rectangle">
+ <output-dir compare="Text">polygon-intersect-rectangle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="rectangle_accessor">
+ <output-dir compare="Text">rectangle_accessor</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="rectangle-intersect-circle">
+ <output-dir compare="Text">rectangle-intersect-circle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="rectangle-intersect-rectangle">
+ <output-dir compare="Text">rectangle-intersect-rectangle</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="spatial">
+ <compilation-unit name="spatial-area">
+ <output-dir compare="Text">spatial-area</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="string">
+ <test-case FilePath="string">
+ <compilation-unit name="codepoint-to-string1">
+ <output-dir compare="Text">codepoint-to-string1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="codepoint-to-string2">
+ <output-dir compare="Text">codepoint-to-string2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="concat_01">
+ <output-dir compare="Text">concat_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="concat_02">
+ <output-dir compare="Text">concat_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="contains_01">
+ <output-dir compare="Text">contains_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="cpttostr01">
+ <output-dir compare="Text">cpttostr01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="cpttostr02">
+ <output-dir compare="Text">cpttostr02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="cpttostr04">
+ <output-dir compare="Text">cpttostr04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="end-with1">
+ <output-dir compare="Text">end-with1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="end-with2">
+ <output-dir compare="Text">end-with2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="end-with3">
+ <output-dir compare="Text">end-with3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="end-with4">
+ <output-dir compare="Text">end-with4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="end-with5">
+ <output-dir compare="Text">end-with5</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="ends-with_01">
+ <output-dir compare="Text">ends-with_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="endwith02">
+ <output-dir compare="Text">endwith02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="endwith03">
+ <output-dir compare="Text">endwith03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="escapes01">
+ <output-dir compare="Text">escapes01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="escapes02">
+ <output-dir compare="Text">escapes02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="length_01">
+ <output-dir compare="Text">length_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="length_02">
+ <output-dir compare="Text">length_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="like_01">
+ <output-dir compare="Text">like_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="like_null">
+ <output-dir compare="Text">like_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="lowercase">
+ <output-dir compare="Text">lowercase</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches02">
+ <output-dir compare="Text">matches02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches03">
+ <output-dir compare="Text">matches03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches04">
+ <output-dir compare="Text">matches04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches05">
+ <output-dir compare="Text">matches05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches06">
+ <output-dir compare="Text">matches06</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches1">
+ <output-dir compare="Text">matches1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches11">
+ <output-dir compare="Text">matches11</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches2">
+ <output-dir compare="Text">matches2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches21">
+ <output-dir compare="Text">matches21</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches22">
+ <output-dir compare="Text">matches22</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches23">
+ <output-dir compare="Text">matches23</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matches3">
+ <output-dir compare="Text">matches3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="matchesnull">
+ <output-dir compare="Text">matchesnull</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="replace1">
+ <output-dir compare="Text">replace1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="replace2">
+ <output-dir compare="Text">replace2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="replace21">
+ <output-dir compare="Text">replace21</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="replace22">
+ <output-dir compare="Text">replace22</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="replace3">
+ <output-dir compare="Text">replace3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="start-with1">
+ <output-dir compare="Text">start-with1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="start-with2">
+ <output-dir compare="Text">start-with2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="start-with3">
+ <output-dir compare="Text">start-with3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="start-with4">
+ <output-dir compare="Text">start-with4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="start-with5">
+ <output-dir compare="Text">start-with5</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="starts-with_01">
+ <output-dir compare="Text">starts-with_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="startwith02">
+ <output-dir compare="Text">startwith02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--
<test-case FilePath="string">
<compilation-unit name="startwith03">
<output-dir compare="Text">startwith03</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="string">
- <compilation-unit name="strconcat01">
- <output-dir compare="Text">strconcat01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="strconcat02">
- <output-dir compare="Text">strconcat02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-concat1">
- <output-dir compare="Text">string-concat1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-equal1">
- <output-dir compare="Text">string-equal1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-equal2">
- <output-dir compare="Text">string-equal2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-equal3">
- <output-dir compare="Text">string-equal3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-equal4">
- <output-dir compare="Text">string-equal4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-join1">
- <output-dir compare="Text">string-join1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-to-codepoint">
- <output-dir compare="Text">string-to-codepoint</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-to-codepoint1">
- <output-dir compare="Text">string-to-codepoint1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="string-to-codepoint2">
- <output-dir compare="Text">string-to-codepoint2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="strlen02">
- <output-dir compare="Text">strlen02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="strlen03">
- <output-dir compare="Text">strlen03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="strtocpt01">
- <output-dir compare="Text">strtocpt01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="strtocpt02">
- <output-dir compare="Text">strtocpt02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="strtocpt03">
- <output-dir compare="Text">strtocpt03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substr01">
- <output-dir compare="Text">substr01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substr04">
- <output-dir compare="Text">substr04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substr05">
- <output-dir compare="Text">substr05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substr06">
- <output-dir compare="Text">substr06</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-after-1">
- <output-dir compare="Text">substring-after-1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-after-2">
- <output-dir compare="Text">substring-after-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-after-3">
- <output-dir compare="Text">substring-after-3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-after-4">
- <output-dir compare="Text">substring-after-4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-before-1">
- <output-dir compare="Text">substring-before-1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-before-2">
- <output-dir compare="Text">substring-before-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring-before-3">
- <output-dir compare="Text">substring-before-3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring2-1">
- <output-dir compare="Text">substring2-1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring2-2">
- <output-dir compare="Text">substring2-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring2-3">
- <output-dir compare="Text">substring2-3</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring2-4">
- <output-dir compare="Text">substring2-4</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="substring_01">
- <output-dir compare="Text">substring_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="toLowerCase02">
- <output-dir compare="Text">toLowerCase02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="toLowerCase03">
- <output-dir compare="Text">toLowerCase03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="toLowerCase04">
- <output-dir compare="Text">toLowerCase04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="string">
- <compilation-unit name="uppercase">
- <output-dir compare="Text">uppercase</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="subset-collection">
- <test-case FilePath="subset-collection">
- <compilation-unit name="01">
- <output-dir compare="Text">01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="subset-collection">
- <compilation-unit name="02">
- <output-dir compare="Text">02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="subset-collection">
- <compilation-unit name="03">
- <output-dir compare="Text">03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="subset-collection">
- <compilation-unit name="05">
- <output-dir compare="Text">05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="subset-collection">
- <compilation-unit name="06">
- <output-dir compare="Text">06</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="subset-collection">
- <compilation-unit name="07">
- <output-dir compare="Text">07</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="tokenizers">
- <test-case FilePath="tokenizers">
- <compilation-unit name="counthashed-gram-tokens_01">
- <output-dir compare="Text">counthashed-gram-tokens_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="counthashed-gram-tokens_02">
- <output-dir compare="Text">counthashed-gram-tokens_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="counthashed-word-tokens_01">
- <output-dir compare="Text">counthashed-word-tokens_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="gram-tokens_01">
- <output-dir compare="Text">gram-tokens_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="gram-tokens_02">
- <output-dir compare="Text">gram-tokens_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="hashed-gram-tokens_01">
- <output-dir compare="Text">hashed-gram-tokens_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="hashed-gram-tokens_02">
- <output-dir compare="Text">hashed-gram-tokens_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="hashed-word-tokens_01">
- <output-dir compare="Text">hashed-word-tokens_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="word-tokens_01">
- <output-dir compare="Text">word-tokens_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tokenizers">
- <compilation-unit name="word-tokens_02">
- <output-dir compare="Text">word-tokens_02</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="tpch">
- <test-case FilePath="tpch">
- <compilation-unit name="distinct_by">
- <output-dir compare="Text">distinct_by</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="group_no_agg">
- <output-dir compare="Text">group_no_agg</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="nest_aggregate">
- <output-dir compare="Text">nest_aggregate</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="query-issue638">
- <output-dir compare="Text">query-issue638</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="query-issue785">
- <output-dir compare="Text">query-issue785</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="query-issue785-2">
- <output-dir compare="Text">query-issue785-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="query-issue786">
- <output-dir compare="Text">query-issue786</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="query-issue601">
- <output-dir compare="Text">query-issue601</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q10_returned_item">
- <output-dir compare="Text">q10_returned_item</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q10_returned_item_int64">
- <output-dir compare="Text">q10_returned_item_int64</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q11_important_stock">
- <output-dir compare="Text">q11_important_stock</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q12_shipping">
- <output-dir compare="Text">q12_shipping</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q13_customer_distribution">
- <output-dir compare="Text">q13_customer_distribution</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q14_promotion_effect">
- <output-dir compare="Text">q14_promotion_effect</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q15_top_supplier">
- <output-dir compare="Text">q15_top_supplier</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q16_parts_supplier_relationship">
- <output-dir compare="Text">q16_parts_supplier_relationship</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q17_small_quantity_order_revenue">
- <output-dir compare="Text">q17_small_quantity_order_revenue</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q17_large_gby_variant">
- <output-dir compare="Text">q17_large_gby_variant</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q18_large_volume_customer">
- <output-dir compare="Text">q18_large_volume_customer</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q19_discounted_revenue">
- <output-dir compare="Text">q19_discounted_revenue</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q01_pricing_summary_report_nt">
- <output-dir compare="Text">q01_pricing_summary_report_nt</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q20_potential_part_promotion">
- <output-dir compare="Text">q20_potential_part_promotion</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q21_suppliers_who_kept_orders_waiting">
- <output-dir compare="Text">q21_suppliers_who_kept_orders_waiting</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q22_global_sales_opportunity">
- <output-dir compare="Text">q22_global_sales_opportunity</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q02_minimum_cost_supplier">
- <output-dir compare="Text">q02_minimum_cost_supplier</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q03_shipping_priority_nt">
- <output-dir compare="Text">q03_shipping_priority_nt</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q04_order_priority">
- <output-dir compare="Text">q04_order_priority</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q05_local_supplier_volume">
- <output-dir compare="Text">q05_local_supplier_volume</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q06_forecast_revenue_change">
- <output-dir compare="Text">q06_forecast_revenue_change</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q07_volume_shipping">
- <output-dir compare="Text">q07_volume_shipping</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q08_national_market_share">
- <output-dir compare="Text">q08_national_market_share</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="tpch">
- <compilation-unit name="q09_product_type_profit_nt">
- <output-dir compare="Text">q09_product_type_profit_nt</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="writers">
- <test-case FilePath="writers">
- <compilation-unit name="print_01">
- <output-dir compare="Text">print_01</output-dir>
- </compilation-unit>
- </test-case>
-<!-- TODO(madhusudancs): Enable this test when REST API supports serialized output support.
+ <test-case FilePath="string">
+ <compilation-unit name="strconcat01">
+ <output-dir compare="Text">strconcat01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="strconcat02">
+ <output-dir compare="Text">strconcat02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-concat1">
+ <output-dir compare="Text">string-concat1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-equal1">
+ <output-dir compare="Text">string-equal1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-equal2">
+ <output-dir compare="Text">string-equal2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-equal3">
+ <output-dir compare="Text">string-equal3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-equal4">
+ <output-dir compare="Text">string-equal4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-join1">
+ <output-dir compare="Text">string-join1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-to-codepoint">
+ <output-dir compare="Text">string-to-codepoint</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-to-codepoint1">
+ <output-dir compare="Text">string-to-codepoint1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="string-to-codepoint2">
+ <output-dir compare="Text">string-to-codepoint2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="strlen02">
+ <output-dir compare="Text">strlen02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="strlen03">
+ <output-dir compare="Text">strlen03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="strtocpt01">
+ <output-dir compare="Text">strtocpt01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="strtocpt02">
+ <output-dir compare="Text">strtocpt02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="strtocpt03">
+ <output-dir compare="Text">strtocpt03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substr01">
+ <output-dir compare="Text">substr01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substr04">
+ <output-dir compare="Text">substr04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substr05">
+ <output-dir compare="Text">substr05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substr06">
+ <output-dir compare="Text">substr06</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-after-1">
+ <output-dir compare="Text">substring-after-1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-after-2">
+ <output-dir compare="Text">substring-after-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-after-3">
+ <output-dir compare="Text">substring-after-3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-after-4">
+ <output-dir compare="Text">substring-after-4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-before-1">
+ <output-dir compare="Text">substring-before-1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-before-2">
+ <output-dir compare="Text">substring-before-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring-before-3">
+ <output-dir compare="Text">substring-before-3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring2-1">
+ <output-dir compare="Text">substring2-1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring2-2">
+ <output-dir compare="Text">substring2-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring2-3">
+ <output-dir compare="Text">substring2-3</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring2-4">
+ <output-dir compare="Text">substring2-4</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="substring_01">
+ <output-dir compare="Text">substring_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="toLowerCase02">
+ <output-dir compare="Text">toLowerCase02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="toLowerCase03">
+ <output-dir compare="Text">toLowerCase03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="toLowerCase04">
+ <output-dir compare="Text">toLowerCase04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="string">
+ <compilation-unit name="uppercase">
+ <output-dir compare="Text">uppercase</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="subset-collection">
+ <test-case FilePath="subset-collection">
+ <compilation-unit name="01">
+ <output-dir compare="Text">01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="subset-collection">
+ <compilation-unit name="02">
+ <output-dir compare="Text">02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="subset-collection">
+ <compilation-unit name="03">
+ <output-dir compare="Text">03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="subset-collection">
+ <compilation-unit name="05">
+ <output-dir compare="Text">05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="subset-collection">
+ <compilation-unit name="06">
+ <output-dir compare="Text">06</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="subset-collection">
+ <compilation-unit name="07">
+ <output-dir compare="Text">07</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="tokenizers">
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="counthashed-gram-tokens_01">
+ <output-dir compare="Text">counthashed-gram-tokens_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="counthashed-gram-tokens_02">
+ <output-dir compare="Text">counthashed-gram-tokens_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="counthashed-word-tokens_01">
+ <output-dir compare="Text">counthashed-word-tokens_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="gram-tokens_01">
+ <output-dir compare="Text">gram-tokens_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="gram-tokens_02">
+ <output-dir compare="Text">gram-tokens_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="hashed-gram-tokens_01">
+ <output-dir compare="Text">hashed-gram-tokens_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="hashed-gram-tokens_02">
+ <output-dir compare="Text">hashed-gram-tokens_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="hashed-word-tokens_01">
+ <output-dir compare="Text">hashed-word-tokens_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="word-tokens_01">
+ <output-dir compare="Text">word-tokens_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tokenizers">
+ <compilation-unit name="word-tokens_02">
+ <output-dir compare="Text">word-tokens_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="tpch">
+ <test-case FilePath="tpch">
+ <compilation-unit name="distinct_by">
+ <output-dir compare="Text">distinct_by</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="group_no_agg">
+ <output-dir compare="Text">group_no_agg</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="nest_aggregate">
+ <output-dir compare="Text">nest_aggregate</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="query-issue638">
+ <output-dir compare="Text">query-issue638</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="query-issue785">
+ <output-dir compare="Text">query-issue785</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="query-issue785-2">
+ <output-dir compare="Text">query-issue785-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="query-issue786">
+ <output-dir compare="Text">query-issue786</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="query-issue601">
+ <output-dir compare="Text">query-issue601</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q10_returned_item">
+ <output-dir compare="Text">q10_returned_item</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q10_returned_item_int64">
+ <output-dir compare="Text">q10_returned_item_int64</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q11_important_stock">
+ <output-dir compare="Text">q11_important_stock</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q12_shipping">
+ <output-dir compare="Text">q12_shipping</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q13_customer_distribution">
+ <output-dir compare="Text">q13_customer_distribution</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q14_promotion_effect">
+ <output-dir compare="Text">q14_promotion_effect</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q15_top_supplier">
+ <output-dir compare="Text">q15_top_supplier</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q16_parts_supplier_relationship">
+ <output-dir compare="Text">q16_parts_supplier_relationship</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q17_small_quantity_order_revenue">
+ <output-dir compare="Text">q17_small_quantity_order_revenue</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q17_large_gby_variant">
+ <output-dir compare="Text">q17_large_gby_variant</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q18_large_volume_customer">
+ <output-dir compare="Text">q18_large_volume_customer</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q19_discounted_revenue">
+ <output-dir compare="Text">q19_discounted_revenue</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q01_pricing_summary_report_nt">
+ <output-dir compare="Text">q01_pricing_summary_report_nt</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q20_potential_part_promotion">
+ <output-dir compare="Text">q20_potential_part_promotion</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q21_suppliers_who_kept_orders_waiting">
+ <output-dir compare="Text">q21_suppliers_who_kept_orders_waiting</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q22_global_sales_opportunity">
+ <output-dir compare="Text">q22_global_sales_opportunity</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q02_minimum_cost_supplier">
+ <output-dir compare="Text">q02_minimum_cost_supplier</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q03_shipping_priority_nt">
+ <output-dir compare="Text">q03_shipping_priority_nt</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q04_order_priority">
+ <output-dir compare="Text">q04_order_priority</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q05_local_supplier_volume">
+ <output-dir compare="Text">q05_local_supplier_volume</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q06_forecast_revenue_change">
+ <output-dir compare="Text">q06_forecast_revenue_change</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q07_volume_shipping">
+ <output-dir compare="Text">q07_volume_shipping</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q08_national_market_share">
+ <output-dir compare="Text">q08_national_market_share</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="tpch">
+ <compilation-unit name="q09_product_type_profit_nt">
+ <output-dir compare="Text">q09_product_type_profit_nt</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="writers">
+ <test-case FilePath="writers">
+ <compilation-unit name="print_01">
+ <output-dir compare="Text">print_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!-- TODO(madhusudancs): Enable this test when REST API supports serialized output support.
<test-case FilePath="writers">
<compilation-unit name="serialized_01">
<output-dir compare="Text">serialized_01</output-dir>
</compilation-unit>
</test-case>
-->
- </test-group>
- <test-group name="cross-dataverse">
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv01">
- <output-dir compare="Text">cross-dv01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv02">
- <output-dir compare="Text">cross-dv02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv03">
- <output-dir compare="Text">cross-dv03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv04">
- <output-dir compare="Text">cross-dv04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv07">
- <output-dir compare="Text">cross-dv07</output-dir>
- </compilation-unit>
- </test-case>
- <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
+ </test-group>
+ <test-group name="cross-dataverse">
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv01">
+ <output-dir compare="Text">cross-dv01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv02">
+ <output-dir compare="Text">cross-dv02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv03">
+ <output-dir compare="Text">cross-dv03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv04">
+ <output-dir compare="Text">cross-dv04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv07">
+ <output-dir compare="Text">cross-dv07</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
<test-case FilePath="cross-dataverse">
<compilation-unit name="cross-dv08">
<output-dir compare="Text">cross-dv08</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv09">
- <output-dir compare="Text">cross-dv09</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv11">
- <output-dir compare="Text">cross-dv11</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv12">
- <output-dir compare="Text">cross-dv12</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv13">
- <output-dir compare="Text">cross-dv13</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv14">
- <output-dir compare="Text">cross-dv14</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv15">
- <output-dir compare="Text">cross-dv15</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv16">
- <output-dir compare="Text">cross-dv16</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv09">
+ <output-dir compare="Text">cross-dv09</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv11">
+ <output-dir compare="Text">cross-dv11</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv12">
+ <output-dir compare="Text">cross-dv12</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv13">
+ <output-dir compare="Text">cross-dv13</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv14">
+ <output-dir compare="Text">cross-dv14</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv15">
+ <output-dir compare="Text">cross-dv15</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv16">
+ <output-dir compare="Text">cross-dv16</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
<test-case FilePath="cross-dataverse">
<compilation-unit name="cross-dv17">
<output-dir compare="Text">cross-dv17</output-dir>
</compilation-unit>
</test-case>
-->
- <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
+ <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
<test-case FilePath="cross-dataverse">
<compilation-unit name="cross-dv18">
<output-dir compare="Text">cross-dv18</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv19">
- <output-dir compare="Text">cross-dv19</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="cross-dv20">
- <output-dir compare="Text">cross-dv20</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="insert_across_dataverses">
- <output-dir compare="Text">insert_across_dataverses</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="cross-dataverse">
- <compilation-unit name="join_across_dataverses">
- <output-dir compare="Text">join_across_dataverses</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="user-defined-functions">
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue218-2">
- <output-dir compare="Text">query-issue218-2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue218">
- <output-dir compare="Text">query-issue218</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue201">
- <output-dir compare="Text">query-issue201</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue172">
- <output-dir compare="Text">query-issue172</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue455">
- <output-dir compare="Text">query-issue455</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue489">
- <output-dir compare="Text">query-issue489</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf01">
- <output-dir compare="Text">udf01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf02">
- <output-dir compare="Text">udf02</output-dir>
- </compilation-unit>
- </test-case>
- <!-- causes NPE: Issue 200
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv19">
+ <output-dir compare="Text">cross-dv19</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="cross-dv20">
+ <output-dir compare="Text">cross-dv20</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="insert_across_dataverses">
+ <output-dir compare="Text">insert_across_dataverses</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="cross-dataverse">
+ <compilation-unit name="join_across_dataverses">
+ <output-dir compare="Text">join_across_dataverses</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="user-defined-functions">
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue218-2">
+ <output-dir compare="Text">query-issue218-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue218">
+ <output-dir compare="Text">query-issue218</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue201">
+ <output-dir compare="Text">query-issue201</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue172">
+ <output-dir compare="Text">query-issue172</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue455">
+ <output-dir compare="Text">query-issue455</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue489">
+ <output-dir compare="Text">query-issue489</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf01">
+ <output-dir compare="Text">udf01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf02">
+ <output-dir compare="Text">udf02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!-- causes NPE: Issue 200
<test-case FilePath="user-defined-functions">
<compilation-unit name="udf03">
<output-dir compare="Text">udf03</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf04">
- <output-dir compare="Text">udf04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf05">
- <output-dir compare="Text">udf05</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf06">
- <output-dir compare="Text">udf06</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf07">
- <output-dir compare="Text">udf07</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf08">
- <output-dir compare="Text">udf08</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf09">
- <output-dir compare="Text">udf09</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf10">
- <output-dir compare="Text">udf10</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf11">
- <output-dir compare="Text">udf11</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf12">
- <output-dir compare="Text">udf12</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf13">
- <output-dir compare="Text">udf13</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf14">
- <output-dir compare="Text">udf14</output-dir>
- </compilation-unit>
- </test-case>
- <!-- Issue 166
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf04">
+ <output-dir compare="Text">udf04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf05">
+ <output-dir compare="Text">udf05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf06">
+ <output-dir compare="Text">udf06</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf07">
+ <output-dir compare="Text">udf07</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf08">
+ <output-dir compare="Text">udf08</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf09">
+ <output-dir compare="Text">udf09</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf10">
+ <output-dir compare="Text">udf10</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf11">
+ <output-dir compare="Text">udf11</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf12">
+ <output-dir compare="Text">udf12</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf13">
+ <output-dir compare="Text">udf13</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf14">
+ <output-dir compare="Text">udf14</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!-- Issue 166
<test-case FilePath="user-defined-functions">
<compilation-unit name="udf15">
<output-dir compare="Text">udf15</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf16">
- <output-dir compare="Text">udf16</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf17">
- <output-dir compare="Text">udf17</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf18">
- <output-dir compare="Text">udf18</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf19">
- <output-dir compare="Text">udf19</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf20">
- <output-dir compare="Text">udf20</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf21">
- <output-dir compare="Text">udf21</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf22">
- <output-dir compare="Text">udf22</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf23">
- <output-dir compare="Text">udf23</output-dir>
- </compilation-unit>
- </test-case>
- <!-- Issue 195
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf16">
+ <output-dir compare="Text">udf16</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf17">
+ <output-dir compare="Text">udf17</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf18">
+ <output-dir compare="Text">udf18</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf19">
+ <output-dir compare="Text">udf19</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf20">
+ <output-dir compare="Text">udf20</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf21">
+ <output-dir compare="Text">udf21</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf22">
+ <output-dir compare="Text">udf22</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf23">
+ <output-dir compare="Text">udf23</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!-- Issue 195
<test-case FilePath="user-defined-functions">
<compilation-unit name="udf24">
<output-dir compare="Text">udf24</output-dir>
</compilation-unit>
</test-case>
-->
- <!-- Issue 218
+ <!-- Issue 218
<test-case FilePath="user-defined-functions">
<compilation-unit name="udf25">
<output-dir compare="Text">udf25</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf26">
- <output-dir compare="Text">udf26</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf27">
- <output-dir compare="Text">udf27</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf28">
- <output-dir compare="Text">udf28</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf29">
- <output-dir compare="Text">udf29</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="udf30">
- <output-dir compare="Text">udf30</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="f01">
- <output-dir compare="Text">f01</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="invoke-private-function">
- <output-dir compare="Text">invoke-private-function</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="load">
- <test-case FilePath="load">
- <compilation-unit name="csv_01">
- <output-dir compare="Text">csv_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="csv_02">
- <output-dir compare="Text">csv_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="csv_03">
- <output-dir compare="Text">csv_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="csv_04">
- <output-dir compare="Text">csv_04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="csv_05">
- <output-dir compare="Text">csv_05</output-dir>
- <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksDataException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="csv_06">
- <output-dir compare="Text">csv_06</output-dir>
- <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksDataException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="csv_07">
- <output-dir compare="Text">csv_07</output-dir>
- <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksDataException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="issue14_query">
- <output-dir compare="Text">none</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="issue315_query">
- <output-dir compare="Text">none</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="issue289_query">
- <output-dir compare="Text">issue289_query</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="issue650_query">
- <output-dir compare="Text">none</output-dir>
- <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="type_promotion_0">
- <output-dir compare="Text">type_promotion_0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="escapes01">
- <output-dir compare="Text">escapes01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="escapes02">
- <output-dir compare="Text">escapes02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="escapes-err-1">
- <output-dir compare="Text">none</output-dir>
- <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="user-defined-functions">
- <compilation-unit name="query-issue244">
- <output-dir compare="Text">query-issue244</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="duplicate-key-error">
- <output-dir compare="Text">none</output-dir>
- <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksException</expected-error>
- </compilation-unit>
- </test-case>
- <test-case FilePath="load">
- <compilation-unit name="issue610_adm_token_end_collection">
- <output-dir compare="Text">issue610_adm_token_end_collection</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="hints">
- <test-case FilePath="hints">
- <compilation-unit name="issue_251_dataset_hint_5">
- <output-dir compare="Text">issue_251_dataset_hint_5</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="hints">
- <compilation-unit name="issue_251_dataset_hint_6">
- <output-dir compare="Text">issue_251_dataset_hint_6</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="hints">
- <compilation-unit name="issue_251_dataset_hint_7">
- <output-dir compare="Text">issue_251_dataset_hint_7</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="feeds">
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_01">
- <output-dir compare="Text">feeds_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_02">
- <output-dir compare="Text">feeds_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_03">
- <output-dir compare="Text">feeds_03</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_04">
- <output-dir compare="Text">feeds_04</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_05">
- <output-dir compare="Text">feeds_05</output-dir>
- </compilation-unit>
- </test-case>
- <!--Disable it because of sporadic failures. Raman will re-enable it.
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf26">
+ <output-dir compare="Text">udf26</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf27">
+ <output-dir compare="Text">udf27</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf28">
+ <output-dir compare="Text">udf28</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf29">
+ <output-dir compare="Text">udf29</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="udf30">
+ <output-dir compare="Text">udf30</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="f01">
+ <output-dir compare="Text">f01</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="invoke-private-function">
+ <output-dir compare="Text">invoke-private-function</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="load">
+ <test-case FilePath="load">
+ <compilation-unit name="csv_01">
+ <output-dir compare="Text">csv_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="csv_02">
+ <output-dir compare="Text">csv_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="csv_03">
+ <output-dir compare="Text">csv_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="csv_04">
+ <output-dir compare="Text">csv_04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="csv_05">
+ <output-dir compare="Text">csv_05</output-dir>
+ <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksDataException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="csv_06">
+ <output-dir compare="Text">csv_06</output-dir>
+ <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksDataException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="csv_07">
+ <output-dir compare="Text">csv_07</output-dir>
+ <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksDataException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="issue14_query">
+ <output-dir compare="Text">none</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="issue315_query">
+ <output-dir compare="Text">none</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="issue289_query">
+ <output-dir compare="Text">issue289_query</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="issue650_query">
+ <output-dir compare="Text">none</output-dir>
+ <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="type_promotion_0">
+ <output-dir compare="Text">type_promotion_0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="escapes01">
+ <output-dir compare="Text">escapes01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="escapes02">
+ <output-dir compare="Text">escapes02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="escapes-err-1">
+ <output-dir compare="Text">none</output-dir>
+ <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
+ <compilation-unit name="query-issue244">
+ <output-dir compare="Text">query-issue244</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="duplicate-key-error">
+ <output-dir compare="Text">none</output-dir>
+ <expected-error>edu.uci.ics.hyracks.api.exceptions.HyracksException</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="issue610_adm_token_end_collection">
+ <output-dir compare="Text">issue610_adm_token_end_collection</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="load">
+ <compilation-unit name="adm_binary">
+ <output-dir compare="Text">adm_binary</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="hints">
+ <test-case FilePath="hints">
+ <compilation-unit name="issue_251_dataset_hint_5">
+ <output-dir compare="Text">issue_251_dataset_hint_5</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="hints">
+ <compilation-unit name="issue_251_dataset_hint_6">
+ <output-dir compare="Text">issue_251_dataset_hint_6</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="hints">
+ <compilation-unit name="issue_251_dataset_hint_7">
+ <output-dir compare="Text">issue_251_dataset_hint_7</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="feeds">
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_01">
+ <output-dir compare="Text">feeds_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_02">
+ <output-dir compare="Text">feeds_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_03">
+ <output-dir compare="Text">feeds_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_04">
+ <output-dir compare="Text">feeds_04</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_05">
+ <output-dir compare="Text">feeds_05</output-dir>
+ </compilation-unit>
+ </test-case>
+ <!--Disable it because of sporadic failures. Raman will re-enable it.
<test-case FilePath="feeds">
<compilation-unit name="feeds_06">
<output-dir compare="Text">feeds_06</output-dir>
</compilation-unit>
</test-case>
-->
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_07">
- <output-dir compare="Text">feeds_07</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="feeds_08">
- <output-dir compare="Text">feeds_08</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="issue_230_feeds">
- <output-dir compare="Text">issue_230_feeds</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="feeds">
- <compilation-unit name="issue_711_feeds">
- <output-dir compare="Text">issue_711_feeds</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="hdfs">
- <test-case FilePath="hdfs">
- <compilation-unit name="issue_245_hdfs">
- <output-dir compare="Text">issue_245_hdfs</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="hdfs">
- <compilation-unit name="hdfs_02">
- <output-dir compare="Text">hdfs_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="hdfs">
- <compilation-unit name="hdfs_03">
- <output-dir compare="Text">hdfs_03</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="external-indexing">
- <test-case FilePath="external-indexing">
- <compilation-unit name="text-format">
- <output-dir compare="Text">text-format</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="external-indexing">
- <compilation-unit name="sequence-format">
- <output-dir compare="Text">sequence-format</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="external-indexing">
- <compilation-unit name="rc-format">
- <output-dir compare="Text">rc-format</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="external-indexing">
- <compilation-unit name="rtree-index">
- <output-dir compare="Text">rtree-index</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="external-indexing">
- <compilation-unit name="leftouterjoin">
- <output-dir compare="Text">leftouterjoin</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="external-indexing">
- <compilation-unit name="leftouterjoin-rtree">
- <output-dir compare="Text">leftouterjoin-rtree</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="temporal">
- <test-case FilePath="temporal">
- <compilation-unit name="parse_02">
- <output-dir compare="Text">parse_02</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="parse_01">
- <output-dir compare="Text">parse_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="day_of_week_01">
- <output-dir compare="Text">day_of_week_01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="interval_bin">
- <output-dir compare="Text">interval_bin</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="interval_bin_gby_0">
- <output-dir compare="Text">interval_bin_gby_0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="interval_bin_gby_1">
- <output-dir compare="Text">interval_bin_gby_1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="accessors">
- <output-dir compare="Text">accessors</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="accessors_interval">
- <output-dir compare="Text">accessors_interval</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="accessors_interval_null">
- <output-dir compare="Text">accessors_interval_null</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="adjust_timezone">
- <output-dir compare="Text">adjust_timezone</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="calendar_duration">
- <output-dir compare="Text">calendar_duration</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="date_functions">
- <output-dir compare="Text">date_functions</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="datetime_functions">
- <output-dir compare="Text">datetime_functions</output-dir>
- </compilation-unit>
- </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_07">
+ <output-dir compare="Text">feeds_07</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="feeds_08">
+ <output-dir compare="Text">feeds_08</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="issue_230_feeds">
+ <output-dir compare="Text">issue_230_feeds</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="feeds">
+ <compilation-unit name="issue_711_feeds">
+ <output-dir compare="Text">issue_711_feeds</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="hdfs">
+ <test-case FilePath="hdfs">
+ <compilation-unit name="issue_245_hdfs">
+ <output-dir compare="Text">issue_245_hdfs</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="hdfs">
+ <compilation-unit name="hdfs_02">
+ <output-dir compare="Text">hdfs_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="hdfs">
+ <compilation-unit name="hdfs_03">
+ <output-dir compare="Text">hdfs_03</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="external-indexing">
+ <test-case FilePath="external-indexing">
+ <compilation-unit name="text-format">
+ <output-dir compare="Text">text-format</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="external-indexing">
+ <compilation-unit name="sequence-format">
+ <output-dir compare="Text">sequence-format</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="external-indexing">
+ <compilation-unit name="rc-format">
+ <output-dir compare="Text">rc-format</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="external-indexing">
+ <compilation-unit name="rtree-index">
+ <output-dir compare="Text">rtree-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="external-indexing">
+ <compilation-unit name="leftouterjoin">
+ <output-dir compare="Text">leftouterjoin</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="external-indexing">
+ <compilation-unit name="leftouterjoin-rtree">
+ <output-dir compare="Text">leftouterjoin-rtree</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="temporal">
+ <test-case FilePath="temporal">
+ <compilation-unit name="parse_02">
+ <output-dir compare="Text">parse_02</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="parse_01">
+ <output-dir compare="Text">parse_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="day_of_week_01">
+ <output-dir compare="Text">day_of_week_01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="interval_bin">
+ <output-dir compare="Text">interval_bin</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="interval_bin_gby_0">
+ <output-dir compare="Text">interval_bin_gby_0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="interval_bin_gby_1">
+ <output-dir compare="Text">interval_bin_gby_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="accessors">
+ <output-dir compare="Text">accessors</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="accessors_interval">
+ <output-dir compare="Text">accessors_interval</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="accessors_interval_null">
+ <output-dir compare="Text">accessors_interval_null</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="adjust_timezone">
+ <output-dir compare="Text">adjust_timezone</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="calendar_duration">
+ <output-dir compare="Text">calendar_duration</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="date_functions">
+ <output-dir compare="Text">date_functions</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="datetime_functions">
+ <output-dir compare="Text">datetime_functions</output-dir>
+ </compilation-unit>
+ </test-case>
<!--
<test-case FilePath="temporal">
<compilation-unit name="insert_from_delimited_ds">
@@ -5136,131 +5158,131 @@
</compilation-unit>
</test-case>
-->
- <test-case FilePath="temporal">
- <compilation-unit name="insert_from_ext_ds">
- <output-dir compare="Text">insert_from_ext_ds</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="insert_from_ext_ds_2">
- <output-dir compare="Text">insert_from_ext_ds_2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="interval_functions">
- <output-dir compare="Text">interval_functions</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="time_functions">
- <output-dir compare="Text">time_functions</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="constructor">
- <compilation-unit name="interval">
- <output-dir compare="Text">interval</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="temporal">
- <compilation-unit name="duration_comps">
- <output-dir compare="Text">duration_comps</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="leftouterjoin">
- <test-case FilePath="leftouterjoin">
- <compilation-unit name="query_issue658">
- <output-dir compare="Text">query_issue658</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="leftouterjoin">
- <compilation-unit name="query_issue285">
- <output-dir compare="Text">query_issue285</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="leftouterjoin">
- <compilation-unit name="query_issue285-2">
- <output-dir compare="Text">query_issue285-2</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
+ <test-case FilePath="temporal">
+ <compilation-unit name="insert_from_ext_ds">
+ <output-dir compare="Text">insert_from_ext_ds</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="insert_from_ext_ds_2">
+ <output-dir compare="Text">insert_from_ext_ds_2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="interval_functions">
+ <output-dir compare="Text">interval_functions</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="time_functions">
+ <output-dir compare="Text">time_functions</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="constructor">
+ <compilation-unit name="interval">
+ <output-dir compare="Text">interval</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temporal">
+ <compilation-unit name="duration_comps">
+ <output-dir compare="Text">duration_comps</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="leftouterjoin">
+ <test-case FilePath="leftouterjoin">
+ <compilation-unit name="query_issue658">
+ <output-dir compare="Text">query_issue658</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="leftouterjoin">
+ <compilation-unit name="query_issue285">
+ <output-dir compare="Text">query_issue285</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="leftouterjoin">
+ <compilation-unit name="query_issue285-2">
+ <output-dir compare="Text">query_issue285-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
<test-group name="index-leftouterjoin">
- <test-case FilePath="index-leftouterjoin">
- <compilation-unit name="probe-pidx-with-join-btree-sidx1">
- <output-dir compare="Text">probe-pidx-with-join-btree-sidx1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-leftouterjoin">
- <compilation-unit name="probe-pidx-with-join-btree-sidx2">
- <output-dir compare="Text">probe-pidx-with-join-btree-sidx2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-leftouterjoin">
- <compilation-unit name="probe-pidx-with-join-rtree-sidx1">
- <output-dir compare="Text">probe-pidx-with-join-rtree-sidx1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-leftouterjoin">
- <compilation-unit name="probe-pidx-with-join-rtree-sidx2">
- <output-dir compare="Text">probe-pidx-with-join-rtree-sidx2</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-leftouterjoin">
- <compilation-unit name="probe-pidx-with-join-invidx-sidx1">
- <output-dir compare="Text">probe-pidx-with-join-invidx-sidx1</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="index-leftouterjoin">
- <compilation-unit name="probe-pidx-with-join-invidx-sidx2">
- <output-dir compare="Text">probe-pidx-with-join-invidx-sidx2</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="distinct">
- <test-case FilePath="distinct">
- <compilation-unit name="query-issue443">
- <output-dir compare="Text">query-issue443</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="distinct">
- <compilation-unit name="query-issue443-2">
- <output-dir compare="Text">query-issue443-2</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="tinysocial">
- <test-case FilePath="tinysocial">
- <compilation-unit name="tinysocial-suite">
- <output-dir compare="Text">tinysocial-suite</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="types">
- <test-case FilePath="types">
- <compilation-unit name="record01">
- <output-dir compare="Text">record01</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="types">
- <compilation-unit name="type_promotion_0">
- <output-dir compare="Text">type_promotion_0</output-dir>
- </compilation-unit>
- </test-case>
- <test-case FilePath="types">
- <compilation-unit name="type_promotion_1">
- <output-dir compare="Text">type_promotion_1</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="materialization">
- <test-case FilePath="materialization">
- <compilation-unit name="assign-reuse">
- <output-dir compare="Text">assign-reuse</output-dir>
- </compilation-unit>
- </test-case>
- </test-group>
- <test-group name="filters">
- <test-case FilePath="filters">
+ <test-case FilePath="index-leftouterjoin">
+ <compilation-unit name="probe-pidx-with-join-btree-sidx1">
+ <output-dir compare="Text">probe-pidx-with-join-btree-sidx1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-leftouterjoin">
+ <compilation-unit name="probe-pidx-with-join-btree-sidx2">
+ <output-dir compare="Text">probe-pidx-with-join-btree-sidx2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-leftouterjoin">
+ <compilation-unit name="probe-pidx-with-join-rtree-sidx1">
+ <output-dir compare="Text">probe-pidx-with-join-rtree-sidx1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-leftouterjoin">
+ <compilation-unit name="probe-pidx-with-join-rtree-sidx2">
+ <output-dir compare="Text">probe-pidx-with-join-rtree-sidx2</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-leftouterjoin">
+ <compilation-unit name="probe-pidx-with-join-invidx-sidx1">
+ <output-dir compare="Text">probe-pidx-with-join-invidx-sidx1</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="index-leftouterjoin">
+ <compilation-unit name="probe-pidx-with-join-invidx-sidx2">
+ <output-dir compare="Text">probe-pidx-with-join-invidx-sidx2</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="distinct">
+ <test-case FilePath="distinct">
+ <compilation-unit name="query-issue443">
+ <output-dir compare="Text">query-issue443</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="distinct">
+ <compilation-unit name="query-issue443-2">
+ <output-dir compare="Text">query-issue443-2</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="tinysocial">
+ <test-case FilePath="tinysocial">
+ <compilation-unit name="tinysocial-suite">
+ <output-dir compare="Text">tinysocial-suite</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="types">
+ <test-case FilePath="types">
+ <compilation-unit name="record01">
+ <output-dir compare="Text">record01</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="types">
+ <compilation-unit name="type_promotion_0">
+ <output-dir compare="Text">type_promotion_0</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="types">
+ <compilation-unit name="type_promotion_1">
+ <output-dir compare="Text">type_promotion_1</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="materialization">
+ <test-case FilePath="materialization">
+ <compilation-unit name="assign-reuse">
+ <output-dir compare="Text">assign-reuse</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+ <test-group name="filters">
+ <test-case FilePath="filters">
<compilation-unit name="equality-predicate">
<output-dir compare="Text">equality-predicate</output-dir>
</compilation-unit>
@@ -5323,4 +5345,58 @@
</compilation-unit>
</test-case>
</test-group>
+ <test-group name="binary">
+ <test-case FilePath="binary">
+ <compilation-unit name="parse">
+ <output-dir compare="Text">parse</output-dir>
+ </compilation-unit>
+ </test-case>
+
+ <test-case FilePath="binary">
+ <compilation-unit name="print">
+ <output-dir compare="Text">print</output-dir>
+ </compilation-unit>
+ </test-case>
+
+ <test-case FilePath="binary">
+ <compilation-unit name="concat">
+ <output-dir compare="Text">concat</output-dir>
+ </compilation-unit>
+ </test-case>
+
+ <test-case FilePath="binary">
+ <compilation-unit name="subbinary">
+ <output-dir compare="Text">subbinary</output-dir>
+ </compilation-unit>
+ </test-case>
+
+ <test-case FilePath="binary">
+ <compilation-unit name="find">
+ <output-dir compare="Text">find</output-dir>
+ </compilation-unit>
+ </test-case>
+
+ <test-case FilePath="binary">
+ <compilation-unit name="insert">
+ <output-dir compare="Text">insert</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="binary">
+ <compilation-unit name="equal_join">
+ <output-dir compare="Text">equal_join</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="binary">
+ <compilation-unit name="index_join">
+ <output-dir compare="Text">index_join</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="binary">
+ <compilation-unit name="length">
+ <output-dir compare="Text">length</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
+
+
</test-suite>
diff --git a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/adapter/factory/StreamBasedAdapterFactory.java b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/adapter/factory/StreamBasedAdapterFactory.java
index 6fed446..8daa7d0 100644
--- a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/adapter/factory/StreamBasedAdapterFactory.java
+++ b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/adapter/factory/StreamBasedAdapterFactory.java
@@ -71,6 +71,7 @@
protected List<ExternalFile> files;
protected static final HashMap<ATypeTag, IValueParserFactory> typeToValueParserFactMap = new HashMap<ATypeTag, IValueParserFactory>();
+
static {
typeToValueParserFactMap.put(ATypeTag.INT32, IntegerParserFactory.INSTANCE);
typeToValueParserFactMap.put(ATypeTag.FLOAT, FloatParserFactory.INSTANCE);
@@ -120,7 +121,7 @@
try {
return conditionalPush ? new ConditionalPushTupleParserFactory(recordType, configuration)
: new AdmSchemafullRecordParserFactory(recordType, isPKAutoGenerated, primaryKeyPosition,
- origSourceDataTypeForAutoGeneratedPK);
+ origSourceDataTypeForAutoGeneratedPK);
} catch (Exception e) {
throw new AsterixException(e);
}
diff --git a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/entities/AsterixBuiltinTypeMap.java b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/entities/AsterixBuiltinTypeMap.java
index 3617bba..9645344 100644
--- a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/entities/AsterixBuiltinTypeMap.java
+++ b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/entities/AsterixBuiltinTypeMap.java
@@ -36,6 +36,7 @@
_builtinTypeMap.put("float", BuiltinType.AFLOAT);
_builtinTypeMap.put("double", BuiltinType.ADOUBLE);
_builtinTypeMap.put("string", BuiltinType.ASTRING);
+ _builtinTypeMap.put("binary", BuiltinType.ABINARY);
_builtinTypeMap.put("date", BuiltinType.ADATE);
_builtinTypeMap.put("time", BuiltinType.ATIME);
_builtinTypeMap.put("datetime", BuiltinType.ADATETIME);
diff --git a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/functions/ExternalFunctionCompilerUtil.java b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
index d0e6aeb..f9c6040 100644
--- a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
+++ b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
@@ -31,6 +31,7 @@
import edu.uci.ics.asterix.metadata.entities.Function;
import edu.uci.ics.asterix.om.functions.AsterixFunction;
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
+import edu.uci.ics.asterix.om.typecomputer.impl.ABinaryTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.ADoubleTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.AFloatTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.AInt32TypeComputer;
@@ -142,6 +143,8 @@
return AFloatTypeComputer.INSTANCE;
case DOUBLE:
return ADoubleTypeComputer.INSTANCE;
+ case BINARY:
+ return ABinaryTypeComputer.INSTANCE;
case STRING:
return AStringTypeComputer.INSTANCE;
case ORDEREDLIST:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AObjectAscBinaryComparatorFactory.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AObjectAscBinaryComparatorFactory.java
index c409a4a..739064e 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AObjectAscBinaryComparatorFactory.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AObjectAscBinaryComparatorFactory.java
@@ -19,10 +19,7 @@
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
import edu.uci.ics.hyracks.data.std.accessors.PointableBinaryComparatorFactory;
-import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
-import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
-import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
-import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.primitive.*;
public class AObjectAscBinaryComparatorFactory implements IBinaryComparatorFactory {
@@ -42,6 +39,8 @@
final IBinaryComparator ascLongComp = LongBinaryComparatorFactory.INSTANCE.createBinaryComparator();
final IBinaryComparator ascStrComp = new PointableBinaryComparatorFactory(UTF8StringPointable.FACTORY)
.createBinaryComparator();
+ final IBinaryComparator ascByteArrayComp = new PointableBinaryComparatorFactory(ByteArrayPointable.FACTORY)
+ .createBinaryComparator();
final IBinaryComparator ascFloatComp = new PointableBinaryComparatorFactory(FloatPointable.FACTORY)
.createBinaryComparator();
final IBinaryComparator ascDoubleComp = new PointableBinaryComparatorFactory(DoublePointable.FACTORY)
@@ -133,6 +132,9 @@
case INTERVAL: {
return ascIntervalComp.compare(b1, s1 + 1, l1 - 1, b2, s2 + 1, l2 - 1);
}
+ case BINARY: {
+ return ascByteArrayComp.compare(b1, s1 + 1, l1 - 1, b2, s2 + 1, l2 -1);
+ }
default: {
return rawComp.compare(b1, s1 + 1, l1 - 1, b2, s2 + 1, l2 - 1);
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AUUIDPartialBinaryComparatorFactory.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AUUIDPartialBinaryComparatorFactory.java
index 63c9a5a..21189bb 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AUUIDPartialBinaryComparatorFactory.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/AUUIDPartialBinaryComparatorFactory.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.dataflow.data.nontagged.comparators;
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/ListItemBinaryComparatorFactory.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/ListItemBinaryComparatorFactory.java
index e25ad2f..c0cc407 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/ListItemBinaryComparatorFactory.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/comparators/ListItemBinaryComparatorFactory.java
@@ -21,10 +21,7 @@
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
import edu.uci.ics.hyracks.data.std.accessors.PointableBinaryComparatorFactory;
-import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
-import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
-import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
-import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.primitive.*;
public class ListItemBinaryComparatorFactory implements IBinaryComparatorFactory {
@@ -71,6 +68,8 @@
final IBinaryComparator ascPolygonComp = APolygonPartialBinaryComparatorFactory.INSTANCE
.createBinaryComparator();
final IBinaryComparator ascUUIDComp = AUUIDPartialBinaryComparatorFactory.INSTANCE.createBinaryComparator();
+ final IBinaryComparator ascByteArrayComp = new PointableBinaryComparatorFactory(ByteArrayPointable.FACTORY)
+ .createBinaryComparator();
final IBinaryComparator rawComp = RawBinaryComparatorFactory.INSTANCE.createBinaryComparator();
@Override
@@ -159,6 +158,9 @@
case INTERVAL: {
return ascIntervalComp.compare(b1, s1 + skip1, l1 - skip1, b2, s2 + skip2, l2 - skip2);
}
+ case BINARY: {
+ return ascByteArrayComp.compare(b1, s1 + skip1, l1 - skip1, b2, s2 + skip2, l2 - skip2);
+ }
default: {
return rawComp.compare(b1, s1 + skip1, l1 - skip1, b2, s2 + skip2, l2 - skip2);
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryBase64Printer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryBase64Printer.java
new file mode 100644
index 0000000..f86e90e
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryBase64Printer.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
+
+import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ABinarySerializerDeserializer;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.data.IPrinter;
+
+import java.io.IOException;
+import java.io.PrintStream;
+
+public class ABinaryBase64Printer implements IPrinter {
+ private ABinaryBase64Printer() {
+ }
+
+ public static final ABinaryBase64Printer INSTANCE = new ABinaryBase64Printer();
+
+ @Override public void init() throws AlgebricksException {
+
+ }
+
+ @Override public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
+ int validLength = ABinarySerializerDeserializer.getLength(b, s + 1);
+ int start = s + 1 + ABinarySerializerDeserializer.SIZE_OF_LENGTH;
+ try {
+ ps.print("base64(\"");
+ printBase64Binary(b, start, validLength, ps);
+ ps.print("\")");
+ } catch (IOException e) {
+ throw new AlgebricksException(e);
+ }
+ }
+
+ /**
+ * Encodes a byte array into a {@code Appendable} stream by doing base64 encoding.
+ *
+ * @return the same stream in purpose of chained process.
+ */
+ public static Appendable printBase64Binary(byte[] input, int offset, int len, Appendable appendable)
+ throws IOException {
+ // encode elements until only 1 or 2 elements are left to encode
+ int remaining = len;
+ int i;
+ for (i = offset; remaining >= 3; remaining -= 3, i += 3) {
+ appendable.append(encode(input[i] >> 2));
+ appendable.append(encode(
+ ((input[i] & 0x3) << 4)
+ | ((input[i + 1] >> 4) & 0xF)));
+ appendable.append(encode(
+ ((input[i + 1] & 0xF) << 2)
+ | ((input[i + 2] >> 6) & 0x3)));
+ appendable.append(encode(input[i + 2] & 0x3F));
+ }
+ // encode when exactly 1 element (left) to encode
+ if (remaining == 1) {
+ appendable.append(encode(input[i] >> 2));
+ appendable.append(encode(((input[i]) & 0x3) << 4));
+ appendable.append('=');
+ appendable.append('=');
+ }
+ // encode when exactly 2 elements (left) to encode
+ if (remaining == 2) {
+ appendable.append(encode(input[i] >> 2));
+ appendable.append(encode(((input[i] & 0x3) << 4)
+ | ((input[i + 1] >> 4) & 0xF)));
+ appendable.append(encode((input[i + 1] & 0xF) << 2));
+ appendable.append('=');
+ }
+ return appendable;
+ }
+
+ /**
+ * Encodes a byte array into a char array by doing base64 encoding.
+ * The caller must supply a big enough buffer.
+ *
+ * @return the value of {@code ptr+((len+2)/3)*4}, which is the new offset
+ * in the output buffer where the further bytes should be placed.
+ */
+ public static int printBase64Binary(byte[] input, int offset, int len, char[] buf, int ptr) {
+ // encode elements until only 1 or 2 elements are left to encode
+ int remaining = len;
+ int i;
+ for (i = offset; remaining >= 3; remaining -= 3, i += 3) {
+ buf[ptr++] = encode(input[i] >> 2);
+ buf[ptr++] = encode(
+ ((input[i] & 0x3) << 4)
+ | ((input[i + 1] >> 4) & 0xF));
+ buf[ptr++] = encode(
+ ((input[i + 1] & 0xF) << 2)
+ | ((input[i + 2] >> 6) & 0x3));
+ buf[ptr++] = encode(input[i + 2] & 0x3F);
+ }
+ // encode when exactly 1 element (left) to encode
+ if (remaining == 1) {
+ buf[ptr++] = encode(input[i] >> 2);
+ buf[ptr++] = encode(((input[i]) & 0x3) << 4);
+ buf[ptr++] = '=';
+ buf[ptr++] = '=';
+ }
+ // encode when exactly 2 elements (left) to encode
+ if (remaining == 2) {
+ buf[ptr++] = encode(input[i] >> 2);
+ buf[ptr++] = encode(((input[i] & 0x3) << 4)
+ | ((input[i + 1] >> 4) & 0xF));
+ buf[ptr++] = encode((input[i + 1] & 0xF) << 2);
+ buf[ptr++] = '=';
+ }
+ return ptr;
+ }
+
+ private static final char[] encodeMap = initEncodeMap();
+
+ private static char[] initEncodeMap() {
+ char[] map = new char[64];
+ int i;
+ for (i = 0; i < 26; i++) {
+ map[i] = (char) ('A' + i);
+ }
+ for (i = 26; i < 52; i++) {
+ map[i] = (char) ('a' + (i - 26));
+ }
+ for (i = 52; i < 62; i++) {
+ map[i] = (char) ('0' + (i - 52));
+ }
+ map[62] = '+';
+ map[63] = '/';
+
+ return map;
+ }
+
+ public static char encode(int i) {
+ return encodeMap[i & 0x3F];
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryHexPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryHexPrinter.java
new file mode 100644
index 0000000..c539e4e
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryHexPrinter.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
+
+import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ABinarySerializerDeserializer;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.data.IPrinter;
+
+import java.io.IOException;
+import java.io.PrintStream;
+
+public class ABinaryHexPrinter implements IPrinter {
+ private ABinaryHexPrinter() {
+ }
+
+ public static final ABinaryHexPrinter INSTANCE = new ABinaryHexPrinter();
+
+ @Override public void init() throws AlgebricksException {
+
+ }
+
+ @Override public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
+ int validLength = ABinarySerializerDeserializer.getLength(b, s + 1);
+ int start = s + 1 + ABinarySerializerDeserializer.SIZE_OF_LENGTH;
+ try {
+ ps.print("hex(\"");
+ printHexString(b, start, validLength, ps);
+ ps.print("\")");
+ } catch (IOException e) {
+ throw new AlgebricksException(e);
+ }
+ }
+
+ public static Appendable printHexString(byte[] bytes, int start, int length, Appendable appendable)
+ throws IOException {
+ for (int i = 0; i < length; ++i) {
+ appendable.append((char) PrintTools.hex((bytes[start + i] >>> 4) & 0x0f, PrintTools.CASE.UPPER_CASE));
+ appendable.append((char) PrintTools.hex((bytes[start + i] & 0x0f), PrintTools.CASE.UPPER_CASE));
+ }
+ return appendable;
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryPrinterFactory.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryPrinterFactory.java
new file mode 100644
index 0000000..505f942
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryPrinterFactory.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
+
+import edu.uci.ics.hyracks.algebricks.data.IPrinter;
+import edu.uci.ics.hyracks.algebricks.data.IPrinterFactory;
+
+public class ABinaryPrinterFactory implements IPrinterFactory {
+
+ private ABinaryPrinterFactory() {
+ }
+
+ public static final ABinaryPrinterFactory INSTANCE = new ABinaryPrinterFactory();
+
+ @Override public IPrinter createPrinter() {
+ return ABinaryHexPrinter.INSTANCE;
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AObjectPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AObjectPrinter.java
index 5ca940a..5a96e52 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AObjectPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AObjectPrinter.java
@@ -123,6 +123,10 @@
AStringPrinter.INSTANCE.print(b, s, l, ps);
break;
}
+ case BINARY: {
+ ABinaryHexPrinter.INSTANCE.print(b, s, l, ps);
+ break;
+ }
case RECORD: {
this.recordPrinter.init();
recordPrinter.print(b, s, l, ps);
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinter.java
index 5feb335..d98ca86 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinter.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
import java.io.PrintStream;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinterFactory.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinterFactory.java
index 015b8b8..fa65fd2 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinterFactory.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/AUUIDPrinterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
import edu.uci.ics.hyracks.algebricks.data.IPrinter;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/PrintTools.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/PrintTools.java
index d109ae9..92beb61 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/PrintTools.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/PrintTools.java
@@ -14,12 +14,18 @@
*/
package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
+import javax.xml.bind.DatatypeConverter;
import java.io.IOException;
import java.io.OutputStream;
-import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
-
public class PrintTools {
+ public static enum CASE {
+ LOWER_CASE,
+ UPPER_CASE,
+ }
+
public static void writeUTF8StringWithEscapes(byte[] b, int s, int l, OutputStream os) throws IOException {
int stringLength = UTF8StringPointable.getUTFLength(b, s);
int position = s + 2; // skip 2 bytes containing string size
@@ -29,7 +35,7 @@
char c = UTF8StringPointable.charAt(b, position);
int sz = UTF8StringPointable.charSize(b, position);
switch (c) {
- // escape
+ // escape
case '\b':
os.write('\\');
os.write('b');
@@ -115,11 +121,18 @@
os.write('u');
os.write('0');
os.write('0');
- os.write(hex((c >>> 4) & 0x0f));
- os.write(hex(c & 0x0f));
+ os.write(hex((c >>> 4) & 0x0f, CASE.LOWER_CASE));
+ os.write(hex(c & 0x0f, CASE.LOWER_CASE));
}
- private static byte hex(int i) {
- return (byte) (i < 10 ? i + '0' : i + ('a' - 10));
+ static byte hex(int i, CASE c) {
+ switch (c) {
+ case LOWER_CASE:
+ return (byte) (i < 10 ? i + '0' : i + ('a' - 10));
+ case UPPER_CASE:
+ return (byte) (i < 10 ? i + '0' : i + ('A' - 10));
+ }
+ return Byte.parseByte(null);
}
+
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AObjectPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AObjectPrinter.java
index 026c499..c626791 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AObjectPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AObjectPrinter.java
@@ -16,6 +16,7 @@
import java.io.PrintStream;
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryHexPrinter;
import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.EnumDeserializer;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -119,6 +120,10 @@
AStringPrinter.INSTANCE.print(b, s, l, ps);
break;
}
+ case BINARY: {
+ ABinaryHexPrinter.INSTANCE.print(b, s, l, ps);
+ break;
+ }
case RECORD: {
this.recordPrinter.init();
recordPrinter.print(b, s, l, ps);
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/ABinarySerializerDeserializer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/ABinarySerializerDeserializer.java
new file mode 100644
index 0000000..61b4fa7
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/ABinarySerializerDeserializer.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.dataflow.data.nontagged.serde;
+
+import edu.uci.ics.asterix.om.base.ABinary;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.marshalling.ByteArraySerializerDeserializer;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+public class ABinarySerializerDeserializer implements ISerializerDeserializer<ABinary>{
+
+ private static final long serialVersionUID = 1L;
+ public static final int SIZE_OF_LENGTH = ByteArrayPointable.SIZE_OF_LENGTH;
+
+ public static final ABinarySerializerDeserializer INSTANCE = new ABinarySerializerDeserializer();
+
+ private ABinarySerializerDeserializer(){}
+
+ @Override
+ public ABinary deserialize(DataInput in) throws HyracksDataException {
+ return new ABinary(ByteArraySerializerDeserializer.INSTANCE.deserialize(in));
+ }
+
+ @Override
+ public void serialize(ABinary binary, DataOutput out) throws HyracksDataException {
+ ByteArraySerializerDeserializer.INSTANCE.serialize(binary.getBytes(), binary.getStart(),
+ binary.getLength() , out);
+ }
+
+ public static int getLength(byte [] bytes, int offset){
+ return ByteArrayPointable.getLength(bytes,offset);
+ }
+
+ public static void putLength(int length, byte [] bytes, int offset){
+ ByteArrayPointable.putLength(length, bytes, offset);
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AObjectSerializerDeserializer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AObjectSerializerDeserializer.java
index 14ec491..864849b 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AObjectSerializerDeserializer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AObjectSerializerDeserializer.java
@@ -18,6 +18,7 @@
import java.io.DataOutput;
import java.io.IOException;
+import edu.uci.ics.asterix.om.base.ABinary;
import edu.uci.ics.asterix.om.base.ABoolean;
import edu.uci.ics.asterix.om.base.ACircle;
import edu.uci.ics.asterix.om.base.ADate;
@@ -88,6 +89,9 @@
case STRING: {
return AStringSerializerDeserializer.INSTANCE.deserialize(in);
}
+ case BINARY: {
+ return ABinarySerializerDeserializer.INSTANCE.deserialize(in);
+ }
case DATE: {
return ADateSerializerDeserializer.INSTANCE.deserialize(in);
}
@@ -191,6 +195,9 @@
AStringSerializerDeserializer.INSTANCE.serialize((AString) instance, out);
break;
}
+ case BINARY: {
+ ABinarySerializerDeserializer.INSTANCE.serialize((ABinary) instance, out);
+ }
case DATE: {
ADateSerializerDeserializer.INSTANCE.serialize((ADate) instance, out);
break;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AOrderedListSerializerDeserializer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AOrderedListSerializerDeserializer.java
index 64cc90d..7c8f1ad 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AOrderedListSerializerDeserializer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AOrderedListSerializerDeserializer.java
@@ -67,6 +67,7 @@
ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(in.readByte());
switch (typeTag) {
case STRING:
+ case BINARY:
case RECORD:
case ORDEREDLIST:
case UNORDEREDLIST:
@@ -136,6 +137,7 @@
ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serOrderedList[offset + 1]);
switch (typeTag) {
case STRING:
+ case BINARY:
case RECORD:
case ORDEREDLIST:
case UNORDEREDLIST:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUUIDSerializerDeserializer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUUIDSerializerDeserializer.java
index acd0888..eaba0ae 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUUIDSerializerDeserializer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUUIDSerializerDeserializer.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.dataflow.data.nontagged.serde;
import java.io.DataInput;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUnorderedListSerializerDeserializer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUnorderedListSerializerDeserializer.java
index 323b86d..163eb4c 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUnorderedListSerializerDeserializer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/serde/AUnorderedListSerializerDeserializer.java
@@ -69,6 +69,7 @@
ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(in.readByte());
switch (typeTag) {
case STRING:
+ case BINARY:
case RECORD:
case ORDEREDLIST:
case UNORDEREDLIST:
@@ -137,6 +138,7 @@
ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serOrderedList[offset + 1]);
switch (typeTag) {
case STRING:
+ case BINARY:
case RECORD:
case ORDEREDLIST:
case UNORDEREDLIST:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlBinaryComparatorFactoryProvider.java b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlBinaryComparatorFactoryProvider.java
index 672621a..4d323cf 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlBinaryComparatorFactoryProvider.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlBinaryComparatorFactoryProvider.java
@@ -35,6 +35,7 @@
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
import edu.uci.ics.hyracks.data.std.accessors.PointableBinaryComparatorFactory;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
import edu.uci.ics.hyracks.data.std.primitive.BytePointable;
import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
@@ -64,6 +65,8 @@
// Equivalent to UTF8STRING_POINTABLE_INSTANCE but all characters are considered lower case to implement case-insensitive comparisons.
public static final PointableBinaryComparatorFactory UTF8STRING_LOWERCASE_POINTABLE_INSTANCE = new PointableBinaryComparatorFactory(
UTF8StringLowercasePointable.FACTORY);
+ public static final PointableBinaryComparatorFactory BINARY_POINTABLE_INSTANCE = new PointableBinaryComparatorFactory(
+ ByteArrayPointable.FACTORY);
private AqlBinaryComparatorFactoryProvider() {
}
@@ -169,6 +172,9 @@
case UUID: {
return addOffset(AUUIDPartialBinaryComparatorFactory.INSTANCE, ascending);
}
+ case BINARY: {
+ return addOffset(BINARY_POINTABLE_INSTANCE, ascending);
+ }
default: {
return addOffset(RawBinaryComparatorFactory.INSTANCE, ascending);
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlJSONPrinterFactoryProvider.java b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlJSONPrinterFactoryProvider.java
index 22ebd99..9ae9dbc 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlJSONPrinterFactoryProvider.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlJSONPrinterFactoryProvider.java
@@ -14,6 +14,7 @@
*/
package edu.uci.ics.asterix.formats.nontagged;
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryPrinterFactory;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.AUUIDPrinterFactory;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ShortWithoutTypeInfoPrinterFactory;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.json.ABooleanPrinterFactory;
@@ -110,6 +111,8 @@
return ARectanglePrinterFactory.INSTANCE;
case STRING:
return AStringPrinterFactory.INSTANCE;
+ case BINARY:
+ return ABinaryPrinterFactory.INSTANCE;
case RECORD:
return new ARecordPrinterFactory((ARecordType) aqlType);
case ORDEREDLIST:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlNormalizedKeyComputerFactoryProvider.java b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlNormalizedKeyComputerFactoryProvider.java
index 9014a13..ffc3cdf 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlNormalizedKeyComputerFactoryProvider.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlNormalizedKeyComputerFactoryProvider.java
@@ -19,6 +19,7 @@
import edu.uci.ics.asterix.om.types.IAType;
import edu.uci.ics.hyracks.algebricks.data.INormalizedKeyComputerFactoryProvider;
import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
+import edu.uci.ics.hyracks.dataflow.common.data.normalizers.ByteArrayNormalizedKeyComputerFactory;
import edu.uci.ics.hyracks.dataflow.common.data.normalizers.DoubleNormalizedKeyComputerFactory;
import edu.uci.ics.hyracks.dataflow.common.data.normalizers.FloatNormalizedKeyComputerFactory;
import edu.uci.ics.hyracks.dataflow.common.data.normalizers.Integer64NormalizedKeyComputerFactory;
@@ -57,6 +58,9 @@
case STRING: {
return new AWrappedAscNormalizedKeyComputerFactory(new UTF8StringNormalizedKeyComputerFactory());
}
+ case BINARY: {
+ return new AWrappedAscNormalizedKeyComputerFactory(new ByteArrayNormalizedKeyComputerFactory());
+ }
default: {
return null;
}
@@ -83,6 +87,9 @@
case STRING: {
return new AWrappedDescNormalizedKeyComputerFactory(new UTF8StringNormalizedKeyComputerFactory());
}
+ case BINARY: {
+ return new AWrappedDescNormalizedKeyComputerFactory(new ByteArrayNormalizedKeyComputerFactory());
+ }
default: {
return null;
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlPrinterFactoryProvider.java b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlPrinterFactoryProvider.java
index a306608..bf941d0 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlPrinterFactoryProvider.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlPrinterFactoryProvider.java
@@ -14,6 +14,7 @@
*/
package edu.uci.ics.asterix.formats.nontagged;
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryPrinterFactory;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABooleanPrinterFactory;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ACirclePrinterFactory;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ADatePrinterFactory;
@@ -65,8 +66,8 @@
if (aqlType != null) {
switch (aqlType.getTypeTag()) {
- // case ANYTYPE:
- // return AAnyTypePrinterFactory.INSTANCE;
+ // case ANYTYPE:
+ // return AAnyTypePrinterFactory.INSTANCE;
case INT8:
return AInt8PrinterFactory.INSTANCE;
case INT16:
@@ -107,6 +108,8 @@
return ARectanglePrinterFactory.INSTANCE;
case STRING:
return AStringPrinterFactory.INSTANCE;
+ case BINARY:
+ return ABinaryPrinterFactory.INSTANCE;
case RECORD:
return new ARecordPrinterFactory((ARecordType) aqlType);
case ORDEREDLIST:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlSerializerDeserializerProvider.java b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlSerializerDeserializerProvider.java
index 12de85c..8d083ee 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlSerializerDeserializerProvider.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/formats/nontagged/AqlSerializerDeserializerProvider.java
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.io.Serializable;
+import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ABinarySerializerDeserializer;
import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ABooleanSerializerDeserializer;
import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ACircleSerializerDeserializer;
import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ADateSerializerDeserializer;
@@ -128,6 +129,9 @@
case STRING: {
return AStringSerializerDeserializer.INSTANCE;
}
+ case BINARY: {
+ return ABinarySerializerDeserializer.INSTANCE;
+ }
case TIME: {
return ATimeSerializerDeserializer.INSTANCE;
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/ABinary.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/ABinary.java
index 7749a40..9152bcf 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/ABinary.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/ABinary.java
@@ -14,28 +14,54 @@
*/
package edu.uci.ics.asterix.om.base;
-import org.json.JSONException;
-import org.json.JSONObject;
-
import edu.uci.ics.asterix.common.exceptions.AsterixException;
+import edu.uci.ics.asterix.dataflow.data.nontagged.serde.ABinarySerializerDeserializer;
import edu.uci.ics.asterix.om.types.BuiltinType;
import edu.uci.ics.asterix.om.types.IAType;
import edu.uci.ics.asterix.om.visitors.IOMVisitor;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
public class ABinary implements IAObject {
private static final int HASH_PREFIX = 31;
- private final byte[] bytes;
+ protected byte[] bytes;
+ protected int start;
+ protected int length;
public ABinary(byte[] byteArray) {
this.bytes = byteArray;
+ this.start = 0;
+ this.length = byteArray.length;
+ }
+
+ public ABinary(byte[] byteArray, int start, int length) {
+ this.bytes = byteArray;
+ this.start = start;
+ this.length = length;
}
public byte[] getBytes() {
return bytes;
}
+ public int getStart() {
+ return start;
+ }
+
+ public int getLength() {
+ return getByteArrayContentLength() + SIZE_OF_LEADING_LENGTH_FIELD;
+ }
+
+ public int getByteArrayContentLength() {
+ return ABinarySerializerDeserializer.getLength(bytes, start);
+ }
+
+ public static final int SIZE_OF_LEADING_LENGTH_FIELD = ByteArrayPointable.SIZE_OF_LENGTH;
+
@Override
public void accept(IOMVisitor visitor) throws AsterixException {
visitor.visitABinary(this);
@@ -52,11 +78,14 @@
return false;
}
byte[] x = ((ABinary) obj).getBytes();
- if (bytes.length != x.length) {
+ int xStart = ((ABinary) obj).getStart();
+ int xLength = ((ABinary) obj).getLength();
+
+ if (getLength() != xLength) {
return false;
}
- for (int k = 0; k < bytes.length; k++) {
- if (bytes[k] != x[k]) {
+ for (int k = 0; k < xLength; k++) {
+ if (bytes[start + k] != x[xStart + k]) {
return false;
}
}
@@ -65,25 +94,44 @@
@Override
public int hash() {
- int m = HASH_PREFIX <= bytes.length ? HASH_PREFIX : bytes.length;
+ int m = HASH_PREFIX <= getLength() ? HASH_PREFIX : getLength();
int h = 0;
for (int i = 0; i < m; i++) {
- h += 31 * h + bytes[i];
+ h += 31 * h + bytes[start + i];
}
return h;
}
@Override
public String toString() {
- return "ABinary";
+ StringBuilder sb = new StringBuilder();
+ int validLength = getByteArrayContentLength();
+ int start = getStart() + SIZE_OF_LEADING_LENGTH_FIELD;
+ sb.append("ABinary: [ ");
+ for (int i = 0; i < validLength; i++) {
+ if (i > 0) {
+ sb.append(", ");
+ }
+ sb.append(bytes[start + i]);
+ }
+ sb.append(" ]");
+ return sb.toString();
+
}
@Override
public JSONObject toJSON() throws JSONException {
JSONObject json = new JSONObject();
- json.put("ABinary", bytes);
+ int validLength = getByteArrayContentLength();
+ int start = getStart() + SIZE_OF_LEADING_LENGTH_FIELD;
+ JSONArray byteArray = new JSONArray();
+ for (int i = 0; i < validLength; i++) {
+ byteArray.put(bytes[start + i]);
+ }
+ json.put("ABinary", byteArray);
return json;
}
+
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableBinary.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableBinary.java
new file mode 100644
index 0000000..14c7e1e
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableBinary.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.om.base;
+
+public class AMutableBinary extends ABinary {
+
+ public AMutableBinary(byte[] byteArray, int start, int length) {
+ super(byteArray, start, length);
+ }
+
+ public void setValue(byte[] b, int s, int l) {
+ super.bytes = b;
+ super.start = s;
+ super.length = l;
+ }
+
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableUUID.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableUUID.java
index 23241e2..be0bf98 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableUUID.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AMutableUUID.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.om.base;
public class AMutableUUID extends AUUID {
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AUUID.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AUUID.java
index 69dac5d..2fe7c1e 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AUUID.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/AUUID.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.om.base;
import java.security.SecureRandom;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/temporal/GregorianCalendarSystem.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/temporal/GregorianCalendarSystem.java
index 3be0858..4a85e7d 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/temporal/GregorianCalendarSystem.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/base/temporal/GregorianCalendarSystem.java
@@ -1,5 +1,20 @@
/*
* Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may obtain a copy of the License from
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/functions/AsterixBuiltinFunctions.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/functions/AsterixBuiltinFunctions.java
index caec0f6..683cce5 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/functions/AsterixBuiltinFunctions.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/functions/AsterixBuiltinFunctions.java
@@ -61,6 +61,7 @@
import edu.uci.ics.asterix.om.typecomputer.impl.NonTaggedUnaryMinusTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.NotNullTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.OpenRecordConstructorResultType;
+import edu.uci.ics.asterix.om.typecomputer.impl.OptionalABinaryTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.OptionalABooleanTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.OptionalACircleTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.OptionalADateTimeTypeComputer;
@@ -95,6 +96,7 @@
import edu.uci.ics.asterix.om.typecomputer.impl.SubstringTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.TripleStringBoolOrNullTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.TripleStringStringOrNullTypeComputer;
+import edu.uci.ics.asterix.om.typecomputer.impl.UnaryBinaryInt32OrNullTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.UnaryBooleanOrNullFunctionTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.UnaryStringInt32OrNullTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.impl.UnaryStringOrNullTypeComputer;
@@ -207,6 +209,24 @@
FunctionConstants.ASTERIX_NS, "round-half-to-even", 1);
public final static FunctionIdentifier NUMERIC_ROUND_HALF_TO_EVEN2 = new FunctionIdentifier(
FunctionConstants.ASTERIX_NS, "round-half-to-even", 2);
+
+ // binary functions
+ public final static FunctionIdentifier BINARY_LENGTH = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "binary-length", 1);
+ public final static FunctionIdentifier PARSE_BINARY = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "parse-binary", 2);
+ public final static FunctionIdentifier PRINT_BINARY = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "print-binary", 2);
+ public final static FunctionIdentifier BINARY_CONCAT = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "binary-concat", 1);
+ public final static FunctionIdentifier SUBBINARY_FROM = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "sub-binary", 2);
+ public final static FunctionIdentifier SUBBINARY_FROM_TO = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "sub-binary", 3);
+ public final static FunctionIdentifier FIND_BINARY = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "find-binary", 2);
+ public final static FunctionIdentifier FIND_BINARY_FROM = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "find-binary", 3);
// String funcitons
public final static FunctionIdentifier STRING_EQUAL = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
"string-equal", 2);
@@ -429,6 +449,11 @@
"null", 1);
public final static FunctionIdentifier STRING_CONSTRUCTOR = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
"string", 1);
+ public final static FunctionIdentifier BINARY_HEX_CONSTRUCTOR = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
+ "hex", 1);
+ public final static FunctionIdentifier BINARY_BASE64_CONSTRUCTOR = new FunctionIdentifier(
+ FunctionConstants.ASTERIX_NS,
+ "base64", 1);
public final static FunctionIdentifier INT8_CONSTRUCTOR = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
"int8", 1);
public final static FunctionIdentifier INT16_CONSTRUCTOR = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
@@ -656,7 +681,8 @@
public static final FunctionIdentifier IS_NULL = AlgebricksBuiltinFunctions.IS_NULL;
public static final FunctionIdentifier IS_SYSTEM_NULL = new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
- "is-system-null", 1);;
+ "is-system-null", 1);
+ ;
public static final FunctionIdentifier NOT_NULL = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "not-null",
1);
public static final FunctionIdentifier COLLECTION_TO_SEQUENCE = new FunctionIdentifier(
@@ -784,6 +810,15 @@
addFunction(NUMERIC_ROUND_HALF_TO_EVEN, NonTaggedNumericUnaryFunctionTypeComputer.INSTANCE, true);
addFunction(NUMERIC_ROUND_HALF_TO_EVEN2, NonTaggedNumericRoundHalfToEven2TypeComputer.INSTANCE, true);
+ addFunction(BINARY_LENGTH, UnaryBinaryInt32OrNullTypeComputer.INSTANCE, true);
+ addFunction(PARSE_BINARY, OptionalABinaryTypeComputer.INSTANCE, true);
+ addFunction(PRINT_BINARY, OptionalAStringTypeComputer.INSTANCE, true);
+ addFunction(BINARY_CONCAT, OptionalABinaryTypeComputer.INSTANCE, true);
+ addFunction(SUBBINARY_FROM, OptionalABinaryTypeComputer.INSTANCE, true);
+ addFunction(SUBBINARY_FROM_TO, OptionalABinaryTypeComputer.INSTANCE, true);
+ addFunction(FIND_BINARY, OptionalAInt32TypeComputer.INSTANCE, true);
+ addFunction(FIND_BINARY_FROM, OptionalAInt32TypeComputer.INSTANCE, true);
+
addFunction(STRING_TO_CODEPOINT, OrderedListOfAInt32TypeComputer.INSTANCE, true);
addFunction(CODEPOINT_TO_STRING, AStringTypeComputer.INSTANCE, true);
addFunction(STRING_CONCAT, OptionalAStringTypeComputer.INSTANCE, true);
@@ -871,6 +906,8 @@
addFunction(GET_POINTS_LINE_RECTANGLE_POLYGON_ACCESSOR, OrderedListOfAPointTypeComputer.INSTANCE, true);
addFunction(STARTS_WITH, ABooleanTypeComputer.INSTANCE, true);
addFunction(STRING_CONSTRUCTOR, OptionalAStringTypeComputer.INSTANCE, true);
+ addFunction(BINARY_HEX_CONSTRUCTOR, OptionalABinaryTypeComputer.INSTANCE, true);
+ addFunction(BINARY_BASE64_CONSTRUCTOR, OptionalABinaryTypeComputer.INSTANCE, true);
addPrivateFunction(SUBSET_COLLECTION, new IResultTypeComputer() {
@Override
@@ -1208,7 +1245,8 @@
|| (includePrivateFunctions && builtinPrivateFunctionsSet.keySet().contains(finfo))) {
return true;
}
- fi = new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, signature.getName(), signature.getArity());
+ fi = new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, signature.getName(),
+ signature.getArity());
finfo = getAsterixFunctionInfo(fi);
if (builtinPublicFunctionsSet.keySet().contains(finfo)
|| (includePrivateFunctions && builtinPrivateFunctionsSet.keySet().contains(finfo))) {
@@ -1315,7 +1353,8 @@
registeredFunctions.put(fi, functionInfo);
}
- public static void addPrivateFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer, boolean isFunctional) {
+ public static void addPrivateFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer,
+ boolean isFunctional) {
IFunctionInfo functionInfo = new AsterixFunctionInfo(fi, isFunctional);
builtinPrivateFunctionsSet.put(functionInfo, functionInfo);
funTypeComputer.put(functionInfo, typeComputer);
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/AListPointable.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/AListPointable.java
index 2f7b608..95192e5 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/AListPointable.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/AListPointable.java
@@ -100,6 +100,7 @@
if (typedItemList) {
switch (itemTag) {
case STRING:
+ case BINARY:
case RECORD:
case ORDEREDLIST:
case UNORDEREDLIST:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/APrintVisitor.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/APrintVisitor.java
index 15de81c..7d4cc86 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/APrintVisitor.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/APrintVisitor.java
@@ -20,6 +20,7 @@
import java.util.Map;
import edu.uci.ics.asterix.common.exceptions.AsterixException;
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryHexPrinter;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABooleanPrinter;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ACirclePrinter;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ADatePrinter;
@@ -186,6 +187,10 @@
AStringPrinter.INSTANCE.print(b, s, l, ps);
break;
}
+ case BINARY: {
+ ABinaryHexPrinter.INSTANCE.print(b, s, l, ps);
+ break;
+ }
case INTERVAL: {
AIntervalPrinter.INSTANCE.print(b, s, l, ps);
break;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/json/APrintVisitor.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/json/APrintVisitor.java
index 24e8ba5..2d716d6 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/json/APrintVisitor.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/printer/json/APrintVisitor.java
@@ -20,6 +20,7 @@
import java.util.Map;
import edu.uci.ics.asterix.common.exceptions.AsterixException;
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryHexPrinter;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.AUUIDPrinter;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ShortWithoutTypeInfoPrinter;
import edu.uci.ics.asterix.dataflow.data.nontagged.printers.json.ABooleanPrinter;
@@ -177,6 +178,10 @@
AStringPrinter.INSTANCE.print(b, s, l, ps);
break;
}
+ case BINARY: {
+ ABinaryHexPrinter.INSTANCE.print(b, s, l, ps);
+ break;
+ }
case YEARMONTHDURATION: {
AYearMonthDurationPrinter.INSTANCE.print(b, s, l, ps);
break;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/ABinaryTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/ABinaryTypeComputer.java
new file mode 100644
index 0000000..16ec981
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/ABinaryTypeComputer.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.om.typecomputer.impl;
+
+import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.om.types.IAType;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+
+public class ABinaryTypeComputer implements IResultTypeComputer {
+ public static final ABinaryTypeComputer INSTANCE = new ABinaryTypeComputer();
+
+ private ABinaryTypeComputer() {
+
+ }
+
+ @Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
+ IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
+ return BuiltinType.ABINARY;
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/AUUIDTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/AUUIDTypeComputer.java
index 18d269b..3d46705 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/AUUIDTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/AUUIDTypeComputer.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.om.typecomputer.impl;
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/FlowRecordResultTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/FlowRecordResultTypeComputer.java
index a982a1f..91b0138 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/FlowRecordResultTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/FlowRecordResultTypeComputer.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.om.typecomputer.impl;
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java
new file mode 100644
index 0000000..01d507f
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.om.typecomputer.impl;
+
+import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
+import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
+import edu.uci.ics.asterix.om.types.AUnionType;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.om.types.IAType;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class OptionalABinaryTypeComputer implements IResultTypeComputer {
+ public static final OptionalABinaryTypeComputer INSTANCE = new OptionalABinaryTypeComputer();
+
+ private OptionalABinaryTypeComputer(){
+
+ }
+
+ @Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
+ IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
+ if (TypeComputerUtilities.nullableType(expression, env)) {
+ List<IAType> unionList = new ArrayList<IAType>();
+ unionList.add(BuiltinType.ANULL);
+ unionList.add(BuiltinType.ABINARY);
+ return new AUnionType(unionList, "OptionalBinary");
+ } else {
+ return BuiltinType.ABINARY;
+ }
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
index 75ed41d..9f963f4 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.om.typecomputer.impl;
import java.io.IOException;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/TypeCompatibilityChecker.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/TypeCompatibilityChecker.java
index 0739b2f..7c8ae51 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/TypeCompatibilityChecker.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/TypeCompatibilityChecker.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package edu.uci.ics.asterix.om.typecomputer.impl;
import java.util.ArrayList;
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt32OrNullTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt32OrNullTypeComputer.java
new file mode 100644
index 0000000..3a28b52
--- /dev/null
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt32OrNullTypeComputer.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.om.typecomputer.impl;
+
+import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.om.types.AUnionType;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.om.types.IAType;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.NotImplementedException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UnaryBinaryInt32OrNullTypeComputer implements IResultTypeComputer {
+ public static final UnaryBinaryInt32OrNullTypeComputer INSTANCE = new UnaryBinaryInt32OrNullTypeComputer();
+
+ private UnaryBinaryInt32OrNullTypeComputer() {
+
+ }
+
+ @Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
+ IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
+ AbstractFunctionCallExpression fce = (AbstractFunctionCallExpression) expression;
+ if (fce.getArguments().size() != 1) {
+ throw new AlgebricksException("Wrong Argument Number.");
+ }
+ ILogicalExpression arg0 = fce.getArguments().get(0).getValue();
+ IAType t0;
+ t0 = (IAType) env.getType(arg0);
+ if (t0.getTypeTag() != ATypeTag.NULL
+ && t0.getTypeTag() != ATypeTag.BINARY
+ && (t0.getTypeTag() == ATypeTag.UNION && !((AUnionType) t0).getUnionList()
+ .contains(BuiltinType.ABINARY))) {
+ throw new NotImplementedException("Expects Binary Type.");
+ }
+
+ List<IAType> unionList = new ArrayList<IAType>();
+ unionList.add(BuiltinType.ANULL);
+ if (t0.getTypeTag() == ATypeTag.NULL) {
+ return BuiltinType.ANULL;
+ }
+
+ if (t0.getTypeTag() == ATypeTag.BINARY || t0.getTypeTag().equals(ATypeTag.UNION)) {
+ unionList.add(BuiltinType.AINT32);
+ }
+
+ return new AUnionType(unionList, "binary-length-Result");
+
+ }
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/ARecordType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/ARecordType.java
index 493709e..be14ef7 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/ARecordType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/ARecordType.java
@@ -279,6 +279,7 @@
case FLOAT:
case DOUBLE:
case STRING:
+ case BINARY:
case DATE:
case TIME:
case UUID:
@@ -336,6 +337,7 @@
case FLOAT:
case DOUBLE:
case STRING:
+ case BINARY:
case DATE:
case TIME:
case DATETIME:
@@ -438,6 +440,7 @@
case FLOAT:
case DOUBLE:
case STRING:
+ case BINARY:
case DATE:
case TIME:
case DATETIME:
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/util/NonTaggedFormatUtil.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/util/NonTaggedFormatUtil.java
index b16fddb..cbc5054 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/util/NonTaggedFormatUtil.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/util/NonTaggedFormatUtil.java
@@ -45,6 +45,7 @@
public static final boolean isFixedSizedCollection(IAType type) {
switch (type.getTypeTag()) {
case STRING:
+ case BINARY:
case RECORD:
case ORDEREDLIST:
case UNORDEREDLIST:
@@ -135,6 +136,7 @@
else
return AInt16SerializerDeserializer.getShort(serNonTaggedAObject, offset) * 16 + 2;
case STRING:
+ case BINARY:
if (tagged)
return AInt16SerializerDeserializer.getUnsignedShort(serNonTaggedAObject, offset + 1) + 2;
else
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/visitors/OMPrintToStringVisitor.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/visitors/OMPrintToStringVisitor.java
index 073fb0f..5571769 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/visitors/OMPrintToStringVisitor.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/visitors/OMPrintToStringVisitor.java
@@ -71,6 +71,7 @@
@Override
public void visitABinary(ABinary obj) throws AsterixException {
+ // TODO Auto-generated method stub
throw new NotImplementedException();
}
diff --git a/asterix-om/src/test/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryPrinterTest.java b/asterix-om/src/test/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryPrinterTest.java
new file mode 100644
index 0000000..04036df
--- /dev/null
+++ b/asterix-om/src/test/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/ABinaryPrinterTest.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
+
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import org.junit.Test;
+
+import javax.xml.bind.DatatypeConverter;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.Arrays;
+
+import static org.junit.Assert.*;
+
+public class ABinaryPrinterTest {
+
+ public static byte[] generateABinaryBytesByStringContent(String content){
+ String padding = "000000" + content;
+ byte [] bytes = DatatypeConverter.parseHexBinary(padding);
+ ByteArrayPointable.putLength(content.length() / 2, bytes, 1);
+ return bytes;
+ }
+
+ public static void testOneInputString(String input) throws AlgebricksException {
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintStream ps = new PrintStream(baos);
+
+ byte [] bytes = generateABinaryBytesByStringContent(input);
+ ABinaryHexPrinter.INSTANCE.print(bytes, 0, bytes.length, ps);
+
+ String pureHex = baos.toString();
+ assertTrue(pureHex.startsWith("hex("));
+ assertTrue(pureHex.endsWith("\")"));
+ assertTrue(pureHex.substring(5,pureHex.length()-2).equalsIgnoreCase(input));
+ }
+
+ @Test
+ public void testPrintEveryChar() throws Exception {
+ testOneInputString("ABCDEF0123456789");
+ testOneInputString("0A0B0C0D0E0F00010203040506070809");
+ testOneInputString("A0B0C0D0E0F000102030405060708090");
+ }
+
+ @Test
+ public void testSpecialString() throws Exception{
+ testOneInputString("");
+ char [] chars = new char[(ByteArrayPointable.MAX_LENGTH ) * 2];
+ Arrays.fill(chars, 'F');
+ testOneInputString(new String(chars));
+ }
+}
\ No newline at end of file
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/common/AbstractAsterixListIterator.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/common/AbstractAsterixListIterator.java
index 56e5139..e95e9cb 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/common/AbstractAsterixListIterator.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/common/AbstractAsterixListIterator.java
@@ -124,6 +124,10 @@
}
break;
}
+ case BINARY: {
+ cmp = AqlBinaryComparatorFactoryProvider.BINARY_POINTABLE_INSTANCE.createBinaryComparator();
+ break;
+ }
default: {
cmp = null;
break;
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java
index e5a26fc..ee1d98a 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java
@@ -42,6 +42,8 @@
import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.data.std.accessors.PointableBinaryComparatorFactory;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
import edu.uci.ics.hyracks.dataflow.common.data.marshalling.FloatSerializerDeserializer;
@@ -54,7 +56,9 @@
EQUAL,
GREATER_THAN,
UNKNOWN
- };
+ }
+
+ ;
protected DataOutput out;
protected ArrayBackedValueStorage outLeft = new ArrayBackedValueStorage();
@@ -85,6 +89,9 @@
.createBinaryComparator();
protected IBinaryComparator rectangleBinaryComparator = ARectanglePartialBinaryComparatorFactory.INSTANCE
.createBinaryComparator();
+ protected final IBinaryComparator byteArrayComparator = new PointableBinaryComparatorFactory(
+ ByteArrayPointable.FACTORY)
+ .createBinaryComparator();
public AbstractComparisonEvaluator(DataOutput out, ICopyEvaluatorFactory evalLeftFactory,
ICopyEvaluatorFactory evalRightFactory) throws AlgebricksException {
@@ -142,8 +149,9 @@
}
}
- if (isLeftNull || isRightNull)
+ if (isLeftNull || isRightNull) {
return ComparisonResult.UNKNOWN;
+ }
switch (typeTag1) {
case INT8: {
@@ -228,15 +236,20 @@
result = rectangleBinaryComparator.compare(outLeft.getByteArray(), 1, outLeft.getLength() - 1,
outRight.getByteArray(), 1, outRight.getLength() - 1);
break;
+ case BINARY:
+ result = byteArrayComparator.compare(outLeft.getByteArray(), 1, outLeft.getLength() - 1,
+ outRight.getByteArray(), 1, outRight.getLength() - 1);
+ break;
default:
throw new AlgebricksException("Comparison for " + actualTypeTag + " is not supported.");
}
- if (result == 0)
+ if (result == 0) {
return ComparisonResult.EQUAL;
- else if (result < 0)
+ } else if (result < 0) {
return ComparisonResult.LESS_THAN;
- else
+ } else {
return ComparisonResult.GREATER_THAN;
+ }
}
private ComparisonResult compareBooleanWithArg(ATypeTag typeTag2) throws AlgebricksException {
@@ -252,12 +265,13 @@
if (typeTag2 == ATypeTag.STRING) {
int result = strBinaryComp.compare(outLeft.getByteArray(), 1, outLeft.getLength() - 1,
outRight.getByteArray(), 1, outRight.getLength() - 1);
- if (result == 0)
+ if (result == 0) {
return ComparisonResult.EQUAL;
- else if (result < 0)
+ } else if (result < 0) {
return ComparisonResult.LESS_THAN;
- else
+ } else {
return ComparisonResult.GREATER_THAN;
+ }
}
throw new AlgebricksException("Comparison is undefined between types AString and " + typeTag2 + " .");
}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/constructors/ABinaryBase64StringConstructorDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/constructors/ABinaryBase64StringConstructorDescriptor.java
new file mode 100644
index 0000000..e492c82
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/constructors/ABinaryBase64StringConstructorDescriptor.java
@@ -0,0 +1,35 @@
+package edu.uci.ics.asterix.runtime.evaluators.constructors;
+
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.ByteArrayBase64ParserFactory;
+
+public class ABinaryBase64StringConstructorDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override public IFunctionDescriptor createFunctionDescriptor() {
+ return new ABinaryBase64StringConstructorDescriptor();
+ }
+ };
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(IDataOutputProvider output) throws AlgebricksException {
+ return new ABinaryHexStringConstructorDescriptor.ABinaryConstructorEvaluator(output, args[0],
+ ByteArrayBase64ParserFactory.INSTANCE);
+ }
+ };
+ }
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.BINARY_BASE64_CONSTRUCTOR;
+ }
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/constructors/ABinaryHexStringConstructorDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/constructors/ABinaryHexStringConstructorDescriptor.java
new file mode 100644
index 0000000..bcf2715
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/constructors/ABinaryHexStringConstructorDescriptor.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.constructors;
+
+import edu.uci.ics.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
+import edu.uci.ics.asterix.om.base.ANull;
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.ByteArrayHexParserFactory;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.IValueParser;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.IValueParserFactory;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+public class ABinaryHexStringConstructorDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = 1L;
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ public IFunctionDescriptor createFunctionDescriptor() {
+ return new ABinaryHexStringConstructorDescriptor();
+ }
+ };
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new ABinaryConstructorEvaluator(output, args[0], ByteArrayHexParserFactory.INSTANCE);
+ }
+ };
+ }
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.BINARY_HEX_CONSTRUCTOR;
+ }
+
+ static class ABinaryConstructorEvaluator implements ICopyEvaluator {
+ private DataOutput out;
+ private ArrayBackedValueStorage outInput;
+ private ICopyEvaluator eval;
+ private IValueParser byteArrayParser;
+
+ @SuppressWarnings("unchecked")
+ private ISerializerDeserializer<ANull> nullSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.ANULL);
+
+ public ABinaryConstructorEvaluator(final IDataOutputProvider output, ICopyEvaluatorFactory copyEvaluatorFactory,
+ IValueParserFactory valueParserFactory)
+ throws AlgebricksException {
+ out = output.getDataOutput();
+ outInput = new ArrayBackedValueStorage();
+ eval = copyEvaluatorFactory.createEvaluator(outInput);
+ byteArrayParser = valueParserFactory.createValueParser();
+ }
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+
+ try {
+ outInput.reset();
+ eval.evaluate(tuple);
+ byte[] binary = outInput.getByteArray();
+
+ ATypeTag tt = ATypeTag.VALUE_TYPE_MAPPING[binary[0]];
+ if (tt == ATypeTag.NULL) {
+ nullSerde.serialize(ANull.NULL, out);
+ } else if (tt == ATypeTag.BINARY) {
+ out.write(outInput.getByteArray(), outInput.getStartOffset(), outInput.getLength());
+ } else if (tt == ATypeTag.STRING) {
+ String string = new String(outInput.getByteArray(), 3, outInput.getLength() - 3,
+ "UTF-8");
+ char[] buffer = string.toCharArray();
+ out.write(ATypeTag.BINARY.serialize());
+ byteArrayParser.parse(buffer, 0, buffer.length, out);
+ } else {
+ throw new AlgebricksException("binary type of " + tt + "haven't implemented yet.");
+ }
+ } catch (IOException e) {
+ throw new AlgebricksException(e);
+ }
+ }
+ }
+
+ ;
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/AbstractCopyEvaluator.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/AbstractCopyEvaluator.java
new file mode 100644
index 0000000..09dc82d
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/AbstractCopyEvaluator.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
+import edu.uci.ics.asterix.om.base.ANull;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+
+import java.io.DataOutput;
+
+public abstract class AbstractCopyEvaluator implements ICopyEvaluator {
+ @SuppressWarnings("unchecked")
+ protected ISerializerDeserializer<ANull> nullSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.ANULL);
+
+ protected DataOutput dataOutput;
+ protected ArrayBackedValueStorage[] storages;
+ protected ICopyEvaluator[] evaluators;
+
+ public AbstractCopyEvaluator(final IDataOutputProvider output, final ICopyEvaluatorFactory[] copyEvaluatorFactories)
+ throws AlgebricksException {
+ dataOutput = output.getDataOutput();
+ storages = new ArrayBackedValueStorage[copyEvaluatorFactories.length];
+ evaluators = new ICopyEvaluator[copyEvaluatorFactories.length];
+ for (int i = 0; i < evaluators.length; ++i) {
+ storages[i] = new ArrayBackedValueStorage();
+ evaluators[i] = copyEvaluatorFactories[i].createEvaluator(storages[i]);
+ }
+ }
+
+ public ATypeTag evaluateTuple(IFrameTupleReference tuple, int id) throws AlgebricksException {
+ storages[id].reset();
+ evaluators[id].evaluate(tuple);
+ return ATypeTag.VALUE_TYPE_MAPPING[storages[id].getByteArray()[0]];
+ }
+
+ public boolean serializeNullIfAnyNull(ATypeTag... tags) throws HyracksDataException {
+ for (ATypeTag typeTag : tags) {
+ if (typeTag == ATypeTag.NULL) {
+ nullSerde.serialize(ANull.NULL, dataOutput);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static final String FIRST = "1st";
+ private static final String SECOND = "2nd";
+ private static final String THIRD = "3rd";
+ private static final String TH = "th";
+
+ public static String idToString(int i) {
+ String prefix = "";
+ if (i >= 10) {
+ prefix = String.valueOf(i / 10);
+ }
+ switch (i % 10) {
+ case 1:
+ return prefix + FIRST;
+ case 2:
+ return prefix + SECOND;
+ case 3:
+ return prefix + THIRD;
+ default:
+ return String.valueOf(i) + TH;
+ }
+ }
+
+ public static void checkTypeMachingThrowsIfNot(String title, ATypeTag[] expected, ATypeTag... actual)
+ throws AlgebricksException {
+ for (int i = 0; i < expected.length; i++) {
+ if (expected[i] != actual[i]) {
+ throw new AlgebricksException(title +
+ ": expects " + expected[i] + " at " + idToString(i + 1) + " argument, but got " + actual[i]);
+ }
+ }
+ }
+
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/BinaryConcatDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/BinaryConcatDescriptor.java
new file mode 100644
index 0000000..ab1d6e1
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/BinaryConcatDescriptor.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.common.exceptions.AsterixException;
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.common.AsterixListAccessor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+
+import java.io.IOException;
+
+public class BinaryConcatDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override public IFunctionDescriptor createFunctionDescriptor() {
+ return new BinaryConcatDescriptor();
+ }
+ };
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.BINARY_CONCAT;
+ }
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new AbstractCopyEvaluator(output, args) {
+
+ private final AsterixListAccessor listAccessor = new AsterixListAccessor();
+ private final byte SER_BINARY_TYPE = ATypeTag.BINARY.serialize();
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag typeTag = evaluateTuple(tuple, 0);
+ if (typeTag != ATypeTag.UNORDEREDLIST && typeTag != ATypeTag.ORDEREDLIST) {
+ throw new AlgebricksException(getIdentifier().getName()
+ + ": expects input type ORDEREDLIST/UNORDEREDLIST, but got "
+ + typeTag);
+ }
+ try {
+ listAccessor.reset(storages[0].getByteArray(), 0);
+
+ int concatLength = 0;
+ for (int i = 0; i < listAccessor.size(); i++) {
+ int itemOffset = listAccessor.getItemOffset(i);
+ ATypeTag itemType = listAccessor.getItemType(itemOffset);
+ if (itemType != ATypeTag.BINARY) {
+ if (serializeNullIfAnyNull(itemType)) {
+ return;
+ }
+ throw new AlgebricksException(getIdentifier().getName()
+ + ": expects type STRING/NULL for the list item but got " + itemType);
+ }
+ concatLength += ByteArrayPointable.getLength(storages[0].getByteArray(), itemOffset);
+ }
+ if (concatLength > ByteArrayPointable.MAX_LENGTH) {
+ throw new AlgebricksException("the concatenated binary is too long.");
+ }
+ dataOutput.writeByte(SER_BINARY_TYPE);
+ dataOutput.writeShort(concatLength);
+
+ for (int i = 0; i < listAccessor.size(); i++) {
+ int itemOffset = listAccessor.getItemOffset(i);
+ int length = ByteArrayPointable.getLength(storages[0].getByteArray(), itemOffset);
+ dataOutput.write(storages[0].getByteArray(),
+ itemOffset + ByteArrayPointable.SIZE_OF_LENGTH, length);
+ }
+ } catch (HyracksDataException e) {
+ throw new AlgebricksException(e);
+ } catch (IOException e) {
+ throw new AlgebricksException(e);
+ } catch (AsterixException e) {
+ throw new AlgebricksException(e);
+ }
+
+ }
+ };
+
+ }
+ };
+
+ }
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/BinaryLengthDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/BinaryLengthDescriptor.java
new file mode 100644
index 0000000..1d4717e
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/BinaryLengthDescriptor.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
+import edu.uci.ics.asterix.om.base.AInt32;
+import edu.uci.ics.asterix.om.base.AMutableInt32;
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+
+public class BinaryLengthDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = 1L;
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ public IFunctionDescriptor createFunctionDescriptor() {
+ return new BinaryLengthDescriptor();
+ }
+ };
+
+ private static final ATypeTag[] EXPECTED_TAGS = { ATypeTag.BINARY };
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new AbstractCopyEvaluator(output, args) {
+
+ private AMutableInt32 result = new AMutableInt32(0);
+ @SuppressWarnings("unchecked")
+ private ISerializerDeserializer<AInt32> intSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.AINT32);
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag tag = evaluateTuple(tuple, 0);
+ try {
+ if (serializeNullIfAnyNull(tag)) {
+ return;
+ }
+ checkTypeMachingThrowsIfNot(getIdentifier().getName(), EXPECTED_TAGS, tag);
+ int len = ByteArrayPointable.getLength(storages[0].getByteArray(), 1);
+ result.setValue(len);
+ intSerde.serialize(result, dataOutput);
+ } catch (HyracksDataException e) {
+ throw new AlgebricksException(e);
+ }
+
+ }
+ };
+ }
+ };
+ }
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.BINARY_LENGTH;
+ }
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/FindBinaryDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/FindBinaryDescriptor.java
new file mode 100644
index 0000000..4ba91d9
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/FindBinaryDescriptor.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
+import edu.uci.ics.asterix.om.base.AInt32;
+import edu.uci.ics.asterix.om.base.AMutableInt32;
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+
+public class FindBinaryDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override public IFunctionDescriptor createFunctionDescriptor() {
+ return new FindBinaryDescriptor();
+ }
+ };
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.FIND_BINARY;
+ }
+
+ private static final ATypeTag[] EXPECTED_INPUT_TAG = { ATypeTag.BINARY, ATypeTag.BINARY };
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new AbstractFindBinaryCopyEvaluator(output, args, getIdentifier().getName()) {
+ @Override protected int getFromOffset(IFrameTupleReference tuple) throws AlgebricksException {
+ return 0;
+ }
+ };
+ }
+ };
+ }
+
+ static abstract class AbstractFindBinaryCopyEvaluator extends AbstractCopyEvaluator {
+
+ public AbstractFindBinaryCopyEvaluator(IDataOutputProvider output,
+ ICopyEvaluatorFactory[] copyEvaluatorFactories, String functionName) throws AlgebricksException {
+ super(output, copyEvaluatorFactories);
+ this.functionName = functionName;
+ }
+
+ protected String functionName;
+ protected AMutableInt32 result = new AMutableInt32(-1);
+
+ @SuppressWarnings("unchecked")
+ protected ISerializerDeserializer<AInt32> intSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.AINT32);
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag textTag = evaluateTuple(tuple, 0);
+ ATypeTag wordTag = evaluateTuple(tuple, 1);
+ int fromOffset = getFromOffset(tuple);
+
+ try {
+ if (serializeNullIfAnyNull(textTag, wordTag)) {
+ return;
+ }
+ checkTypeMachingThrowsIfNot(functionName, EXPECTED_INPUT_TAG, textTag,
+ wordTag);
+
+ byte[] textBytes = storages[0].getByteArray();
+ byte[] wordBytes = storages[1].getByteArray();
+ int textLength = ByteArrayPointable.getLength(textBytes, 1);
+ int wordLength = ByteArrayPointable.getLength(wordBytes, 1);
+ result.setValue(1 + indexOf(textBytes, 3, textLength, wordBytes, 3, wordLength, fromOffset));
+ intSerde.serialize(result, dataOutput);
+ } catch (HyracksDataException e) {
+ throw new AlgebricksException(e);
+ }
+ }
+
+ protected abstract int getFromOffset(IFrameTupleReference tuple) throws AlgebricksException;
+ }
+
+ // copy from String.indexOf(String)
+ static int indexOf(byte[] source, int sourceOffset, int sourceCount,
+ byte[] target, int targetOffset, int targetCount,
+ int fromIndex) {
+ if (fromIndex >= sourceCount) {
+ return (targetCount == 0 ? sourceCount : -1);
+ }
+ if (fromIndex < 0) {
+ fromIndex = 0;
+ }
+ if (targetCount == 0) {
+ return fromIndex;
+ }
+
+ byte first = target[targetOffset];
+ int max = sourceOffset + (sourceCount - targetCount);
+
+ for (int i = sourceOffset + fromIndex; i <= max; i++) {
+ /* Look for first character. */
+ if (source[i] != first) {
+ while (++i <= max && source[i] != first)
+ ;
+ }
+
+ /* Found first character, now look at the rest of v2 */
+ if (i <= max) {
+ int j = i + 1;
+ int end = j + targetCount - 1;
+ for (int k = targetOffset + 1; j < end && source[j]
+ == target[k]; j++, k++)
+ ;
+
+ if (j == end) {
+ /* Found whole string. */
+ return i - sourceOffset;
+ }
+ }
+ }
+ return -1;
+ }
+
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/FindBinaryFromDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/FindBinaryFromDescriptor.java
new file mode 100644
index 0000000..4d0598b
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/FindBinaryFromDescriptor.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+import edu.uci.ics.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer;
+
+public class FindBinaryFromDescriptor extends AbstractScalarFunctionDynamicDescriptor{
+
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override public IFunctionDescriptor createFunctionDescriptor() {
+ return new FindBinaryFromDescriptor();
+ }
+ };
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.FIND_BINARY_FROM;
+ }
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output) throws AlgebricksException {
+ return new FindBinaryDescriptor.AbstractFindBinaryCopyEvaluator(output, args, getIdentifier().getName()) {
+ @Override protected int getFromOffset(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag offsetTag = evaluateTuple(tuple, 2);
+ if (offsetTag != ATypeTag.INT32){
+ throw new AlgebricksException(functionName + ":expects INT32 at 3rd arguments, but got " + offsetTag);
+ }
+ return IntegerSerializerDeserializer.getInt(storages[2].getByteArray(), 1);
+ }
+ };
+ }
+ };
+ }
+
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/ParseBinaryDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/ParseBinaryDescriptor.java
new file mode 100644
index 0000000..35a7fec
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/ParseBinaryDescriptor.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
+import edu.uci.ics.asterix.om.base.ABinary;
+import edu.uci.ics.asterix.om.base.AMutableBinary;
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.om.types.BuiltinType;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.ByteArrayBase64ParserFactory;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.ByteArrayHexParserFactory;
+
+public class ParseBinaryDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+ static final String HEX_FORMAT = "hex";
+ static final String BASE64_FORMAT = "base64";
+
+ static boolean isCaseIgnoreEqual(String expectedLowerCaseString, byte[] bytes, int start,
+ int length) {
+ int pos = start;
+ int index = 0;
+ while (pos < start + length) {
+ char c1 = UTF8StringPointable.charAt(bytes, pos);
+ c1 = Character.toLowerCase(c1);
+ if (expectedLowerCaseString.charAt(index++) != c1) {
+ return false;
+ }
+ pos += UTF8StringPointable.charSize(bytes, pos);
+ }
+ return index == expectedLowerCaseString.length();
+ }
+
+ public final static IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
+ public IFunctionDescriptor createFunctionDescriptor() {
+ return new ParseBinaryDescriptor();
+ }
+ };
+
+ public static final ATypeTag[] EXPECTED_INPUT_TAGS = { ATypeTag.STRING, ATypeTag.STRING };
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.PARSE_BINARY;
+ }
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new AbstractCopyEvaluator(output, args) {
+
+ @SuppressWarnings("unchecked")
+ private ISerializerDeserializer<ABinary> binarySerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.ABINARY);
+
+ private AMutableBinary aBinary = new AMutableBinary(new byte[0], 0, 0);
+ private final byte[] quadruplet = new byte[4];
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag binaryTag = evaluateTuple(tuple, 0);
+ ATypeTag formatTag = evaluateTuple(tuple, 1);
+
+ try {
+ if (serializeNullIfAnyNull(binaryTag, formatTag)) {
+ return;
+ }
+ checkTypeMachingThrowsIfNot(getIdentifier().getName(), EXPECTED_INPUT_TAGS, binaryTag,
+ formatTag);
+ int lengthString = UTF8StringPointable.getUTFLength(storages[0].getByteArray(), 1);
+ int lengthFormat = UTF8StringPointable.getUTFLength(storages[1].getByteArray(), 1);
+ byte[] buffer;
+ if (isCaseIgnoreEqual(HEX_FORMAT, storages[1].getByteArray(), 3, lengthFormat)) {
+ buffer = ByteArrayHexParserFactory
+ .extractPointableArrayFromHexString(storages[0].getByteArray(), 3,
+ lengthString, aBinary.getBytes());
+ } else if (isCaseIgnoreEqual(BASE64_FORMAT, storages[1].getByteArray(), 3, lengthFormat)) {
+ buffer = ByteArrayBase64ParserFactory
+ .extractPointableArrayFromBase64String(storages[0].getByteArray(), 3
+ , lengthString, aBinary.getBytes(), quadruplet);
+ } else {
+ throw new AlgebricksException(getIdentifier().getName()
+ + ": expects format indicator of \"hex\" or \"base64\" in the 2nd argument");
+ }
+ aBinary.setValue(buffer, 0, buffer.length);
+ binarySerde.serialize(aBinary, dataOutput);
+ } catch (HyracksDataException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+
+ }
+
+ };
+ }
+
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java
new file mode 100644
index 0000000..dd29782
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryBase64Printer;
+import edu.uci.ics.asterix.dataflow.data.nontagged.printers.ABinaryHexPrinter;
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+
+import java.io.IOException;
+
+import static edu.uci.ics.asterix.runtime.evaluators.functions.binary.ParseBinaryDescriptor.*;
+
+public class PrintBinaryDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+ private static final byte SER_STRING_BYTE = ATypeTag.STRING.serialize();
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.PRINT_BINARY;
+ }
+
+ public final static IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
+ public IFunctionDescriptor createFunctionDescriptor() {
+ return new PrintBinaryDescriptor();
+ }
+ };
+
+ public final static ATypeTag[] EXPECTED_INPUT_TAGS = { ATypeTag.BINARY, ATypeTag.STRING };
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new AbstractCopyEvaluator(output, args) {
+
+ private StringBuilder stringBuilder = new StringBuilder();
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag arg0Tag = evaluateTuple(tuple, 0);
+ ATypeTag arg1Tag = evaluateTuple(tuple, 1);
+
+ try {
+ if (serializeNullIfAnyNull(arg0Tag, arg1Tag)) {
+ return;
+ }
+ checkTypeMachingThrowsIfNot(getIdentifier().getName(), EXPECTED_INPUT_TAGS, arg0Tag,
+ arg1Tag);
+
+ byte[] binaryBytes = storages[0].getByteArray();
+ byte[] formatBytes = storages[1].getByteArray();
+
+ int lengthBinary = ByteArrayPointable.getLength(binaryBytes, 1);
+ int lengthFormat = UTF8StringPointable.getUTFLength(formatBytes, 1);
+ stringBuilder.setLength(0);
+ if (isCaseIgnoreEqual(HEX_FORMAT, formatBytes, 3, lengthFormat)) {
+ ABinaryHexPrinter
+ .printHexString(binaryBytes, 3, lengthBinary, stringBuilder);
+
+ } else if (isCaseIgnoreEqual(BASE64_FORMAT, formatBytes, 3, lengthFormat)) {
+ ABinaryBase64Printer
+ .printBase64Binary(binaryBytes, 3, lengthBinary, stringBuilder);
+ } else {
+ throw new AlgebricksException(getIdentifier().getName()
+ + ": expects format indicator of \"hex\" or \"base64\" in the 2nd argument");
+ }
+ dataOutput.writeByte(SER_STRING_BYTE);
+ dataOutput.writeUTF(stringBuilder.toString());
+ } catch (HyracksDataException e) {
+ throw new AlgebricksException(e);
+ } catch (IOException e) {
+ throw new AlgebricksException(e);
+ }
+ }
+ };
+ }
+ };
+
+ }
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/SubBinaryFromDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/SubBinaryFromDescriptor.java
new file mode 100644
index 0000000..2247f2e
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/SubBinaryFromDescriptor.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+
+public class SubBinaryFromDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override public IFunctionDescriptor createFunctionDescriptor() {
+ return new SubBinaryFromDescriptor();
+ }
+ };
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.SUBBINARY_FROM;
+ }
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new SubBinaryFromToDescriptor.AbstractSubBinaryCopyEvaluator(output, args,
+ getIdentifier().getName()) {
+ @Override protected int getSubLength(IFrameTupleReference tuple) throws AlgebricksException {
+ return ByteArrayPointable.MAX_LENGTH;
+ }
+ };
+ }
+ };
+ }
+
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/SubBinaryFromToDescriptor.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/SubBinaryFromToDescriptor.java
new file mode 100644
index 0000000..9b3a48f
--- /dev/null
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/functions/binary/SubBinaryFromToDescriptor.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.asterix.runtime.evaluators.functions.binary;
+
+import edu.uci.ics.asterix.om.functions.AsterixBuiltinFunctions;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptor;
+import edu.uci.ics.asterix.om.functions.IFunctionDescriptorFactory;
+import edu.uci.ics.asterix.om.types.ATypeTag;
+import edu.uci.ics.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
+import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
+import edu.uci.ics.hyracks.data.std.primitive.ByteArrayPointable;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+import edu.uci.ics.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer;
+
+import java.io.IOException;
+
+public class SubBinaryFromToDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+ public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override public IFunctionDescriptor createFunctionDescriptor() {
+ return new SubBinaryFromToDescriptor();
+ }
+ };
+
+ @Override public FunctionIdentifier getIdentifier() {
+ return AsterixBuiltinFunctions.SUBBINARY_FROM_TO;
+ }
+
+ @Override public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args)
+ throws AlgebricksException {
+ return new ICopyEvaluatorFactory() {
+ @Override public ICopyEvaluator createEvaluator(final IDataOutputProvider output)
+ throws AlgebricksException {
+ return new AbstractSubBinaryCopyEvaluator(output, args, getIdentifier().getName()) {
+ @Override protected int getSubLength(IFrameTupleReference tuple) throws AlgebricksException {
+ ATypeTag tagSubLength = evaluateTuple(tuple, 2);
+ if (tagSubLength != ATypeTag.INT32) {
+ throw new AlgebricksException(
+ functionName + ":expects INT32 at 3rd arguments, but got " + tagSubLength);
+ }
+ return IntegerSerializerDeserializer.getInt(storages[2].getByteArray(), 1);
+ }
+ };
+ }
+ };
+ }
+
+ static abstract class AbstractSubBinaryCopyEvaluator extends AbstractCopyEvaluator {
+ public AbstractSubBinaryCopyEvaluator(IDataOutputProvider output,
+ ICopyEvaluatorFactory[] copyEvaluatorFactories, String functionName)
+ throws AlgebricksException {
+ super(output, copyEvaluatorFactories);
+ this.functionName = functionName;
+ }
+
+ protected final String functionName;
+
+ static final ATypeTag[] EXPECTED_INPUT_TAGS = { ATypeTag.BINARY, ATypeTag.INT32 };
+
+ @Override public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
+
+ ATypeTag argTag0 = evaluateTuple(tuple, 0);
+ ATypeTag argTag1 = evaluateTuple(tuple, 1);
+
+ try {
+ if (serializeNullIfAnyNull(argTag0, argTag1)) {
+ return;
+ }
+ checkTypeMachingThrowsIfNot(functionName, EXPECTED_INPUT_TAGS, argTag0,
+ argTag1);
+
+ byte[] binaryBytes = storages[0].getByteArray();
+ byte[] startBytes = storages[1].getByteArray();
+
+ int start = IntegerSerializerDeserializer.getInt(startBytes, 1) - 1; // strange SQL index convention
+ int totalLength = ByteArrayPointable.getLength(binaryBytes, 1);
+ int subLength = getSubLength(tuple);
+
+ if (start < 0) {
+ start = 0;
+ }
+
+ if (start >= totalLength || subLength < 0) {
+ subLength = 0;
+ } else if (start + subLength > totalLength) {
+ subLength = totalLength - start;
+ }
+
+ dataOutput.write(ATypeTag.BINARY.serialize());
+ dataOutput.writeShort(subLength);
+ dataOutput
+ .write(binaryBytes, 1 + ByteArrayPointable.SIZE_OF_LENGTH + start, subLength);
+ } catch (HyracksDataException e) {
+ throw new AlgebricksException(e);
+ } catch (IOException e) {
+ throw new AlgebricksException(e);
+ }
+ }
+
+ protected abstract int getSubLength(IFrameTupleReference tuple) throws AlgebricksException;
+ }
+}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/formats/NonTaggedDataFormat.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/formats/NonTaggedDataFormat.java
index 28ad34b..d9bf623 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/formats/NonTaggedDataFormat.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/formats/NonTaggedDataFormat.java
@@ -127,6 +127,8 @@
import edu.uci.ics.asterix.runtime.evaluators.common.CreateMBREvalFactory;
import edu.uci.ics.asterix.runtime.evaluators.common.FieldAccessByIndexEvalFactory;
import edu.uci.ics.asterix.runtime.evaluators.common.FunctionManagerImpl;
+import edu.uci.ics.asterix.runtime.evaluators.constructors.ABinaryBase64StringConstructorDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.constructors.ABinaryHexStringConstructorDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.constructors.ABooleanConstructorDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.constructors.ACircleConstructorDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.constructors.ADateConstructorDescriptor;
@@ -242,6 +244,14 @@
import edu.uci.ics.asterix.runtime.evaluators.functions.SwitchCaseDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.functions.UnorderedListConstructorDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.functions.WordTokensDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.BinaryConcatDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.BinaryLengthDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.FindBinaryDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.FindBinaryFromDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.ParseBinaryDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.PrintBinaryDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.SubBinaryFromDescriptor;
+import edu.uci.ics.asterix.runtime.evaluators.functions.binary.SubBinaryFromToDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.functions.temporal.AdjustDateTimeForTimeZoneDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.functions.temporal.AdjustTimeForTimeZoneDescriptor;
import edu.uci.ics.asterix.runtime.evaluators.functions.temporal.CalendarDuartionFromDateDescriptor;
@@ -410,6 +420,17 @@
temp.add(NumericRoundDescriptor.FACTORY);
temp.add(NumericRoundHalfToEvenDescriptor.FACTORY);
temp.add(NumericRoundHalfToEven2Descriptor.FACTORY);
+
+ // Binary functions
+ temp.add(BinaryLengthDescriptor.FACTORY);
+ temp.add(ParseBinaryDescriptor.FACTORY);
+ temp.add(PrintBinaryDescriptor.FACTORY);
+ temp.add(BinaryConcatDescriptor.FACTORY);
+ temp.add(SubBinaryFromDescriptor.FACTORY);
+ temp.add(SubBinaryFromToDescriptor.FACTORY);
+ temp.add(FindBinaryDescriptor.FACTORY);
+ temp.add(FindBinaryFromDescriptor.FACTORY);
+
// String functions
temp.add(StringEqualDescriptor.FACTORY);
temp.add(StringStartWithDescrtiptor.FACTORY);
@@ -491,6 +512,8 @@
// new functions - constructors
temp.add(ABooleanConstructorDescriptor.FACTORY);
temp.add(ANullConstructorDescriptor.FACTORY);
+ temp.add(ABinaryHexStringConstructorDescriptor.FACTORY);
+ temp.add(ABinaryBase64StringConstructorDescriptor.FACTORY);
temp.add(AStringConstructorDescriptor.FACTORY);
temp.add(AInt8ConstructorDescriptor.FACTORY);
temp.add(AInt16ConstructorDescriptor.FACTORY);
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/ADMDataParser.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/ADMDataParser.java
index 0cd3098..a6419fe 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/ADMDataParser.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/ADMDataParser.java
@@ -18,7 +18,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayDeque;
-import java.util.ArrayList;
import java.util.BitSet;
import java.util.List;
import java.util.Queue;
@@ -32,9 +31,7 @@
import edu.uci.ics.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer;
import edu.uci.ics.asterix.dataflow.data.nontagged.serde.APolygonSerializerDeserializer;
import edu.uci.ics.asterix.om.base.ABoolean;
-import edu.uci.ics.asterix.om.base.AMutableUUID;
import edu.uci.ics.asterix.om.base.ANull;
-import edu.uci.ics.asterix.om.base.AUUID;
import edu.uci.ics.asterix.om.types.AOrderedListType;
import edu.uci.ics.asterix.om.types.ARecordType;
import edu.uci.ics.asterix.om.types.ATypeTag;
@@ -151,10 +148,11 @@
public void initialize(InputStream in, ARecordType recordType, boolean datasetRec) throws AsterixException {
// Use original record type variable - origRecTypeForAutoGeneratedPK if we have auto-generated PK.
// The recordType variable does not contain field information about auto-generated PK.
- if (!isPKAutoGenerated)
+ if (!isPKAutoGenerated) {
this.recordType = recordType;
- else
+ } else {
this.recordType = origRecTypeForAutoGeneratedPK;
+ }
this.datasetRec = datasetRec;
try {
admLexer = new AdmLexer(new java.io.InputStreamReader(in));
@@ -181,15 +179,17 @@
case AdmLexer.TOKEN_NULL_LITERAL: {
if (checkType(ATypeTag.NULL, objectType)) {
nullSerde.serialize(ANull.NULL, out);
- } else
+ } else {
throw new ParseException("This field can not be null");
+ }
break;
}
case AdmLexer.TOKEN_TRUE_LITERAL: {
if (checkType(ATypeTag.BOOLEAN, objectType)) {
booleanSerde.serialize(ABoolean.TRUE, out);
- } else
+ } else {
throw new ParseException(mismatchErrorMessage + objectType.getTypeName());
+ }
break;
}
case AdmLexer.TOKEN_BOOLEAN_CONS: {
@@ -199,8 +199,9 @@
case AdmLexer.TOKEN_FALSE_LITERAL: {
if (checkType(ATypeTag.BOOLEAN, objectType)) {
booleanSerde.serialize(ABoolean.FALSE, out);
- } else
+ } else {
throw new ParseException(mismatchErrorMessage + objectType.getTypeName());
+ }
break;
}
case AdmLexer.TOKEN_DOUBLE_LITERAL: {
@@ -267,14 +268,29 @@
admLexer.getLastTokenImage().length() - 1);
aUUID.fromStringToAMuatbleUUID(tokenImage);
uuidSerde.serialize(aUUID, out);
- } else
+ } else {
throw new ParseException(mismatchErrorMessage + objectType.getTypeName());
+ }
break;
}
case AdmLexer.TOKEN_STRING_CONS: {
parseConstructor(ATypeTag.STRING, objectType, out);
break;
}
+ case AdmLexer.TOKEN_HEX_CONS:
+ case AdmLexer.TOKEN_BASE64_CONS: {
+ if (checkType(ATypeTag.BINARY, objectType)) {
+ if (admLexer.next() == AdmLexer.TOKEN_CONSTRUCTOR_OPEN) {
+ if (admLexer.next() == AdmLexer.TOKEN_STRING_LITERAL) {
+ parseToBinaryTarget(token, admLexer.getLastTokenImage(), out);
+ if (admLexer.next() == AdmLexer.TOKEN_CONSTRUCTOR_CLOSE) {
+ break;
+ }
+ }
+ }
+ }
+ throw new ParseException(mismatchErrorMessage + objectType.getTypeName());
+ }
case AdmLexer.TOKEN_DATE_CONS: {
parseConstructor(ATypeTag.DATE, objectType, out);
break;
@@ -369,8 +385,9 @@
if (checkType(ATypeTag.UNORDEREDLIST, objectType)) {
objectType = getComplexType(objectType, ATypeTag.UNORDEREDLIST);
parseUnorderedList((AUnorderedListType) objectType, out);
- } else
+ } else {
throw new ParseException(mismatchErrorMessage + objectType.getTypeTag());
+ }
break;
}
@@ -378,16 +395,18 @@
if (checkType(ATypeTag.ORDEREDLIST, objectType)) {
objectType = getComplexType(objectType, ATypeTag.ORDEREDLIST);
parseOrderedList((AOrderedListType) objectType, out);
- } else
+ } else {
throw new ParseException(mismatchErrorMessage + objectType.getTypeTag());
+ }
break;
}
case AdmLexer.TOKEN_START_RECORD: {
if (checkType(ATypeTag.RECORD, objectType)) {
objectType = getComplexType(objectType, ATypeTag.RECORD);
parseRecord((ARecordType) objectType, out, datasetRec);
- } else
+ } else {
throw new ParseException(mismatchErrorMessage + objectType.getTypeTag());
+ }
break;
}
case AdmLexer.TOKEN_UUID_CONS: {
@@ -401,6 +420,7 @@
throw new ParseException("Unexpected ADM token kind: " + AdmLexer.tokenKindToString(token) + ".");
}
}
+
}
private String replaceEscapes(String tokenImage) throws ParseException {
@@ -464,15 +484,17 @@
return null;
}
- if (aObjectType.getTypeTag() == tag)
+ if (aObjectType.getTypeTag() == tag) {
return aObjectType;
+ }
if (aObjectType.getTypeTag() == ATypeTag.UNION) {
List<IAType> unionList = ((AUnionType) aObjectType).getUnionList();
- for (int i = 0; i < unionList.size(); i++)
+ for (int i = 0; i < unionList.size(); i++) {
if (unionList.get(i).getTypeTag() == tag) {
return unionList.get(i);
}
+ }
}
return null; // wont get here
}
@@ -512,13 +534,15 @@
if (recType != null) {
nulls = new BitSet(recType.getFieldNames().length);
recBuilder.reset(recType);
- } else
+ } else {
recBuilder.reset(null);
+ }
} else if (recType != null) {
nulls = new BitSet(recType.getFieldNames().length);
recBuilder.reset(recType);
- } else
+ } else {
recBuilder.reset(null);
+ }
recBuilder.init();
int token;
@@ -581,8 +605,9 @@
token = admLexer.next();
this.admFromLexerStream(token, fieldType, fieldValueBuffer.getDataOutput(), false);
if (openRecordField) {
- if (fieldValueBuffer.getByteArray()[0] != ATypeTag.NULL.serialize())
+ if (fieldValueBuffer.getByteArray()[0] != ATypeTag.NULL.serialize()) {
recBuilder.addField(fieldNameBuffer, fieldValueBuffer);
+ }
} else if (recType.getFieldTypes()[fieldId].getTypeTag() == ATypeTag.UNION) {
if (NonTaggedFormatUtil.isOptionalField((AUnionType) recType.getFieldTypes()[fieldId])) {
if (fieldValueBuffer.getByteArray()[0] != ATypeTag.NULL.serialize()) {
@@ -621,21 +646,26 @@
// where nullableFieldId equals primaryKey field.
// In this case, we create a random ID and assign it as a PK
if (isPKAutoGenerated && nullableFieldId == primaryKeyPosition) {
- fieldValueBuffer.reset();
- aUUID.nextUUID();
+ fieldValueBuffer.reset();
+ aUUID.nextUUID();
fieldValueBuffer.getDataOutput().writeByte(AUUIDTag);
- Integer64SerializerDeserializer.INSTANCE.serialize(aUUID.getMostSignificantBits(), fieldValueBuffer.getDataOutput());
- Integer64SerializerDeserializer.INSTANCE.serialize(aUUID.getLeastSignificantBits(), fieldValueBuffer.getDataOutput());
+ Integer64SerializerDeserializer.INSTANCE
+ .serialize(aUUID.getMostSignificantBits(), fieldValueBuffer.getDataOutput());
+ Integer64SerializerDeserializer.INSTANCE
+ .serialize(aUUID.getLeastSignificantBits(), fieldValueBuffer.getDataOutput());
recBuilder.addField(primaryKeyPosition, fieldValueBuffer);
insertedAutoGeneratedPK = true;
nulls.set(nullableFieldId);
// Check from the primary key field position to make sure no other field is missing
nullableFieldId = checkNullConstraints(recType, nulls, nullableFieldId);
}
- if (nullableFieldId != -1)
+ if (nullableFieldId != -1) {
throw new ParseException("Field: " + recType.getFieldNames()[nullableFieldId] + " can not be null");
- if (isPKAutoGenerated && !insertedAutoGeneratedPK)
- throw new ParseException("Auto-generated PK Field: " + recType.getFieldNames()[primaryKeyPosition] + " should not exist in the ADM file.");
+ }
+ if (isPKAutoGenerated && !insertedAutoGeneratedPK) {
+ throw new ParseException("Auto-generated PK Field: " + recType.getFieldNames()[primaryKeyPosition]
+ + " should not exist in the ADM file.");
+ }
}
recBuilder.write(out, true);
returnRecordBuilder(recBuilder);
@@ -645,23 +675,27 @@
private int checkNullConstraints(ARecordType recType, BitSet nulls, int startingPosition) {
boolean isNull = false;
- for (int i = startingPosition; i < recType.getFieldTypes().length; i++)
+ for (int i = startingPosition; i < recType.getFieldTypes().length; i++) {
if (nulls.get(i) == false) {
IAType type = recType.getFieldTypes()[i];
- if (type.getTypeTag() != ATypeTag.NULL && type.getTypeTag() != ATypeTag.UNION)
+ if (type.getTypeTag() != ATypeTag.NULL && type.getTypeTag() != ATypeTag.UNION) {
return i;
+ }
if (type.getTypeTag() == ATypeTag.UNION) { // union
List<IAType> unionList = ((AUnionType) type).getUnionList();
- for (int j = 0; j < unionList.size(); j++)
+ for (int j = 0; j < unionList.size(); j++) {
if (unionList.get(j).getTypeTag() == ATypeTag.NULL) {
isNull = true;
break;
}
- if (!isNull)
+ }
+ if (!isNull) {
return i;
+ }
}
}
+ }
return -1;
}
@@ -671,8 +705,9 @@
OrderedListBuilder orderedListBuilder = (OrderedListBuilder) getOrderedListBuilder();
IAType itemType = null;
- if (oltype != null)
+ if (oltype != null) {
itemType = oltype.getItemType();
+ }
orderedListBuilder.reset(oltype);
int token;
@@ -715,8 +750,9 @@
IAType itemType = null;
- if (uoltype != null)
+ if (uoltype != null) {
itemType = uoltype.getItemType();
+ }
unorderedListBuilder.reset(uoltype);
int token;
@@ -758,10 +794,11 @@
private IARecordBuilder getRecordBuilder() {
RecordBuilder recBuilder = (RecordBuilder) recordBuilderPool.poll();
- if (recBuilder != null)
+ if (recBuilder != null) {
return recBuilder;
- else
+ } else {
return new RecordBuilder();
+ }
}
private void returnRecordBuilder(IARecordBuilder recBuilder) {
@@ -770,10 +807,11 @@
private IAsterixListBuilder getOrderedListBuilder() {
OrderedListBuilder orderedListBuilder = (OrderedListBuilder) orderedListBuilderPool.poll();
- if (orderedListBuilder != null)
+ if (orderedListBuilder != null) {
return orderedListBuilder;
- else
+ } else {
return new OrderedListBuilder();
+ }
}
private void returnOrderedListBuilder(IAsterixListBuilder orderedListBuilder) {
@@ -782,10 +820,11 @@
private IAsterixListBuilder getUnorderedListBuilder() {
UnorderedListBuilder unorderedListBuilder = (UnorderedListBuilder) unorderedListBuilderPool.poll();
- if (unorderedListBuilder != null)
+ if (unorderedListBuilder != null) {
return unorderedListBuilder;
- else
+ } else {
return new UnorderedListBuilder();
+ }
}
private void returnUnorderedListBuilder(IAsterixListBuilder unorderedListBuilder) {
@@ -805,6 +844,20 @@
baaosPool.add(tempBaaos);
}
+ private void parseToBinaryTarget(int lexerToken, String tokenImage, DataOutput out)
+ throws ParseException, HyracksDataException {
+ switch (lexerToken) {
+ case AdmLexer.TOKEN_HEX_CONS: {
+ parseHexBinaryString(tokenImage.toCharArray(), 1, tokenImage.length() - 2, out);
+ break;
+ }
+ case AdmLexer.TOKEN_BASE64_CONS: {
+ parseBase64BinaryString(tokenImage.toCharArray(), 1, tokenImage.length() - 2, out);
+ break;
+ }
+ }
+ }
+
private void parseToNumericTarget(ATypeTag typeTag, IAType objectType, DataOutput out) throws AsterixException,
IOException {
final ATypeTag targetTypeTag = getTargetTypeTag(typeTag, objectType);
@@ -951,12 +1004,13 @@
private void parseBoolean(String bool, DataOutput out) throws AsterixException, HyracksDataException {
String errorMessage = "This can not be an instance of boolean";
- if (bool.equals("true"))
+ if (bool.equals("true")) {
booleanSerde.serialize(ABoolean.TRUE, out);
- else if (bool.equals("false"))
+ } else if (bool.equals("false")) {
booleanSerde.serialize(ABoolean.FALSE, out);
- else
+ } else {
throw new ParseException(errorMessage);
+ }
}
private void parseInt8(String int8, DataOutput out) throws AsterixException, HyracksDataException {
@@ -965,24 +1019,27 @@
byte value = 0;
int offset = 0;
- if (int8.charAt(offset) == '+')
+ if (int8.charAt(offset) == '+') {
offset++;
- else if (int8.charAt(offset) == '-') {
+ } else if (int8.charAt(offset) == '-') {
offset++;
positive = false;
}
for (; offset < int8.length(); offset++) {
- if (int8.charAt(offset) >= '0' && int8.charAt(offset) <= '9')
+ if (int8.charAt(offset) >= '0' && int8.charAt(offset) <= '9') {
value = (byte) (value * 10 + int8.charAt(offset) - '0');
- else if (int8.charAt(offset) == 'i' && int8.charAt(offset + 1) == '8' && offset + 2 == int8.length())
+ } else if (int8.charAt(offset) == 'i' && int8.charAt(offset + 1) == '8' && offset + 2 == int8.length()) {
break;
- else
+ } else {
throw new ParseException(errorMessage);
+ }
}
- if (value < 0)
+ if (value < 0) {
throw new ParseException(errorMessage);
- if (value > 0 && !positive)
+ }
+ if (value > 0 && !positive) {
value *= -1;
+ }
aInt8.setValue(value);
int8Serde.serialize(aInt8, out);
}
@@ -993,25 +1050,28 @@
short value = 0;
int offset = 0;
- if (int16.charAt(offset) == '+')
+ if (int16.charAt(offset) == '+') {
offset++;
- else if (int16.charAt(offset) == '-') {
+ } else if (int16.charAt(offset) == '-') {
offset++;
positive = false;
}
for (; offset < int16.length(); offset++) {
- if (int16.charAt(offset) >= '0' && int16.charAt(offset) <= '9')
+ if (int16.charAt(offset) >= '0' && int16.charAt(offset) <= '9') {
value = (short) (value * 10 + int16.charAt(offset) - '0');
- else if (int16.charAt(offset) == 'i' && int16.charAt(offset + 1) == '1' && int16.charAt(offset + 2) == '6'
- && offset + 3 == int16.length())
+ } else if (int16.charAt(offset) == 'i' && int16.charAt(offset + 1) == '1' && int16.charAt(offset + 2) == '6'
+ && offset + 3 == int16.length()) {
break;
- else
+ } else {
throw new ParseException(errorMessage);
+ }
}
- if (value < 0)
+ if (value < 0) {
throw new ParseException(errorMessage);
- if (value > 0 && !positive)
+ }
+ if (value > 0 && !positive) {
value *= -1;
+ }
aInt16.setValue(value);
int16Serde.serialize(aInt16, out);
}
@@ -1022,25 +1082,28 @@
int value = 0;
int offset = 0;
- if (int32.charAt(offset) == '+')
+ if (int32.charAt(offset) == '+') {
offset++;
- else if (int32.charAt(offset) == '-') {
+ } else if (int32.charAt(offset) == '-') {
offset++;
positive = false;
}
for (; offset < int32.length(); offset++) {
- if (int32.charAt(offset) >= '0' && int32.charAt(offset) <= '9')
+ if (int32.charAt(offset) >= '0' && int32.charAt(offset) <= '9') {
value = (value * 10 + int32.charAt(offset) - '0');
- else if (int32.charAt(offset) == 'i' && int32.charAt(offset + 1) == '3' && int32.charAt(offset + 2) == '2'
- && offset + 3 == int32.length())
+ } else if (int32.charAt(offset) == 'i' && int32.charAt(offset + 1) == '3' && int32.charAt(offset + 2) == '2'
+ && offset + 3 == int32.length()) {
break;
- else
+ } else {
throw new ParseException(errorMessage);
+ }
}
- if (value < 0)
+ if (value < 0) {
throw new ParseException(errorMessage);
- if (value > 0 && !positive)
+ }
+ if (value > 0 && !positive) {
value *= -1;
+ }
aInt32.setValue(value);
int32Serde.serialize(aInt32, out);
@@ -1052,25 +1115,28 @@
long value = 0;
int offset = 0;
- if (int64.charAt(offset) == '+')
+ if (int64.charAt(offset) == '+') {
offset++;
- else if (int64.charAt(offset) == '-') {
+ } else if (int64.charAt(offset) == '-') {
offset++;
positive = false;
}
for (; offset < int64.length(); offset++) {
- if (int64.charAt(offset) >= '0' && int64.charAt(offset) <= '9')
+ if (int64.charAt(offset) >= '0' && int64.charAt(offset) <= '9') {
value = (value * 10 + int64.charAt(offset) - '0');
- else if (int64.charAt(offset) == 'i' && int64.charAt(offset + 1) == '6' && int64.charAt(offset + 2) == '4'
- && offset + 3 == int64.length())
+ } else if (int64.charAt(offset) == 'i' && int64.charAt(offset + 1) == '6' && int64.charAt(offset + 2) == '4'
+ && offset + 3 == int64.length()) {
break;
- else
+ } else {
throw new ParseException(errorMessage);
+ }
}
- if (value < 0)
+ if (value < 0) {
throw new ParseException(errorMessage);
- if (value > 0 && !positive)
+ }
+ if (value > 0 && !positive) {
value *= -1;
+ }
aInt64.setValue(value);
int64Serde.serialize(aInt64, out);
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/AbstractDataParser.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/AbstractDataParser.java
index e7ae93d..402b639 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/AbstractDataParser.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/AbstractDataParser.java
@@ -17,6 +17,7 @@
import java.io.DataOutput;
import edu.uci.ics.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
+import edu.uci.ics.asterix.om.base.ABinary;
import edu.uci.ics.asterix.om.base.ABoolean;
import edu.uci.ics.asterix.om.base.ACircle;
import edu.uci.ics.asterix.om.base.ADate;
@@ -30,6 +31,7 @@
import edu.uci.ics.asterix.om.base.AInt64;
import edu.uci.ics.asterix.om.base.AInt8;
import edu.uci.ics.asterix.om.base.ALine;
+import edu.uci.ics.asterix.om.base.AMutableBinary;
import edu.uci.ics.asterix.om.base.AMutableCircle;
import edu.uci.ics.asterix.om.base.AMutableDate;
import edu.uci.ics.asterix.om.base.AMutableDateTime;
@@ -64,10 +66,10 @@
import edu.uci.ics.asterix.om.base.temporal.GregorianCalendarSystem;
import edu.uci.ics.asterix.om.types.BuiltinType;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.ByteArrayBase64ParserFactory;
+import edu.uci.ics.hyracks.dataflow.common.data.parsers.ByteArrayHexParserFactory;
/**
* Base class for data parsers. Includes the common set of definitions for
@@ -82,6 +84,7 @@
protected AMutableDouble aDouble = new AMutableDouble(0);
protected AMutableFloat aFloat = new AMutableFloat(0);
protected AMutableString aString = new AMutableString("");
+ protected AMutableBinary aBinary = new AMutableBinary(new byte[] { }, 0, 0);
protected AMutableString aStringFieldName = new AMutableString("");
protected AMutableUUID aUUID = new AMutableUUID(0, 0);
// For temporal and spatial data types
@@ -98,6 +101,8 @@
protected AMutableLine aLine = new AMutableLine(null, null);
protected AMutableDate aDate = new AMutableDate(0);
+ private final byte[] base64ParserQuadruplet = new byte[4];
+
// Serializers
@SuppressWarnings("unchecked")
protected ISerializerDeserializer<ADouble> doubleSerde = AqlSerializerDeserializerProvider.INSTANCE
@@ -166,6 +171,9 @@
@SuppressWarnings("unchecked")
protected final static ISerializerDeserializer<ALine> lineSerde = AqlSerializerDeserializerProvider.INSTANCE
.getSerializerDeserializer(BuiltinType.ALINE);
+ @SuppressWarnings("unchecked")
+ protected final static ISerializerDeserializer<ABinary> binarySerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.ABINARY);
protected String filename;
@@ -289,8 +297,9 @@
protected void parseRectangle(String rectangle, DataOutput out) throws HyracksDataException {
try {
String[] points = rectangle.split(" ");
- if (points.length != 2)
+ if (points.length != 2) {
throw new HyracksDataException("rectangle consists of only 2 points.");
+ }
aPoint.setValue(Double.parseDouble(points[0].split(",")[0]), Double.parseDouble(points[0].split(",")[1]));
aPoint2.setValue(Double.parseDouble(points[1].split(",")[0]), Double.parseDouble(points[1].split(",")[1]));
if (aPoint.getX() > aPoint2.getX() && aPoint.getY() > aPoint2.getY()) {
@@ -310,8 +319,9 @@
protected void parseLine(String line, DataOutput out) throws HyracksDataException {
try {
String[] points = line.split(" ");
- if (points.length != 2)
+ if (points.length != 2) {
throw new HyracksDataException("line consists of only 2 points.");
+ }
aPoint.setValue(Double.parseDouble(points[0].split(",")[0]), Double.parseDouble(points[0].split(",")[1]));
aPoint2.setValue(Double.parseDouble(points[1].split(",")[0]), Double.parseDouble(points[1].split(",")[1]));
aLine.setValue(aPoint, aPoint2);
@@ -321,4 +331,20 @@
}
}
+ protected void parseHexBinaryString(char[] input, int start, int length, DataOutput out)
+ throws HyracksDataException {
+ byte[] newBytes = ByteArrayHexParserFactory
+ .extractPointableArrayFromHexString(input, start, length, aBinary.getBytes());
+ aBinary.setValue(newBytes, 0, newBytes.length);
+ binarySerde.serialize(aBinary, out);
+ }
+
+ protected void parseBase64BinaryString(char[] input, int start, int length, DataOutput out)
+ throws HyracksDataException {
+ byte[] newBytes = ByteArrayBase64ParserFactory
+ .extractPointableArrayFromBase64String(input, start, length,
+ aBinary.getBytes(), base64ParserQuadruplet);
+ aBinary.setValue(newBytes, 0, newBytes.length);
+ binarySerde.serialize(aBinary, out);
+ }
}
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/DelimitedDataParser.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/DelimitedDataParser.java
index 18f9553..7a0ae4d 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/DelimitedDataParser.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/operators/file/DelimitedDataParser.java
@@ -503,6 +503,7 @@
lastDelimiterPosition = p;
start = p + 1;
state = State.CR;
+ startedQuote = false;
return true;
}
}
diff --git a/asterix-runtime/src/main/resources/adm.grammar b/asterix-runtime/src/main/resources/adm.grammar
index b9db2e7..b0ca26f 100644
--- a/asterix-runtime/src/main/resources/adm.grammar
+++ b/asterix-runtime/src/main/resources/adm.grammar
@@ -19,6 +19,8 @@
DATETIME_CONS = string(datetime)
DURATION_CONS = string(duration)
STRING_CONS = string(string)
+HEX_CONS = string(hex)
+BASE64_CONS = string(base64)
POINT_CONS = string(point)
POINT3D_CONS = string(point3d)
LINE_CONS = string(line)
diff --git a/pom.xml b/pom.xml
index ea8c0bf..95f7fc9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,8 +33,8 @@
<global.test.includes>**/*TestSuite.java,**/*Test.java,${execution.tests}</global.test.includes>
<global.test.excludes>${optimizer.tests},${metadata.tests},${invalid.tests}</global.test.excludes>
<!-- Versions under dependencymanagement or used in many projects via properties -->
- <algebricks.version>0.2.14</algebricks.version>
- <hyracks.version>0.2.14</hyracks.version>
+ <algebricks.version>0.2.15-SNAPSHOT</algebricks.version>
+ <hyracks.version>0.2.15-SNAPSHOT</hyracks.version>
<hadoop.version>2.2.0</hadoop.version>
<junit.version>4.8.1</junit.version>
<commons.io.version>2.4</commons.io.version>