Merged asterix_statement_model_fix into asterix_stabilization
1) Asterix now has a revised statement model.
a) Each statement (definition includes a query) is executed as an independent transaction.
b) Statements are executed in the order of submission with no implicit re-orderings.
c) Asterix does not differentiate between DDL and DML statements. This is unlike the previous model which executed DDL statements prior to DML statements.
d) Asterix bails out at the failure in execution of a statement. As stated in (a), the failing statement is rolled back and has no impact on previously executed statements.
e) Forward references during type creation are not supported. This is not a regression, as these did not work in the previous model either.
f) Amongst the submitted statements, you could have multiple queries.
2) Asterix has support for AQL bodied functions. You can create AQL bodied fucntions and may use them in subsequent sessions.
3) Asterix has support for cross dataverse statements. You can invoke statements/queries that refer to entities belonging to different dataverses.
4) Other Issues resolved: 25, 62, 100, 124, 148, 165, 202
git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_stabilization@860 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv01.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv01.adm
new file mode 100644
index 0000000..83de609
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv01.adm
@@ -0,0 +1 @@
+{ "ug-student": { "id": 457, "name": "John Doe", "age": 22, "sex": "M", "dept": "Dance" }, "prof": { "id": 152, "name": "John Meyer", "age": 42, "sex": "M", "dept": "History" }, "grd-student": { "id": 418, "name": "John Smith", "age": 26, "sex": "M", "dept": "Economics" }, "postdoc": { "id": 259, "name": "Sophia Reece", "age": 36, "sex": "F", "dept": "Anthropology" } }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02.adm
new file mode 100644
index 0000000..f8d0c9d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02.adm
@@ -0,0 +1,4 @@
+{ "DataverseName": "student", "DatasetName": "gdstd", "DataTypeName": "stdType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:22:47 PST 2012" }
+{ "DataverseName": "student", "DatasetName": "ugdstd", "DataTypeName": "stdType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:22:47 PST 2012" }
+{ "DataverseName": "teacher", "DatasetName": "prof", "DataTypeName": "tchrType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:22:47 PST 2012" }
+{ "DataverseName": "teacher", "DatasetName": "pstdoc", "DataTypeName": "tchrType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:22:47 PST 2012" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv03.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv03.adm
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv03.adm
@@ -0,0 +1 @@
+0
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04.adm
new file mode 100644
index 0000000..bd3c0af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04.adm
@@ -0,0 +1,4 @@
+{ "DataverseName": "student", "DatasetName": "gdstd", "DataTypeName": "stdType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:25:37 PST 2012" }
+{ "DataverseName": "student", "DatasetName": "ugdstd", "DataTypeName": "stdType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:25:37 PST 2012" }
+{ "DataverseName": "teacher", "DatasetName": "prof", "DataTypeName": "tchrType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:25:37 PST 2012" }
+{ "DataverseName": "teacher", "DatasetName": "pstdoc", "DataTypeName": "tchrType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Thu Nov 08 13:25:37 PST 2012" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv07.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv07.adm
new file mode 100644
index 0000000..cebf05b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv07.adm
@@ -0,0 +1 @@
+{ "id": 881, "fname": "Julio", "lname": "Isa", "age": 38, "dept": "Sales" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv09.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv09.adm
new file mode 100644
index 0000000..1b2a42c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv09.adm
@@ -0,0 +1 @@
+"function 01"
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv11.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv11.adm
new file mode 100644
index 0000000..490df54
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv11.adm
@@ -0,0 +1 @@
+"function 02"
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv12.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv12.adm
new file mode 100644
index 0000000..552e141
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv12.adm
@@ -0,0 +1 @@
+{ "fun-01": "function 01", "fun-02": "function 02" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv14.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv14.adm
new file mode 100644
index 0000000..29d6383
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv14.adm
@@ -0,0 +1 @@
+100
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15.adm
new file mode 100644
index 0000000..05deeeb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15.adm
@@ -0,0 +1,3 @@
+{ "DataverseName": "testdv1", "Name": "fun01", "Arity": "0", "Params": [ ], "ReturnType": "VOID", "Definition": "100", "Language": "AQL", "Kind": "SCALAR" }
+{ "DataverseName": "testdv1", "Name": "fun02", "Arity": "1", "Params": [ "$a" ], "ReturnType": "VOID", "Definition": "\"function 02\"", "Language": "AQL", "Kind": "SCALAR" }
+{ "DataverseName": "testdv1", "Name": "fun03", "Arity": "2", "Params": [ "$b", "$c" ], "ReturnType": "VOID", "Definition": "$b+$c", "Language": "AQL", "Kind": "SCALAR" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv17.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv17.adm
new file mode 100644
index 0000000..cd358f1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv17.adm
@@ -0,0 +1,2 @@
+[ { "l": { "id": 21 }, "m": { "id": 21 } }, { "l": { "id": 23 }, "m": { "id": 21 } }, { "l": { "id": 21 }, "m": { "id": 23 } }, { "l": { "id": 23 }, "m": { "id": 23 } }, { "l": { "id": 21 }, "m": { "id": 24 } }, { "l": { "id": 23 }, "m": { "id": 24 } }, { "l": { "id": 21 }, "m": { "id": 44 } }, { "l": { "id": 23 }, "m": { "id": 44 } }, { "l": { "id": 21 }, "m": { "id": 64 } }, { "l": { "id": 23 }, "m": { "id": 64 } } ]
+[ { "l": { "id": 24 }, "m": { "id": 21 } }, { "l": { "id": 44 }, "m": { "id": 21 } }, { "l": { "id": 64 }, "m": { "id": 21 } }, { "l": { "id": 24 }, "m": { "id": 23 } }, { "l": { "id": 44 }, "m": { "id": 23 } }, { "l": { "id": 64 }, "m": { "id": 23 } }, { "l": { "id": 24 }, "m": { "id": 24 } }, { "l": { "id": 44 }, "m": { "id": 24 } }, { "l": { "id": 64 }, "m": { "id": 24 } }, { "l": { "id": 24 }, "m": { "id": 44 } }, { "l": { "id": 44 }, "m": { "id": 44 } }, { "l": { "id": 64 }, "m": { "id": 44 } }, { "l": { "id": 24 }, "m": { "id": 64 } }, { "l": { "id": 44 }, "m": { "id": 64 } }, { "l": { "id": 64 }, "m": { "id": 64 } } ]
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19.adm
new file mode 100644
index 0000000..be94bc8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19.adm
@@ -0,0 +1,7 @@
+{ "DataverseName": "test1", "DatasetName": "TwitterData", "DataTypeName": "Tweet", "DatasetType": "EXTERNAL", "InternalDetails": null, "ExternalDetails": { "DatasourceAdapter": "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter", "Properties": [ { "Name": "path", "Value": "nc1://data/twitter/extrasmalltweets.txt" }, { "Name": "format", "Value": "adm" } ] }, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
+{ "DataverseName": "test1", "DatasetName": "t1", "DataTypeName": "testtype", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
+{ "DataverseName": "test1", "DatasetName": "t2", "DataTypeName": "testtype", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
+{ "DataverseName": "test1", "DatasetName": "t3", "DataTypeName": "testtype", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
+{ "DataverseName": "test2", "DatasetName": "t2", "DataTypeName": "testtype", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
+{ "DataverseName": "test2", "DatasetName": "t3", "DataTypeName": "testtype", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
+{ "DataverseName": "test2", "DatasetName": "t4", "DataTypeName": "testtype", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "id" ], "PrimaryKey": [ "id" ], "GroupName": "DEFAULT_NG_ALL_NODES" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:41:21 PST 2012" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/drop_dataset.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/drop_dataset.adm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/drop_dataset.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/insert_across_dataverses.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/insert_across_dataverses.adm
new file mode 100644
index 0000000..f3449f0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/insert_across_dataverses.adm
@@ -0,0 +1,5 @@
+{ "cid": 0, "name": "Mike ley", "cashBack": 600, "age": null, "address": null, "lastorder": { "oid": 258, "total": 368.61862f } }
+{ "cid": 1, "name": "Mike Carey", "cashBack": 650, "age": null, "address": { "number": 389, "street": "Hill St.", "city": "Mountain View" }, "lastorder": { "oid": 18, "total": 338.61862f } }
+{ "cid": 4, "name": "Mary Carey", "cashBack": 450, "age": 12, "address": { "number": 8, "street": "Hill St.", "city": "Mountain View" }, "lastorder": { "oid": 4545, "total": 87.61863f } }
+{ "cid": 5, "name": "Jodi Alex", "cashBack": 350, "age": 19, "address": null, "lastorder": { "oid": 48, "total": 318.61862f } }
+{ "cid": 775, "name": "Jodi Rotruck", "cashBack": 100, "age": null, "address": { "number": 8389, "street": "Hill St.", "city": "Mountain View" }, "lastorder": { "oid": 66, "total": 38.618626f } }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/insert_from_source_dataset.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/insert_from_source_dataset.adm
new file mode 100644
index 0000000..2d65d9a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/insert_from_source_dataset.adm
@@ -0,0 +1,10 @@
+{ "id": 201, "name": "Kelvin" }
+{ "id": 219, "name": "Sam" }
+{ "id": 257, "name": "Sammy" }
+{ "id": 321, "name": "Bobby" }
+{ "id": 351, "name": "Bob" }
+{ "id": 438, "name": "Ravi" }
+{ "id": 456, "name": "Roger" }
+{ "id": 482, "name": "Kevin" }
+{ "id": 851, "name": "Ricardo" }
+{ "id": 926, "name": "Richard" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/join_across_dataverses.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/join_across_dataverses.adm
new file mode 100644
index 0000000..87619a8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/join_across_dataverses.adm
@@ -0,0 +1,3 @@
+{ "cust_name": "Jodi Alex", "cust_age": 19, "order_total": 7.206f, "orderList": [ 10, 5 ], "orderList": {{ 10, 5 }} }
+{ "cust_name": "Jodi Rotruck", "cust_age": null, "order_total": 14.2326f, "orderList": [ 10, 775 ], "orderList": {{ 10, 775 }} }
+{ "cust_name": "Jodi Rotruck", "cust_age": null, "order_total": 97.20656f, "orderList": [ 1000, 775 ], "orderList": {{ 1000, 775 }} }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/metadata_dataset.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/metadata_dataset.adm
new file mode 100644
index 0000000..8abc339
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/metadata_dataset.adm
@@ -0,0 +1,8 @@
+{ "DataverseName": "Metadata", "DatasetName": "Dataset", "DataTypeName": "DatasetRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "DatasetName" ], "PrimaryKey": [ "DataverseName", "DatasetName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "DatasourceAdapter", "DataTypeName": "DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "Name" ], "PrimaryKey": [ "DataverseName", "Name" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Datatype", "DataTypeName": "DatatypeRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "DatatypeName" ], "PrimaryKey": [ "DataverseName", "DatatypeName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Dataverse", "DataTypeName": "DataverseRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName" ], "PrimaryKey": [ "DataverseName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Function", "DataTypeName": "FunctionRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "Name", "Arity" ], "PrimaryKey": [ "DataverseName", "Name", "Arity" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Index", "DataTypeName": "IndexRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "DatasetName", "IndexName" ], "PrimaryKey": [ "DataverseName", "DatasetName", "IndexName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Node", "DataTypeName": "NodeRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "NodeName" ], "PrimaryKey": [ "NodeName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Nodegroup", "DataTypeName": "NodeGroupRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "GroupName" ], "PrimaryKey": [ "GroupName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:33:40 PST 2012" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf01.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf01.adm
new file mode 100644
index 0000000..f00c965
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf01.adm
@@ -0,0 +1,10 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf02.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf02.adm
new file mode 100644
index 0000000..2b2f2e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf02.adm
@@ -0,0 +1,2 @@
+1
+3
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf03.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf03.adm
new file mode 100644
index 0000000..5885d0f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf03.adm
@@ -0,0 +1 @@
+1234.1d
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf04.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf04.adm
new file mode 100644
index 0000000..46c8aa5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf04.adm
@@ -0,0 +1,3 @@
+{ "name": "John", "age": 45, "id": 123 }
+{ "name": "Jim", "age": 55, "id": 103 }
+{ "name": "Bill", "age": 35, "id": 125 }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf05.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf05.adm
new file mode 100644
index 0000000..81c545e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf05.adm
@@ -0,0 +1 @@
+1234
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf06.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf06.adm
new file mode 100644
index 0000000..5885d0f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf06.adm
@@ -0,0 +1 @@
+1234.1d
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf07.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf07.adm
new file mode 100644
index 0000000..74dde56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf07.adm
@@ -0,0 +1 @@
+1234.1f
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf08.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf08.adm
new file mode 100644
index 0000000..c3ce7a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf08.adm
@@ -0,0 +1 @@
+"This is a test string"
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf09.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf09.adm
new file mode 100644
index 0000000..410a64a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf09.adm
@@ -0,0 +1 @@
+[ { "id": 241 }, { "id": 245 }, { "id": 315 }, { "id": 345 }, { "id": 349 }, { "id": 385 }, { "id": 745 }, { "id": 845 } ]
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf10.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf10.adm
new file mode 100644
index 0000000..b07e4f4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf10.adm
@@ -0,0 +1 @@
+{{ "this is optional data", "this is extra data", "open types are good" }}
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf11.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf11.adm
new file mode 100644
index 0000000..f00c965
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf11.adm
@@ -0,0 +1,10 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf12.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf12.adm
new file mode 100644
index 0000000..697cb3a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf12.adm
@@ -0,0 +1 @@
+300
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf13.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf13.adm
new file mode 100644
index 0000000..08839f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf13.adm
@@ -0,0 +1 @@
+200
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf14.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf14.adm
new file mode 100644
index 0000000..146cf04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf14.adm
@@ -0,0 +1 @@
+80000
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf16.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf16.adm
new file mode 100644
index 0000000..e85087a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf16.adm
@@ -0,0 +1 @@
+31
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf17.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf17.adm
new file mode 100644
index 0000000..13481ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf17.adm
@@ -0,0 +1 @@
+"This data is from the child function"
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf18.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf18.adm
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf18.adm
@@ -0,0 +1 @@
+true
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf19.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf19.adm
new file mode 100644
index 0000000..948a660
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf19.adm
@@ -0,0 +1,4 @@
+113.03999999999999d
+200.96d
+314.0d
+452.15999999999997d
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf20.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf20.adm
new file mode 100644
index 0000000..0d27e01
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf20.adm
@@ -0,0 +1,4 @@
+{ "radius": 6, "area": 113.03999999999999d }
+{ "radius": 8, "area": 200.96d }
+{ "radius": 10, "area": 314.0d }
+{ "radius": 12, "area": 452.15999999999997d }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf21.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf21.adm
new file mode 100644
index 0000000..426c833
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf21.adm
@@ -0,0 +1,12 @@
+3
+5
+7
+9
+1
+13
+17
+19
+25
+45
+65
+75
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf22.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf22.adm
new file mode 100644
index 0000000..8be5ca6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf22.adm
@@ -0,0 +1 @@
+"BobHarbus"
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf23.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf23.adm
new file mode 100644
index 0000000..7fc9d1f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf23.adm
@@ -0,0 +1,6 @@
+{ "DataverseName": "Metadata", "DatasetName": "Dataset", "DataTypeName": "DatasetRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "DatasetName" ], "PrimaryKey": [ "DataverseName", "DatasetName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:59:27 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "DatasourceAdapter", "DataTypeName": "DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "Name" ], "PrimaryKey": [ "DataverseName", "Name" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:59:27 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Datatype", "DataTypeName": "DatatypeRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "DatatypeName" ], "PrimaryKey": [ "DataverseName", "DatatypeName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:59:27 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Dataverse", "DataTypeName": "DataverseRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName" ], "PrimaryKey": [ "DataverseName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:59:27 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Function", "DataTypeName": "FunctionRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "Name", "Arity" ], "PrimaryKey": [ "DataverseName", "Name", "Arity" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:59:27 PST 2012" }
+{ "DataverseName": "Metadata", "DatasetName": "Index", "DataTypeName": "IndexRecordType", "DatasetType": "INTERNAL", "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ "DataverseName", "DatasetName", "IndexName" ], "PrimaryKey": [ "DataverseName", "DatasetName", "IndexName" ], "GroupName": "MetadataGroup" }, "ExternalDetails": null, "FeedDetails": null, "Timestamp": "Mon Nov 05 10:59:27 PST 2012" }
diff --git a/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf27.adm b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf27.adm
new file mode 100644
index 0000000..c508d53
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/cross-dataverse/udf27.adm
@@ -0,0 +1 @@
+false