Merged asterix_lsm_stabilization upto r1547
git-svn-id: https://asterixdb.googlecode.com/svn/trunk/asterix@1622 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double.aql
deleted file mode 100644
index 2c2494b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_avg_double.adm";
-
-avg(
- for $x in [1.0, 2.0, double("3.0")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.1.ddl.aql
new file mode 100644
index 0000000..55ab0f7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.1.ddl.aql
@@ -0,0 +1,6 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.3.query.aql
new file mode 100644
index 0000000..a435573
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double/avg_double.3.query.aql
@@ -0,0 +1,5 @@
+avg(
+ for $x in [1.0, 2.0, double("3.0")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null.aql
deleted file mode 100644
index c2e9141..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_avg_double_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $a := avg(
- for $x in dataset('Numeric')
- return $x.doubleField
-)
-return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.3.query.aql
new file mode 100644
index 0000000..9eb80c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_double_null/avg_double_null.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $a := avg(
+ for $x in dataset('Numeric')
+ return $x.doubleField
+)
+return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.1.ddl.aql
new file mode 100644
index 0000000..0ed1519
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Tests that avg aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.2.update.aql
new file mode 100644
index 0000000..d1537b0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that avg aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.3.query.aql
new file mode 100644
index 0000000..ddeb318
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_01/avg_empty_01.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Tests that avg aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+avg(
+ for $x in [1, 2, 3]
+ where $x > 10
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.1.ddl.aql
new file mode 100644
index 0000000..62c5ca6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Tests that avg aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as closed {
+ id: int32,
+ val: double
+}
+
+create dataset Test(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.2.update.aql
new file mode 100644
index 0000000..5a8604b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that avg aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.3.query.aql
new file mode 100644
index 0000000..d73d568
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_empty_02/avg_empty_02.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Tests that avg aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+avg(
+ for $x in dataset('Test')
+ return $x.val
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float.aql
deleted file mode 100644
index a7906ff..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_avg_float.adm";
-
-avg(
- for $x in [float("1"), float("2"), float("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.3.query.aql
new file mode 100644
index 0000000..c7ec789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float/avg_float.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+avg(
+ for $x in [float("1"), float("2"), float("3")]
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null.aql
deleted file mode 100644
index 3b60039..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_avg_float_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $a := avg(
- for $x in dataset('Numeric')
- return $x.floatField
-)
-return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.3.query.aql
new file mode 100644
index 0000000..536c339
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_float_null/avg_float_nu.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $a := avg(
+ for $x in dataset('Numeric')
+ return $x.floatField
+)
+return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16.aql
deleted file mode 100644
index d218675..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_avg_int16.adm";
-
-avg(
- for $x in [int16("1"), int16("2"), int16("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.3.query.aql
new file mode 100644
index 0000000..cc7edcd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16/avg_int16.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+avg(
+ for $x in [int16("1"), int16("2"), int16("3")]
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null.aql
deleted file mode 100644
index 642f4e3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_avg_int16_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $a := avg(
- for $x in dataset('Numeric')
- return $x.int16Field
-)
-return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.3.query.aql
new file mode 100644
index 0000000..9b73751
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int16_null/avg_int16_null.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $a := avg(
+ for $x in dataset('Numeric')
+ return $x.int16Field
+)
+return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32.aql
deleted file mode 100644
index 44aff70..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_avg_int32.adm";
-
-avg(
- for $x in [1, 2, 3]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.3.query.aql
new file mode 100644
index 0000000..49a3cc2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32/avg_int32.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+avg(
+ for $x in [1, 2, 3]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null.aql
deleted file mode 100644
index 5fcb925..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_avg_int32_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $a := avg(
- for $x in dataset('Numeric')
- return $x.int32Field
-)
-return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.3.query.aql
new file mode 100644
index 0000000..31fcb7a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int32_null/avg_int32_null.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $a := avg(
+ for $x in dataset('Numeric')
+ return $x.int32Field
+)
+return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64.aql
deleted file mode 100644
index 4e6f6af..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_avg_int64.adm";
-
-avg(
- for $x in [int64("1"), int64("2"), int64("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.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/aggregate/avg_int64/avg_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.3.query.aql
new file mode 100644
index 0000000..8d2860a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64/avg_int64.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+avg(
+ for $x in [int64("1"), int64("2"), int64("3")]
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null.aql
deleted file mode 100644
index 4f18910..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_avg_int64_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $a := avg(
- for $x in dataset('Numeric')
- return $x.int64Field
-)
-return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.3.query.aql
new file mode 100644
index 0000000..6b18e0f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int64_null/avg_int64_null.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $a := avg(
+ for $x in dataset('Numeric')
+ return $x.int64Field
+)
+return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8.aql
deleted file mode 100644
index e8f327d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_avg_int8.adm";
-
-avg(
- for $x in [int8("1"),int8("2"), int8("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.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/aggregate/avg_int8/avg_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.3.query.aql
new file mode 100644
index 0000000..ac648af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8/avg_int8.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+avg(
+ for $x in [int8("1"),int8("2"), int8("3")]
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null.aql
deleted file mode 100644
index c58e85a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_avg_int8_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $a := avg(
- for $x in dataset('Numeric')
- return $x.int8Field
-)
-return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.1.ddl.aql
new file mode 100644
index 0000000..5cf8ddf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.3.query.aql
new file mode 100644
index 0000000..2917fec
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/avg_int8_null/avg_int8_null.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $a := avg(
+ for $x in dataset('Numeric')
+ return $x.int8Field
+)
+return {"average": $a}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01.aql
deleted file mode 100644
index 8d14789..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_count_01.adm";
-
-count(
- for $x in [1, 2, 3]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.1.ddl.aql
new file mode 100644
index 0000000..55ab0f7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.1.ddl.aql
@@ -0,0 +1,6 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.3.query.aql
new file mode 100644
index 0000000..8e04aa3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_01/count_01.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+count(
+ for $x in [1, 2, 3]
+ return $x
+)
+
+
+
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.1.ddl.aql
new file mode 100644
index 0000000..ac3607c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.1.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tests that count aggregation correctly returns 0 for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.2.update.aql
new file mode 100644
index 0000000..c098290
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests that count aggregation correctly returns 0 for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.3.query.aql
new file mode 100644
index 0000000..f19e999
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_01/count_empty_01.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Tests that count aggregation correctly returns 0 for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+count(
+ for $x in [1, 2, 3]
+ where $x > 10
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.1.ddl.aql
new file mode 100644
index 0000000..0e7425f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.1.ddl.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tests that count aggregation correctly returns 0 for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as closed {
+ id: int32,
+ val: double
+}
+
+create dataset Test(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.2.update.aql
new file mode 100644
index 0000000..32fc59b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests that count aggregation correctly returns 0 for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.3.query.aql
new file mode 100644
index 0000000..ba5f817
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_empty_02/count_empty_02.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Tests that count aggregation correctly returns 0 for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+use dataverse test;
+
+count(
+ for $x in dataset('Test')
+ return $x.val
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null.aql
deleted file mode 100644
index 5a94d54..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_count_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-let $c := count(
- for $x in dataset('Numeric')
- return $x.doubleField
-)
-return {"count": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.3.query.aql
new file mode 100644
index 0000000..9cbfe6c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/count_null/count_null.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c := count(
+ for $x in dataset('Numeric')
+ return $x.doubleField
+)
+return {"count": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.1.ddl.aql
new file mode 100644
index 0000000..0423853
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Test to cover => create type - drop type - recreate that dropped type
+ * Expected Res : Success
+ * Date : 13 Sep 2012
+ * Issue : 188
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type footype as open {
+bar : int32?
+}
+
+drop type footype;
+
+create type footype as open {
+bar : int32?
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.2.update.aql
new file mode 100644
index 0000000..a6e5e2f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test to cover => create type - drop type - recreate that dropped type
+ * Expected Res : Success
+ * Date : 13 Sep 2012
+ * Issue : 188
+ */
+
+// This file has no insert/delete statements
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.3.query.aql
new file mode 100644
index 0000000..cb83e18
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/droptype/droptype.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test to cover => create type - drop type - recreate that dropped type
+ * Expected Res : Success
+ * Date : 13 Sep 2012
+ * Issue : 188
+ */
+
+// There is no Query in this test as we only create/drop from DDL file.
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01.aql
deleted file mode 100644
index 24ca240..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_global-avg_01.adm";
-
-global-avg(
- for $x in [1.0, 2.0, double("3.0")]
- return { "sum": $x, "count": 1 }
-)
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.1.ddl.aql
new file mode 100644
index 0000000..d067eb1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.1.ddl.aql
@@ -0,0 +1,5 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.3.query.aql
new file mode 100644
index 0000000..2652d36
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_01/global-avg_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+global-avg(
+ for $x in [1.0, 2.0, double("3.0")]
+ return { "sum": $x, "count": 1 }
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null.aql
deleted file mode 100644
index a8151d8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null.aql
+++ /dev/null
@@ -1,29 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_global-avg_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-
-let $c := global-avg(
- for $x in dataset('Numeric')
- return { "sum": $x.doubleField, "count": $x.int32Field }
-)
-return {"global-average": $c}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.3.query.aql
new file mode 100644
index 0000000..15493b9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/global-avg_null/global-avg_null.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+let $c := global-avg(
+ for $x in dataset('Numeric')
+ return { "sum": $x.doubleField, "count": $x.int32Field }
+)
+return {"global-average": $c}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double.aql
deleted file mode 100644
index 75d4af8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_local-avg_double.adm";
-
-local-avg(
- for $x in [1.0, 2.0, double("3.0")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.3.query.aql
new file mode 100644
index 0000000..81ebdc5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double/local-avg_double.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+local-avg(
+ for $x in [1.0, 2.0, double("3.0")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null.aql
deleted file mode 100644
index 6990fc4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_local-avg_double_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-local-avg(
- for $x in dataset('Numeric')
- return $x.doubleField
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.2.update.aql
new file mode 100644
index 0000000..155c264
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.2.update.aql
@@ -0,0 +1 @@
+// No inserts/deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.3.query.aql
new file mode 100644
index 0000000..28721d1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_double_null/local-avg_double_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+local-avg(
+ for $x in dataset('Numeric')
+ return $x.doubleField
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float.aql
deleted file mode 100644
index f79fa3d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_local-avg_float.adm";
-
-local-avg(
- for $x in [float("1"), float("2"), float("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.2.update.aql
new file mode 100644
index 0000000..c52462e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.2.update.aql
@@ -0,0 +1 @@
+// no inserts/deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.3.query.aql
new file mode 100644
index 0000000..ae73bf4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float/local-avg_float.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+local-avg(
+ for $x in [float("1"), float("2"), float("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null.aql
deleted file mode 100644
index 6f5a39d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_local-avg_float_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-local-avg(
- for $x in dataset('Numeric')
- return $x.floatField
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.2.update.aql
new file mode 100644
index 0000000..b77b33e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.2.update.aql
@@ -0,0 +1 @@
+// no insert delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.3.query.aql
new file mode 100644
index 0000000..8fe8c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_float_null/local-avg_float_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+local-avg(
+ for $x in dataset('Numeric')
+ return $x.floatField
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16.aql
deleted file mode 100644
index c0e61e6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_local-avg_int16.adm";
-
-local-avg(
- for $x in [int16("1"), int16("2"), int16("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.1.ddl.aql
new file mode 100644
index 0000000..56e96a6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.1.ddl.aql
@@ -0,0 +1,11 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+local-avg(
+ for $x in [int16("1"), int16("2"), int16("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.2.update.aql
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.2.update.aql
@@ -0,0 +1 @@
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.3.query.aql
new file mode 100644
index 0000000..2d776a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16/local-avg_int16.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+local-avg(
+ for $x in [int16("1"), int16("2"), int16("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null.aql
deleted file mode 100644
index 65287f1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_local-avg_int16_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-local-avg(
- for $x in dataset('Numeric')
- return $x.int16Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.2.update.aql
new file mode 100644
index 0000000..9d2ef1c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.2.update.aql
@@ -0,0 +1 @@
+// no insert deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.3.query.aql
new file mode 100644
index 0000000..9e923df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int16_null/local-avg_int16_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+local-avg(
+ for $x in dataset('Numeric')
+ return $x.int16Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32.aql
deleted file mode 100644
index 977dbcf..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_local-avg_int32.adm";
-
-local-avg(
- for $x in [1, 2, 3]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.2.update.aql
new file mode 100644
index 0000000..f0c597a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.2.update.aql
@@ -0,0 +1 @@
+// no inserts deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.3.query.aql
new file mode 100644
index 0000000..56ec2c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32/local-avg_int32.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+local-avg(
+ for $x in [1, 2, 3]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null.aql
deleted file mode 100644
index eea2d41..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_local-avg_int32_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-local-avg(
- for $x in dataset('Numeric')
- return $x.int32Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.1.ddl.aql
new file mode 100644
index 0000000..53a7daa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.3.query.aql
new file mode 100644
index 0000000..f6a89c6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int32_null/local-avg_int32_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+local-avg(
+ for $x in dataset('Numeric')
+ return $x.int32Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64.aql
deleted file mode 100644
index 3bfbe26..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_local-avg_int64.adm";
-
-local-avg(
- for $x in [int64("1"), int64("2"), int64("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.2.update.aql
new file mode 100644
index 0000000..2be8eb8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.2.update.aql
@@ -0,0 +1 @@
+// no inserts delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.3.query.aql
new file mode 100644
index 0000000..6501365a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64/local-avg_int64.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+local-avg(
+ for $x in [int64("1"), int64("2"), int64("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null.aql
deleted file mode 100644
index d25ae69..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_local-avg_int64_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-local-avg(
- for $x in dataset('Numeric')
- return $x.int64Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.2.update.aql
new file mode 100644
index 0000000..b77b33e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.2.update.aql
@@ -0,0 +1 @@
+// no insert delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.3.query.aql
new file mode 100644
index 0000000..d0248c3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int64_null/local-avg_int64_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+local-avg(
+ for $x in dataset('Numeric')
+ return $x.int64Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8.aql
deleted file mode 100644
index cd3e3fe..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_local-avg_int8.adm";
-
-local-avg(
- for $x in [int8("1"),int8("2"), int8("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.2.update.aql
new file mode 100644
index 0000000..b77b33e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.2.update.aql
@@ -0,0 +1 @@
+// no insert delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.3.query.aql
new file mode 100644
index 0000000..884c61b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8/local-avg_int8.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+local-avg(
+ for $x in [int8("1"),int8("2"), int8("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null.aql
deleted file mode 100644
index b8e4bcb..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_local-avg_int8_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-local-avg(
- for $x in dataset('Numeric')
- return $x.int8Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.2.update.aql
new file mode 100644
index 0000000..b77b33e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.2.update.aql
@@ -0,0 +1 @@
+// no insert delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.3.query.aql
new file mode 100644
index 0000000..82d7ab3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/local-avg_int8_null/local-avg_int8_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+local-avg(
+ for $x in dataset('Numeric')
+ return $x.int8Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.1.ddl.aql
new file mode 100644
index 0000000..5cd8f78
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Tests that max aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.2.update.aql
new file mode 100644
index 0000000..43a3212
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that max aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts/deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.3.query.aql
new file mode 100644
index 0000000..5068259
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_01/max_empty_01.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Tests that max aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+max(
+ for $x in [1, 2, 3]
+ where $x > 10
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.1.ddl.aql
new file mode 100644
index 0000000..94fd061
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Tests that max aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as closed {
+ id: int32,
+ val: double
+}
+
+create dataset Test(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.2.update.aql
new file mode 100644
index 0000000..08727d0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests that max aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.3.query.aql
new file mode 100644
index 0000000..401f67f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/max_empty_02/max_empty_02.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Tests that max aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+max(
+ for $x in dataset('Test')
+ return $x.val
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.1.ddl.aql
new file mode 100644
index 0000000..2a0b464
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests that min aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.2.update.aql
new file mode 100644
index 0000000..fb056b7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that min aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts/deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.3.query.aql
new file mode 100644
index 0000000..7f187cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_01/min_empty_01.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Tests that min aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+min(
+ for $x in [1, 2, 3]
+ where $x > 10
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.1.ddl.aql
new file mode 100644
index 0000000..6f88fe5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Tests that min aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as closed {
+ id: int32,
+ val: double
+}
+
+create dataset Test(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.2.update.aql
new file mode 100644
index 0000000..e31545a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that min aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts and deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.3.query.aql
new file mode 100644
index 0000000..3133060
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/min_empty_02/min_empty_02.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Tests that min aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+min(
+ for $x in dataset('Test')
+ return $x.val
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.1.ddl.aql
new file mode 100644
index 0000000..1ca0c77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of avg without nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.2.update.aql
new file mode 100644
index 0000000..56f1a25
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of avg without nulls.
+ * Success : Yes
+ */
+
+// no insert delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.3.query.aql
new file mode 100644
index 0000000..bc2005d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg/scalar_avg.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Tests the scalar version of avg without nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := avg([int8("1"), int8("2"), int8("3")])
+let $i16 := avg([int16("1"), int16("2"), int16("3")])
+let $i32 := avg([int32("1"), int32("2"), int32("3")])
+let $i64 := avg([int64("1"), int64("2"), int64("3")])
+let $f := avg([float("1"), float("2"), float("3")])
+let $d := avg([double("1"), double("2"), double("3")])
+for $i in [$i8, $i16, $i32, $i64, $f, $d]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.1.ddl.aql
new file mode 100644
index 0000000..1c8169f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of avg with an empty list.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.2.update.aql
new file mode 100644
index 0000000..5597020
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of avg with an empty list.
+ * Success : Yes
+ */
+
+// no insert delete here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.3.query.aql
new file mode 100644
index 0000000..03d2902
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_empty/scalar_avg_empty.3.query.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of avg with an empty list.
+ * Success : Yes
+ */
+
+avg([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.1.ddl.aql
new file mode 100644
index 0000000..5e74858
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of avg with nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.2.update.aql
new file mode 100644
index 0000000..0a4161c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of avg with nulls.
+ * Success : Yes
+ */
+
+// no inserts deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.3.query.aql
new file mode 100644
index 0000000..2b8b993
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_avg_null/scalar_avg_null.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Tests the scalar version of avg with nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := avg([int8("1"), int8("2"), int8("3"), null])
+let $i16 := avg([int16("1"), int16("2"), int16("3"), null])
+let $i32 := avg([int32("1"), int32("2"), int32("3"), null])
+let $i64 := avg([int64("1"), int64("2"), int64("3"), null])
+let $f := avg([float("1"), float("2"), float("3"), null])
+let $d := avg([double("1"), double("2"), double("3"), null])
+for $i in [$i8, $i16, $i32, $i64, $f, $d]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.1.ddl.aql
new file mode 100644
index 0000000..738c93f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of count without nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.2.update.aql
new file mode 100644
index 0000000..fb02201
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of count without nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.3.query.aql
new file mode 100644
index 0000000..8a287eb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count/scalar_count.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Tests the scalar version of count without nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := count([int8("1"), int8("2"), int8("3")])
+let $i16 := count([int16("1"), int16("2"), int16("3")])
+let $i32 := count([int32("1"), int32("2"), int32("3")])
+let $i64 := count([int64("1"), int64("2"), int64("3")])
+let $f := count([float("1"), float("2"), float("3")])
+let $d := count([double("1"), double("2"), double("3")])
+let $s := count(["a", "b", "c"])
+for $i in [$i8, $i16, $i32, $i64, $f, $d, $s]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.1.ddl.aql
new file mode 100644
index 0000000..fbaee27
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of count with an empty list.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.2.update.aql
new file mode 100644
index 0000000..d1f8aef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of count with an empty list.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.3.query.aql
new file mode 100644
index 0000000..406798f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_empty/scalar_count_empty.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of count with an empty list.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+count([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.1.ddl.aql
new file mode 100644
index 0000000..8341d8f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of count with nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.2.update.aql
new file mode 100644
index 0000000..221f98a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of count with nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.3.query.aql
new file mode 100644
index 0000000..d432cdf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_count_null/scalar_count_null.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Tests the scalar version of count with nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := count([int8("1"), int8("2"), int8("3"), null])
+let $i16 := count([int16("1"), int16("2"), int16("3"), null])
+let $i32 := count([int32("1"), int32("2"), int32("3"), null])
+let $i64 := count([int64("1"), int64("2"), int64("3"), null])
+let $f := count([float("1"), float("2"), float("3"), null])
+let $d := count([double("1"), double("2"), double("3"), null])
+let $s := count(["a", "b", "c", null])
+for $i in [$i8, $i16, $i32, $i64, $f, $d, $s]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.1.ddl.aql
new file mode 100644
index 0000000..058ca2b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of max without nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.2.update.aql
new file mode 100644
index 0000000..ac0c2df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of max without nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.3.query.aql
new file mode 100644
index 0000000..e3f064c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max/scalar_max.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tests the scalar version of max without nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := max([int8("1"), int8("2"), int8("3")])
+let $i16 := max([int16("1"), int16("2"), int16("3")])
+let $i32 := max([int32("1"), int32("2"), int32("3")])
+let $i64 := max([int64("1"), int64("2"), int64("3")])
+let $f := max([float("1"), float("2"), float("3")])
+let $d := max([double("1"), double("2"), double("3")])
+let $s := max(["foo", "bar", "world"])
+let $dt := max([datetime("2012-03-01T00:00:00Z"), datetime("2012-01-01T00:00:00Z"), datetime("2012-02-01T00:00:00Z")])
+for $i in [$i8, $i16, $i32, $i64, $f, $d, $s, $dt]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.1.ddl.aql
new file mode 100644
index 0000000..2f4d00c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of max with an empty list.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.2.update.aql
new file mode 100644
index 0000000..dd6fb87
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of max with an empty list.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.3.query.aql
new file mode 100644
index 0000000..0aa63ab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_empty/scalar_max_empty.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of max with an empty list.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+max([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.1.ddl.aql
new file mode 100644
index 0000000..4713540
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of max with nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.2.update.aql
new file mode 100644
index 0000000..ade6f7b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of max with nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.3.query.aql
new file mode 100644
index 0000000..b5708c9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_max_null/scalar_max_null.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tests the scalar version of max with nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := max([int8("1"), int8("2"), int8("3"), null])
+let $i16 := max([int16("1"), int16("2"), int16("3"), null])
+let $i32 := max([int32("1"), int32("2"), int32("3"), null])
+let $i64 := max([int64("1"), int64("2"), int64("3"), null])
+let $f := max([float("1"), float("2"), float("3"), null])
+let $d := max([double("1"), double("2"), double("3"), null])
+let $s := max(["foo", "bar", "world", null])
+let $dt := min([datetime("2012-03-01T00:00:00Z"), datetime("2012-01-01T00:00:00Z"), datetime("2012-02-01T00:00:00Z"), null])
+for $i in [$i8, $i16, $i32, $i64, $f, $d, $s, $dt]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.1.ddl.aql
new file mode 100644
index 0000000..b0ba723
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of min without nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.2.update.aql
new file mode 100644
index 0000000..89c8265
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of min without nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.3.query.aql
new file mode 100644
index 0000000..9d7a661
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min/scalar_min.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tests the scalar version of min without nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := min([int8("1"), int8("2"), int8("3")])
+let $i16 := min([int16("1"), int16("2"), int16("3")])
+let $i32 := min([int32("1"), int32("2"), int32("3")])
+let $i64 := min([int64("1"), int64("2"), int64("3")])
+let $f := min([float("1"), float("2"), float("3")])
+let $d := min([double("1"), double("2"), double("3")])
+let $s := min(["foo", "bar", "world"])
+let $dt := min([datetime("2012-03-01T00:00:00Z"), datetime("2012-01-01T00:00:00Z"), datetime("2012-02-01T00:00:00Z")])
+for $i in [$i8, $i16, $i32, $i64, $f, $d, $s, $dt]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.1.ddl.aql
new file mode 100644
index 0000000..d4de7aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.1.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Tests the scalar version of min with an empty list.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+min([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.2.update.aql
new file mode 100644
index 0000000..5c4fe2e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of min with an empty list.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.3.query.aql
new file mode 100644
index 0000000..f765e4e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_empty/scalar_min_empty.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of min with an empty list.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+min([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.1.ddl.aql
new file mode 100644
index 0000000..807484d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of min with nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.2.update.aql
new file mode 100644
index 0000000..db34098
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of min with nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.3.query.aql
new file mode 100644
index 0000000..426f2ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_min_null/scalar_min_null.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tests the scalar version of min with nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := min([int8("1"), int8("2"), int8("3"), null])
+let $i16 := min([int16("1"), int16("2"), int16("3"), null])
+let $i32 := min([int32("1"), int32("2"), int32("3"), null])
+let $i64 := min([int64("1"), int64("2"), int64("3"), null])
+let $f := min([float("1"), float("2"), float("3"), null])
+let $d := min([double("1"), double("2"), double("3"), null])
+let $s := min(["foo", "bar", "world", null])
+let $dt := min([datetime("2012-03-01T00:00:00Z"), datetime("2012-01-01T00:00:00Z"), datetime("2012-02-01T00:00:00Z"), null])
+for $i in [$i8, $i16, $i32, $i64, $f, $d, $s, $dt]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.1.ddl.aql
new file mode 100644
index 0000000..ec1cb2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of sum without nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.2.update.aql
new file mode 100644
index 0000000..ffadd17
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of sum without nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.3.query.aql
new file mode 100644
index 0000000..531def5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum/scalar_sum.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Tests the scalar version of sum without nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := sum([int8("1"), int8("2"), int8("3")])
+let $i16 := sum([int16("1"), int16("2"), int16("3")])
+let $i32 := sum([int32("1"), int32("2"), int32("3")])
+let $i64 := sum([int64("1"), int64("2"), int64("3")])
+let $f := sum([float("1"), float("2"), float("3")])
+let $d := sum([double("1"), double("2"), double("3")])
+for $i in [$i8, $i16, $i32, $i64, $f, $d]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.1.ddl.aql
new file mode 100644
index 0000000..3d954c1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.1.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Tests the scalar version of sum with an empty list.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+sum([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.2.update.aql
new file mode 100644
index 0000000..b0963c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of sum with an empty list.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.3.query.aql
new file mode 100644
index 0000000..62517ad
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_empty/scalar_sum_empty.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests the scalar version of sum with an empty list.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+sum([ ])
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.1.ddl.aql
new file mode 100644
index 0000000..8aad56b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests the scalar version of sum with nulls.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.2.update.aql
new file mode 100644
index 0000000..3032051
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Tests the scalar version of sum with nulls.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.3.query.aql
new file mode 100644
index 0000000..3cd2c19
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/scalar_sum_null/scalar_sum_null.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Tests the scalar version of sum with nulls.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $i8 := sum([int8("1"), int8("2"), int8("3"), null])
+let $i16 := sum([int16("1"), int16("2"), int16("3"), null])
+let $i32 := sum([int32("1"), int32("2"), int32("3"), null])
+let $i64 := sum([int64("1"), int64("2"), int64("3"), null])
+let $f := sum([float("1"), float("2"), float("3"), null])
+let $d := sum([double("1"), double("2"), double("3"), null])
+for $i in [$i8, $i16, $i32, $i64, $f, $d]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double.aql
deleted file mode 100644
index 4a0bfe8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_sum_double.adm";
-
-sum(
- for $x in [1.0, 2.0, 3.0]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.3.query.aql
new file mode 100644
index 0000000..118d891
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double/sum_double.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+sum(
+ for $x in [1.0, 2.0, 3.0]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null.aql
deleted file mode 100644
index d919120..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_sum_double_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-sum(
- for $x in dataset('Numeric')
- return $x.doubleField
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.3.query.aql
new file mode 100644
index 0000000..843ae1b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_double_null/sum_double_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in dataset('Numeric')
+ return $x.doubleField
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.1.ddl.aql
new file mode 100644
index 0000000..ff8dafa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests that sum aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.2.update.aql
new file mode 100644
index 0000000..36a33e0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that sum aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.3.query.aql
new file mode 100644
index 0000000..2b2526c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_01/sum_empty_01.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Tests that sum aggregation correctly returns null for an empty stream,
+ * without an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+sum(
+ for $x in [1, 2, 3]
+ where $x > 10
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.1.ddl.aql
new file mode 100644
index 0000000..6679a19
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Tests that sum aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as closed {
+ id: int32,
+ val: double
+}
+
+create dataset Test(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.2.update.aql
new file mode 100644
index 0000000..479b626
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests that sum aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.3.query.aql
new file mode 100644
index 0000000..eb9df25
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_empty_02/sum_empty_02.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Tests that sum aggregation correctly returns null for an empty stream,
+ * with an aggregate combiner.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+sum(
+ for $x in dataset('Test')
+ return $x.val
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float.aql
deleted file mode 100644
index 0798dd8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_sum_float.adm";
-
-sum(
- for $x in [float("1"), float("2"), float("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.3.query.aql
new file mode 100644
index 0000000..afbf7c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float/sum_float.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+sum(
+ for $x in [float("1"), float("2"), float("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null.aql
deleted file mode 100644
index 767c5a4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_sum_float_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-sum(
- for $x in dataset('Numeric')
- return $x.floatField
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.3.query.aql
new file mode 100644
index 0000000..4015f0b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_float_null/sum_float_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in dataset('Numeric')
+ return $x.floatField
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16.aql
deleted file mode 100644
index 77ea235..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_sum_int16.adm";
-
-sum(
- for $x in [int16("1"), int16("2"), int16("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.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/aggregate/sum_int16/sum_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.3.query.aql
new file mode 100644
index 0000000..ec84d47
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16/sum_int16.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+sum(
+ for $x in [int16("1"), int16("2"), int16("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null.aql
deleted file mode 100644
index 7535a95..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_sum_int16_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-sum(
- for $x in dataset('Numeric')
- return $x.int16Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.3.query.aql
new file mode 100644
index 0000000..7aa5a34
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int16_null/sum_int16_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in dataset('Numeric')
+ return $x.int16Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32.aql
deleted file mode 100644
index c8d68aa..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_sum_int32.adm";
-
-sum(
- for $x in [1, 2, int32("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.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/aggregate/sum_int32/sum_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.3.query.aql
new file mode 100644
index 0000000..b137895
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32/sum_int32.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+sum(
+ for $x in [1, 2, int32("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null.aql
deleted file mode 100644
index 2fe268920..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_sum_int32_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-sum(
- for $x in dataset('Numeric')
- return $x.int32Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.3.query.aql
new file mode 100644
index 0000000..26c390a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int32_null/sum_int32_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in dataset('Numeric')
+ return $x.int32Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64.aql
deleted file mode 100644
index d4b6851..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_sum_int64.adm";
-
-sum(
- for $x in [int64("1"), int64("2"), int64("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.1.ddl.aql
new file mode 100644
index 0000000..247c983
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.1.ddl.aql
@@ -0,0 +1,11 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+sum(
+ for $x in [int64("1"), int64("2"), int64("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.3.query.aql
new file mode 100644
index 0000000..66a8806
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64/sum_int64.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in [int64("1"), int64("2"), int64("3")]
+ return $x
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null.aql
deleted file mode 100644
index 7f6428a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_sum_int64_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-sum(
- for $x in dataset('Numeric')
- return $x.int64Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.2.update.aql
new file mode 100644
index 0000000..d93253f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.3.query.aql
new file mode 100644
index 0000000..8751d93
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int64_null/sum_int64_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in dataset('Numeric')
+ return $x.int64Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8.aql
deleted file mode 100644
index 8e8c4da..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/aggregate_sum_int8.adm";
-
-sum(
- for $x in [int8("1"), int8("2"), int8("3")]
- return $x
-)
-
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.1.ddl.aql
new file mode 100644
index 0000000..4c7f01d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.1.ddl.aql
@@ -0,0 +1,11 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+sum(
+ for $x in [int8("1"), int8("2"), int8("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.3.query.aql
new file mode 100644
index 0000000..4fd5937
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8/sum_int8.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+sum(
+ for $x in [int8("1"), int8("2"), int8("3")]
+ return $x
+)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null.aql
deleted file mode 100644
index e1fad61..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-write output to nc1:"rttest/aggregate_sum_int8_null.adm";
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
-
-sum(
- for $x in dataset('Numeric')
- return $x.int8Field
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.1.ddl.aql
new file mode 100644
index 0000000..7cdcbea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.3.query.aql
new file mode 100644
index 0000000..fe8dc24
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_int8_null/sum_int8_null.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+sum(
+ for $x in dataset('Numeric')
+ return $x.int8Field
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.1.ddl.aql
new file mode 100644
index 0000000..63a57f0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : sum() aggregate function must return the numeric sum, when non null values are given as input to sum().
+ * : Get the sum for those tuples which are non null for salary fields.
+ * Expected result : Success
+ * Date : July 20th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+id:int32,
+sal:int32?
+}
+
+create dataset tdst(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.2.update.aql
new file mode 100644
index 0000000..bf6a34d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : sum() aggregate function must return the numeric sum, when non null values are given as input to sum().
+ * : Get the sum for those tuples which are non null for salary fields.
+ * Expected result : Success
+ * Date : July 20th 2012
+ */
+
+use dataverse test;
+
+insert into dataset tdst({"id":123,"sal":1000});
+insert into dataset tdst({"id":113,"sal":2000});
+insert into dataset tdst({"id":163,"sal":3000});
+insert into dataset tdst({"id":161,"sal":4000});
+insert into dataset tdst({"id":173,"sal":5000});
+insert into dataset tdst({"id":183,"sal":null});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.3.query.aql
new file mode 100644
index 0000000..432866f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_null-with-pred/sum_null-with-pred.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : sum() aggregate function must return the numeric sum, when non null values are given as input to sum().
+ * : Get the sum for those tuples which are non null for salary fields.
+ * Expected result : Success
+ * Date : July 20th 2012
+ */
+
+use dataverse test;
+
+sum(for $l in dataset('tdst')
+where not(is-null($l.sal))
+return $l.sal)
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.1.ddl.aql
new file mode 100644
index 0000000..d61f490
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Add numeric values with a null value, sum() aggregate function must return null.
+ * Expected result : Success
+ * Date : July 20th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+id:int32,
+sal:int32?
+}
+
+create dataset tdst(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.2.update.aql
new file mode 100644
index 0000000..bc2adb1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.2.update.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Add numeric values with a null value, sum() aggregate function must return null.
+ * Expected result : Success
+ * Date : July 20th 2012
+ */
+
+use dataverse test;
+
+insert into dataset tdst({"id":123,"sal":345});
+insert into dataset tdst({"id":113,"sal":335});
+insert into dataset tdst({"id":163,"sal":315});
+insert into dataset tdst({"id":161,"sal":365});
+insert into dataset tdst({"id":173,"sal":385});
+insert into dataset tdst({"id":183,"sal":null});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.3.query.aql
new file mode 100644
index 0000000..4b11a2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/aggregate/sum_numeric_null/sum_numeric_null.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Add numeric values with a null value, sum() aggregate function must return null.
+ * Expected result : Success
+ * Date : July 20th 2012
+ */
+
+use dataverse test;
+
+// In AQL
+// sum(numeric + null) => null
+
+sum(for $l in dataset('tdst')
+return $l.sal)
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_01.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01.aql
deleted file mode 100644
index 9255694..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/boolean/and_01.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/boolean_and_01.adm";
-
-for $x in ["true"]
-for $y in ["false"]
-return $x and $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.3.query.aql
new file mode 100644
index 0000000..471abb5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_01/and_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in ["true"]
+for $y in ["false"]
+return $x and $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null.aql
deleted file mode 100644
index eb02bde..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/boolean_and_null.adm";
-
-let $x := boolean("true")
-let $y := null
-return $x and $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.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/boolean/and_null/and_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.3.query.aql
new file mode 100644
index 0000000..830ffe9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null/and_null.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := boolean("true")
+let $y := null
+return $x and $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false.aql
deleted file mode 100644
index e2a26f6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/boolean_and_null_false.adm";
-
-let $x := boolean("false")
-let $y := null
-return $x and $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.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/boolean/and_null_false/and_null_false.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.3.query.aql
new file mode 100644
index 0000000..5e646a8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/and_null_false/and_null_false.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := boolean("false")
+let $y := null
+return $x and $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/not_01.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01.aql
deleted file mode 100644
index 6297755..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/boolean/not_01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/boolean_not_01.adm";
-
-let $x := true
-let $y := false
-let $z := null
-return {"not_x": not($x), "not_y": not($y), "not_z": not($z)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.3.query.aql
new file mode 100644
index 0000000..af1a6bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/boolean/not_01/not_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $x := true
+let $y := false
+let $z := null
+return {"not_x": not($x), "not_y": not($y), "not_z": not($z)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.3.query.aql
new file mode 100644
index 0000000..1723f03
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/date_order/date_order.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $d1 := date("2049-04-23")
+let $d2 := date("2012-02-29")
+let $d3 := date("2021-03-01")
+let $d4 := date("1362-02-28")
+let $d5 := date("1600-02-29")
+let $d6 := date("-0500-03-21")
+
+for $d in [$d1, $d2, $d3, $d4, $d5, $d6]
+order by $d
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order.aql
deleted file mode 100644
index 2e151ab..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order.aql
+++ /dev/null
@@ -1,17 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_datetime_order.adm";
-
-let $dt1 := datetime("2011-12-31T14:00:00-10:00")
-let $dt2 := datetime("2012-01-01T00:00:00Z")
-let $dt3 := datetime("2005-01-01T00:00:00+04:00")
-let $dt4 := datetime("2011-12-31T13:00:00-11:00")
-let $dt5 := datetime("2012-04-06T00:00:00Z")
-
-for $dt in [$dt1, $dt2, $dt3, $dt4, $dt5]
-order by $dt
-return $dt
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.3.query.aql
new file mode 100644
index 0000000..7c95006
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_order/datetime_order.3.query.aql
@@ -0,0 +1,17 @@
+use dataverse test;
+
+let $dt1 := datetime("2011-12-31T14:00:00-10:00")
+let $dt2 := datetime("2012-01-01T00:00:00Z")
+let $dt3 := datetime("2005-01-01T00:00:00+04:00")
+let $dt4 := datetime("2011-12-31T13:00:00-11:00")
+let $dt5 := datetime("2012-04-06T00:00:00Z")
+let $dt6 := datetime("-1937-07-07T23:00:00+08:00")
+let $dt7 := datetime("-1600-03-01T00:00:00.384+06:00")
+let $dt8 := datetime("-1600-02-29T23:59:59.999Z")
+let $dt9 := datetime("2000-02-29T23:59:59.999Z")
+let $dt10 := datetime("2000-03-01T01:59:59.999+07:00")
+let $dt11 := datetime("-1600-03-01T00:00:00.384-06:00")
+
+for $dt in [$dt1, $dt2, $dt3, $dt4, $dt5, $dt6, $dt7, $dt8, $dt9, $dt10, $dt11]
+order by $dt
+return $dt
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.1.ddl.aql
new file mode 100644
index 0000000..9d55e6a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type Tweet as closed {
+ id: int32,
+ tweetid: int64,
+ loc: point,
+ time: datetime,
+ text: string
+}
+
+create dataset TwitterData(Tweet)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.2.update.aql
new file mode 100644
index 0000000..6191e9e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset TwitterData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/smalltweets.txt"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.3.query.aql
new file mode 100644
index 0000000..da4bae2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range/datetime_range.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $t in dataset('TwitterData')
+where $t.time > datetime("2011-05-15T16:00:00Z") and $t.time < datetime("2011-05-15T21:59:59Z")
+order by $t.id
+return { "id": $t.id }
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq.aql
deleted file mode 100644
index e38bdae..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_datetime_tzeq.adm";
-
-let $dt1 := datetime("2011-12-31T14:00:00-10:00")
-let $dt2 := datetime("2012-01-01T00:00:00Z")
-
-
-return [$dt1 = $dt2]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.3.query.aql
new file mode 100644
index 0000000..ff8fec8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_tzeq/datetime_tzeq.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+let $dt1 := datetime("2011-12-31T14:00:00-10:00")
+let $dt2 := datetime("2012-01-01T00:00:00Z")
+let $dt3 := datetime("2000-03-01T02:00:00+04:00")
+let $dt4 := datetime("2000-02-29T22:00:00Z")
+let $r1 := $dt1 = $dt2
+let $r2 := $dt3 = $dt4
+
+return { "result1": $r1,"result2": $r2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double.aql
deleted file mode 100644
index 55c7de0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/double.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_double.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $r1 := $c6 > $c1
-let $r2 := $c6 >= $c2
-let $r3 := $c6 < $c3
-let $r4 := $c6 <= $c4
-let $r5 := $c6 = $c5
-let $r6 := $c6 != $c6
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.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/comparison/double/double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.3.query.aql
new file mode 100644
index 0000000..8036041
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double/double.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $r1 := $c6 > $c1
+let $r2 := $c6 >= $c2
+let $r3 := $c6 < $c3
+let $r4 := $c6 <= $c4
+let $r5 := $c6 = $c5
+let $r6 := $c6 != $c6
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01.aql
deleted file mode 100644
index 663be22..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_double_gte_01.adm";
-
-for $i in [0.8, 0.8999999761581421, 0.9, 0.901]
-where $i >= 0.9
-return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_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/comparison/double_gte_01/double_gte_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.3.query.aql
new file mode 100644
index 0000000..82abee5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double_gte_01/double_gte_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $i in [0.8, 0.8999999761581421, 0.9, 0.901]
+where $i >= 0.9
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null.aql
deleted file mode 100644
index f3ab7f6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/double_null.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_double_null.adm";
-
-let $c1 := double("-6.5d")
-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/comparison/double_null/double_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.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/comparison/double_null/double_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.3.query.aql
new file mode 100644
index 0000000..326adda
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/double_null/double_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := double("-6.5d")
+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/comparison/eq_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01.aql
deleted file mode 100644
index 8e5f9af..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_eq_01.adm";
-
-for $x in [1, 2, 2]
-where $x = 2
-return $x
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.3.query.aql
new file mode 100644
index 0000000..3e0c79b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/eq_01/eq_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in [1, 2, 2]
+where $x = 2
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/float.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float.aql
deleted file mode 100644
index 7cfbbfb..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/float.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_float.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $r1 := $c5 > $c1
-let $r2 := $c5 >= $c2
-let $r3 := $c5 < $c3
-let $r4 := $c5 <= $c4
-let $r5 := $c5 = $c5
-let $r6 := $c5 != $c6
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.3.query.aql
new file mode 100644
index 0000000..648b8e2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/float/float.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $r1 := $c5 > $c1
+let $r2 := $c5 >= $c2
+let $r3 := $c5 < $c3
+let $r4 := $c5 <= $c4
+let $r5 := $c5 = $c5
+let $r6 := $c5 != $c6
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/float_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null.aql
deleted file mode 100644
index afd70de..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/float_null.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_float_null.adm";
-
-let $c1 := float("-6.5d")
-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/comparison/float_null/float_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.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/comparison/float_null/float_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.3.query.aql
new file mode 100644
index 0000000..b9af2e9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/float_null/float_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := float("-6.5d")
+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/comparison/gt_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01.aql
deleted file mode 100644
index efa5015..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_gt_01.adm";
-
-for $x in [1, 3, 2]
-where $x > 1
-return $x
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_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/comparison/gt_01/gt_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.3.query.aql
new file mode 100644
index 0000000..ed9c82a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/gt_01/gt_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $x in [1, 3, 2]
+where $x > 1
+return $x
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01.aql
deleted file mode 100644
index a9ffa71..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_gte_01.adm";
-
-for $x in [1, 3, 2]
-where $x >= 2
-return $x
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.3.query.aql
new file mode 100644
index 0000000..de9e4bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/gte_01/gte_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in [1, 3, 2]
+where $x >= 2
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int16.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16.aql
deleted file mode 100644
index 1f3701b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int16.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int16.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $r1 := $c2 > $c1
-let $r2 := $c2 >= $c2
-let $r3 := $c2 < $c3
-let $r4 := $c2 <= $c4
-let $r5 := $c2 = $c5
-let $r6 := $c2 != $c6
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.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/comparison/int16/int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.3.query.aql
new file mode 100644
index 0000000..0ba4212
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int16/int16.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $r1 := $c2 > $c1
+let $r2 := $c2 >= $c2
+let $r3 := $c2 < $c3
+let $r4 := $c2 <= $c4
+let $r5 := $c2 = $c5
+let $r6 := $c2 != $c6
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null.aql
deleted file mode 100644
index 6d8d80e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null.aql
+++ /dev/null
@@ -1,18 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int16_null.adm";
-
-let $c1 := int16("3")
-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/comparison/int16_null/int16_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.3.query.aql
new file mode 100644
index 0000000..8aca9cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int16_null/int16_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := int16("3")
+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/comparison/int32.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32.aql
deleted file mode 100644
index ab53691..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int32.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int32.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $r1 := $c3 > $c1
-let $r2 := $c3 >= $c2
-let $r3 := $c3 < $c3
-let $r4 := $c3 <= $c4
-let $r5 := $c3 = $c5
-let $r6 := $c3 != $c6
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.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/int32/int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.3.query.aql
new file mode 100644
index 0000000..91b1a53
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int32/int32.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $r1 := $c3 > $c1
+let $r2 := $c3 >= $c2
+let $r3 := $c3 < $c3
+let $r4 := $c3 <= $c4
+let $r5 := $c3 = $c5
+let $r6 := $c3 != $c6
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null.aql
deleted file mode 100644
index d1972e8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int32_null.adm";
-
-let $c1 := int32("3")
-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/comparison/int32_null/int32_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.3.query.aql
new file mode 100644
index 0000000..c6cfc43
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int32_null/int32_null.3.query.aql
@@ -0,0 +1,10 @@
+let $c1 := int32("3")
+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/comparison/int64.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64.aql
deleted file mode 100644
index a050b47..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int64.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int64.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $r1 := $c4 > $c1
-let $r2 := $c4 >= $c2
-let $r3 := $c4 <= $c3
-let $r4 := $c4 < $c4
-let $r5 := $c4 = $c5
-let $r6 := $c4 != $c6
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.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/int64/int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.3.query.aql
new file mode 100644
index 0000000..6f34ad7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int64/int64.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $r1 := $c4 > $c1
+let $r2 := $c4 >= $c2
+let $r3 := $c4 <= $c3
+let $r4 := $c4 < $c4
+let $r5 := $c4 = $c5
+let $r6 := $c4 != $c6
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null.aql
deleted file mode 100644
index 5144cb4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int64_null.adm";
-
-let $c1 := int64("3")
-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/comparison/int64_null/int64_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_null.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_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/int64_null/int64_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_null.3.query.aql
new file mode 100644
index 0000000..7fc4730
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int64_null/int64_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := int64("3")
+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/comparison/int8.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8.aql
deleted file mode 100644
index e06a33d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int8.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int8.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $r1 := $c1 > $c1
-let $r2 := $c1 >= $c2
-let $r3 := $c1 < $c3
-let $r4 := $c1 <= $c4
-let $r5 := $c1 = $c5
-let $r6 := $c1 != $c6
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.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/int8/int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.3.query.aql
new file mode 100644
index 0000000..70a41f8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int8/int8.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $r1 := $c1 > $c1
+let $r2 := $c1 >= $c2
+let $r3 := $c1 < $c3
+let $r4 := $c1 <= $c4
+let $r5 := $c1 = $c5
+let $r6 := $c1 != $c6
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null.aql
deleted file mode 100644
index a38c754..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_int8_null.adm";
-
-let $c1 := int8("3")
-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/comparison/int8_null/int8_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_null.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_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/int8_null/int8_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_null.3.query.aql
new file mode 100644
index 0000000..5f96dd8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/int8_null/int8_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := int8("3")
+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/comparison/lt_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01.aql
deleted file mode 100644
index db28fdc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_lt_01.adm";
-
-for $x in [1, 3, 2]
-where $x < 3
-return $x
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_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/comparison/lt_01/lt_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.3.query.aql
new file mode 100644
index 0000000..cf5c158
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/lt_01/lt_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in [1, 3, 2]
+where $x < 3
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01.aql
deleted file mode 100644
index e4c5ffa..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_lte_01.adm";
-
-for $x in [1, 3, 2]
-where $x <= 2
-return $x
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_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/comparison/lte_01/lte_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.3.query.aql
new file mode 100644
index 0000000..45f83c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/lte_01/lte_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in [1, 3, 2]
+where $x <= 2
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01.aql
deleted file mode 100644
index ae88077..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_neq_01.adm";
-
-for $x in [1, 2, 2]
-where $x != 2
-return $x
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_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/comparison/neq_01/neq_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.3.query.aql
new file mode 100644
index 0000000..3903646
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/neq_01/neq_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in [1, 2, 2]
+where $x != 2
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01.aql
deleted file mode 100644
index 7c2ce39..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_numeric-comparison_01.adm";
-
-let $l := [1.1f, 1.0f, 1.2f, 0.9, 1.3, 1, 2]
-for $i in $l
-for $j in $l
-return [$i, $j, "=", $i = $j, "<", $i < $j, "<=", $i <= $j, ">", $i > $j, ">=", $i >= $j]
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_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/comparison/numeric-comparison_01/numeric-comparison_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.3.query.aql
new file mode 100644
index 0000000..11a19ff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/numeric-comparison_01/numeric-comparison_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $l := [1.1f, 1.0f, 1.2f, 0.9, 1.3, 1, 2]
+for $i in $l
+for $j in $l
+return [$i, $j, "=", $i = $j, "<", $i < $j, "<=", $i <= $j, ">", $i > $j, ">=", $i >= $j]
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/string.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string.aql
deleted file mode 100644
index 6b63d52..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/string.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_string.adm";
-
-let $c1 := "AA"
-let $c2 := "B"
-let $r1 := $c1 > $c2
-let $r2 := $c1 >= $c2
-let $r3 := $c1 < $c2
-let $r4 := $c1 <= $c2
-let $r5 := $c1 = $c2
-let $r6 := $c1 != $c2
-return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.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/string/string.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.3.query.aql
new file mode 100644
index 0000000..ff6e16a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/string/string.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := "AA"
+let $c2 := "B"
+let $r1 := $c1 > $c2
+let $r2 := $c1 >= $c2
+let $r3 := $c1 < $c2
+let $r4 := $c1 <= $c2
+let $r5 := $c1 = $c2
+let $r6 := $c1 != $c2
+return {"result1": $r1,"result2": $r2,"result3": $r3,"result4": $r4,"result5": $r5, "result6": $r6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/string_null.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null.aql
deleted file mode 100644
index f959e92..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/string_null.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/comparison_string_null.adm";
-
-let $c1 := "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/comparison/string_null/string_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_null.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_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/string_null/string_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_null.3.query.aql
new file mode 100644
index 0000000..f391766
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/string_null/string_null.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := "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/comparison/time_order/time_order.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.1.ddl.aql
new file mode 100644
index 0000000..d330bc0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.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/comparison/time_order/time_order.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.3.query.aql
new file mode 100644
index 0000000..9a9e858
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/time_order/time_order.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $t1 := time("13:00:00.382-10:00")
+let $t2 := time("23:59:59.999Z")
+let $t3 := time("22:00:00+03:00")
+let $t4 := time("00:00:00.00Z")
+let $t5 := time("00:00:00.00-02:00")
+let $t6 := time("00:00:00.47+04:00")
+
+for $t in [$t1, $t2, $t3, $t4, $t5, $t6]
+order by $t
+return $t
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.3.query.aql
new file mode 100644
index 0000000..e1fdcfb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/add-null/add-null.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Add anything plus null, the result should be null.
+ * Expected Result : Success
+ * Date : 19th July 2012
+ */
+
+let $x := 1
+let $y := 10
+let $z := 20
+return ($x+$y+$z+null)
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01.aql
deleted file mode 100644
index 479f20f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_boolean_01.adm";
-
-let $c1 := boolean("true")
-let $c2 := boolean("false")
-return {"boolean1": $c1,"boolean2": $c2}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_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/boolean_01/boolean_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.3.query.aql
new file mode 100644
index 0000000..335fed9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/boolean_01/boolean_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := boolean("true")
+let $c2 := boolean("false")
+return {"boolean1": $c1,"boolean2": $c2}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01.aql
deleted file mode 100644
index 3af819d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_circle_01.adm";
-
-let $c1 := circle("10.1234,11.1e-1 +10.2E-2")
-let $c2 := circle("0.1234,-1.00e-10 +10.5E-2")
-return {"circle1": $c1,"circle2": $c2}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_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/constructor/circle_01/circle_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.3.query.aql
new file mode 100644
index 0000000..1420d06
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/circle_01/circle_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $c1 := circle("10.1234,11.1e-1 +10.2E-2")
+let $c2 := circle("0.1234,-1.00e-10 +10.5E-2")
+return {"circle1": $c1,"circle2": $c2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/date_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01.aql
deleted file mode 100644
index c889627..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/date_01.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_date_01.adm";
-
-let $c1 := date("2010-10-30+05:00")
-let $c2 := date("2010-10-30-10:15")
-let $c3 := date("1987-11-19")
-let $c4 := date("1987-11-19Z")
-let $c5 := date("-1987-11-19+08:30")
-let $c6 := date("0001-12-27")
-let $c7 := date("-1951-01-27-01:45")
-return {"date1": $c1, "date2": $c2, "date3": $c3, "date4": $c4, "date5": $c5, "date6": $c6, "date7": $c7}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_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/date_01/date_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.2.update.aql
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.2.update.aql
@@ -0,0 +1,2 @@
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.3.query.aql
new file mode 100644
index 0000000..325e4c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/date_01/date_01.3.query.aql
@@ -0,0 +1,14 @@
+use dataverse test;
+
+let $c1 := date("2010-10-30")
+let $c2 := date("1987-11-19")
+let $c3 := date("-1987-11-19")
+let $c4 := date("0001-12-27")
+let $c5 := date("-1951-12-27")
+let $c6 := date("-2043-11-19")
+let $c7 := date("-19280329")
+let $c8 := date("19280329")
+let $c9 := date("19000228")
+let $c10 := date("20000229")
+
+return {"date1": $c1, "date2": $c2, "date3": $c3, "date4": $c4, "date5": $c5, "date6": $c6, "date7": $c7, "date8": $c8, "date9": $c9, "date10": $c10}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01.aql
deleted file mode 100644
index 611feff..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-use dataverse test;
-
-write output to nc1:"rttest/constructor_datetime_01.adm";
-
-let $c1 := datetime("2010-10-30T10:50:56:999+05:45")
-let $c2 := datetime("2010-10-30T10:30:56:250-10:00")
-let $c3 := datetime("1987-11-19T09:20:00:200")
-let $c4 := datetime("1987-11-19T10:50:56Z")
-let $c5 := datetime("-1987-11-19T10:50:56:099-05:30")
-let $c6 := datetime("-0001-11-19T10:50:56:719Z")
-let $c7 := datetime("1951-12-27T12:20:15")
-return {"datetime1": $c1, "datetime2": $c2, "datetime3": $c3, "datetime4": $c4, "datetime5": $c5, "datetime6": $c6, "datetime7": $c7}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_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/datetime_01/datetime_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.3.query.aql
new file mode 100644
index 0000000..2482028
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/datetime_01/datetime_01.3.query.aql
@@ -0,0 +1,17 @@
+use dataverse test;
+
+let $c1 := datetime("2010-10-30T10:50:56.999+05:45")
+let $c2 := datetime("2010-10-30T10:30:56.250-10:00")
+let $c3 := datetime("1987-11-19T09:20:00.200Z")
+let $c4 := datetime("1987-11-19T10:50:56Z")
+let $c5 := datetime("-1987-11-19T10:50:56.099-05:30")
+let $c6 := datetime("-0001-11-19T10:50:56.719Z")
+let $c7 := datetime("1951-12-27T12:20:15Z")
+let $c8 := datetime("2043-11-19T10:50:56.719Z")
+let $c9 := datetime("-19280329T174937374-0630")
+let $c10 := datetime("-19280329T174937374+0630")
+let $c11 := datetime("-19280329T174937374")
+let $c12 := datetime("-19280329T174937374+0630")
+let $c13 := datetime("-19280329T17493737+0630")
+let $c14 := datetime("-19280301T05493737+0630")
+return {"datetime1": $c1, "datetime2": $c2, "datetime3": $c3, "datetime4": $c4, "datetime5": $c5, "datetime6": $c6, "datetime7": $c7, "datetime8": $c8, "datetime9": $c9, "datetime10": $c10, "datetime11": $c11, "datetime12": $c12, "datetime13": $c13, "datetime14": $c14}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/double_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01.aql
deleted file mode 100644
index 5595917..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/double_01.aql
+++ /dev/null
@@ -1,14 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_double_01.adm";
-
-let $c1 := double("NaN")
-let $c2 := double("INF")
-let $c3 := double("-INF")
-let $c4 := double("-80.20d")
-let $c5 := double("-20.56e-30")
-let $c6 := double("-20.56e-300")
-return {"double1": $c1,"double2": $c2,"double3": $c3,"double4": $c4,"double5": $c5,"double6": $c6}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_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/double_01/double_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.3.query.aql
new file mode 100644
index 0000000..3408891
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/double_01/double_01.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+
+let $c1 := double("NaN")
+let $c2 := double("INF")
+let $c3 := double("-INF")
+let $c4 := double("-80.20d")
+let $c5 := double("-20.56e-30")
+let $c6 := double("-20.56e-300")
+return {"double1": $c1,"double2": $c2,"double3": $c3,"double4": $c4,"double5": $c5,"double6": $c6}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01.aql
deleted file mode 100644
index 011996c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_duration_01.adm";
-
-let $c1 := duration("D30Y10M25DT13H12M50S")
-let $c2 := duration("D25DT13H12M50S")
-let $c3 := duration("DT13H12M50S")
-let $c4 := duration("D30YT12MS")
-let $c5 := duration("DT13H")
-let $c6 := duration("-D30Y10M25DT13H12M50S")
-let $c7 := duration("-D25DT13H12M50S")
-let $c8 := duration("-DT13H50S")
-return {"duration1": $c1, "duration2": $c2, "duration3": $c3, "duration4": $c4, "duration5": $c5, "duration6": $c6, "duration7": $c7, "duration8": $c8}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_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/constructor/duration_01/duration_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.3.query.aql
new file mode 100644
index 0000000..6db5228
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/duration_01/duration_01.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $c1 := duration("P30Y10M25DT13H12M50S")
+let $c2 := duration("P25DT13H12M50S")
+let $c3 := duration("PT13H12M50S")
+let $c4 := duration("P30YT12MS")
+let $c5 := duration("PT13H")
+let $c6 := duration("-P30Y10M25DT13H12M50S")
+let $c7 := duration("-P25DT13H12M50S")
+let $c8 := duration("-PT13H50S")
+let $c9 := duration("P120D")
+let $c10 := duration("-P28M")
+let $c11 := duration("PT29M90.937S")
+let $c12 := duration("P300Y15M60DT300H98M482.435S")
+return {"duration1": $c1, "duration2": $c2, "duration3": $c3, "duration4": $c4, "duration5": $c5, "duration6": $c6, "duration7": $c7, "duration8": $c8, "duration9": $c9, "duration10": $c10, "duration11": $c11, "duration12": $c12}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/float_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01.aql
deleted file mode 100644
index 4f179cc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/float_01.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_float_01.adm";
-
-let $c1 := float("NaN")
-let $c2 := float("INF")
-let $c3 := float("-INF")
-let $c4 := float("-80.20")
-let $c5 := float("-20.56e-30")
-// +5.0E10 would not generate a precise calc. even with parseFloat
-
-
-return {"float1": $c1,"float2": $c2, "float3": $c3,"float4": $c4,"float5": $c5}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_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/constructor/float_01/float_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.3.query.aql
new file mode 100644
index 0000000..f17e802
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/float_01/float_01.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := float("NaN")
+let $c2 := float("INF")
+let $c3 := float("-INF")
+let $c4 := float("-80.20")
+let $c5 := float("-20.56e-30")
+// +5.0E10 would not generate a precise calc. even with parseFloat
+
+
+return {"float1": $c1,"float2": $c2, "float3": $c3,"float4": $c4,"float5": $c5}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/int_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01.aql
deleted file mode 100644
index d35c84f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/int_01.aql
+++ /dev/null
@@ -1,16 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_int_01.adm";
-
-let $c1 := int8("+80i8")
-let $c2 := int16("160")
-let $c3 := int32("+320i32")
-let $c4 := int64("640")
-let $c5 := int8("-80")
-let $c6 := int16("-160i16")
-let $c7 := int32("-320")
-let $c8 := int64("-640i64")
-return {"int8": $c1,"int16": $c2,"int32": $c3, "int64": $c4, "int8": $c5,"int16": $c6,"int32": $c7, "int64": $c8}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_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/constructor/int_01/int_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.3.query.aql
new file mode 100644
index 0000000..371e60b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/int_01/int_01.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := int8("+80i8")
+let $c2 := int16("160")
+let $c3 := int32("+320i32")
+let $c4 := int64("640")
+let $c5 := int8("-80")
+let $c6 := int16("-160i16")
+let $c7 := int32("-320")
+let $c8 := int64("-640i64")
+let $c9 := int64("-9223372036854775808")
+return {"int8": $c1,"int16": $c2,"int32": $c3, "int64": $c4, "int8_2": $c5,"int16_2": $c6,"int32_2": $c7, "int64_2": $c8, "int64_min" : $c9}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.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/constructor/interval/interval.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.3.query.aql
new file mode 100644
index 0000000..ebb3d2d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/interval/interval.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $itv1 := interval-from-date("2010-10-30", "2012-10-21")
+let $itv2 := interval-from-time("03:04:05.678-11:00", "232425267+0200")
+let $itv3 := interval-from-datetime("-1987-11-19T02:43:57.938+08:00", "19991112T124935948-0700")
+let $itv4 := interval-start-from-date("0001-12-27", "P3Y394DT48H398.483S")
+let $itv5 := interval-start-from-time("20:03:20.948", "P60DT48M389.938S")
+let $itv6 := interval-start-from-datetime("-2043-11-19T15:32:39.293", "P439Y3M20DT20H39M58.949S")
+
+return {"interval1": $itv1, "interval2": $itv2, "interval3": $itv3, "interval4": $itv4, "interval5": $itv5, "interval6": $itv6}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/line_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01.aql
deleted file mode 100644
index 4317903..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/line_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_line_01.adm";
-
-let $c1 := line("10.1234,11.1e-1 +10.2E-2,-11.22")
-let $c2 := line("0.1234,-1.00e-10 +10.5E-2,-01.02")
-return {"line1": $c1,"line2": $c2}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_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/constructor/line_01/line_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.3.query.aql
new file mode 100644
index 0000000..c974f05
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/line_01/line_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $c1 := line("10.1234,11.1e-1 +10.2E-2,-11.22")
+let $c2 := line("0.1234,-1.00e-10 +10.5E-2,-01.02")
+return {"line1": $c1,"line2": $c2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/point_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01.aql
deleted file mode 100644
index 09c770c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/point_01.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_point_01.adm";
-
-let $c1 := point("80.10d, -10E5")
-let $c2 := point3d("5e2, -10E+5, +10.5e-10d")
-let $c3 := point("5.10E-10d, -10E5")
-let $c4 := point3d("0.5e+2d, -10.0E+5d, +10.05e-10")
-return {"point1": $c1,"point3d1": $c2,"point2": $c3, "point3d2": $c4}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_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/constructor/point_01/point_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.3.query.aql
new file mode 100644
index 0000000..d6313db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/point_01/point_01.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := point("80.10d, -10E5")
+let $c2 := point3d("5e2, -10E+5, +10.5e-10d")
+let $c3 := point("5.10E-10d, -10E5")
+let $c4 := point3d("0.5e+2d, -10.0E+5d, +10.05e-10")
+return {"point1": $c1,"point3d1": $c2,"point2": $c3, "point3d2": $c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01.aql
deleted file mode 100644
index 750c559..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_polygon_01.adm";
-
-let $c1 := polygon("-1.2,+1.3e2 -2.14E+5,2.15 -3.5e+2,03.6 -4.6E-3,+4.81")
-let $c2 := polygon("-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75")
-return {"polygon1": $c1,"polygon2": $c2}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_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/constructor/polygon_01/polygon_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.3.query.aql
new file mode 100644
index 0000000..7bb8e06
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/polygon_01/polygon_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $c1 := polygon("-1.2,+1.3e2 -2.14E+5,2.15 -3.5e+2,03.6 -4.6E-3,+4.81")
+let $c2 := polygon("-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75")
+return {"polygon1": $c1,"polygon2": $c2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.2.update.aql
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.2.update.aql
@@ -0,0 +1,2 @@
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.3.query.aql
new file mode 100644
index 0000000..ddfcd3a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-01/primitive-01.3.query.aql
@@ -0,0 +1,19 @@
+/*
+ * Test case name : primitive-01.aql
+ * Description : Test primitive integer type int8 constructor function with boundary values
+ * Success : Yes
+ * Date : May 7th 2012
+ *
+ */
+
+//Boundary value tests int8().
+//with MIN and MAX supported values.
+
+let $a:=int8("-127")
+let $b:=int8("127")
+let $c:=int8("0")
+let $d:=int8("1")
+let $e:=int8("-1")
+return {"$a":$a,"$b":$b,"$c":$c,"$d":$d,"$e":$e}
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.3.query.aql
new file mode 100644
index 0000000..eb006a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-02/primitive-02.3.query.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case name : primitive-02.aql
+ * Description : Test primitive integer type int16 constructor function with boundary values
+ * Success : Yes
+ * Date : May 7th 2012
+ *
+ */
+
+//Boundary value tests int16().
+//with MIN and MAX supported values.
+
+let $a:=int16("-32767")
+let $b:=int16("32767")
+let $c:=int16("0")
+let $d:=int16("1")
+let $e:=int16("-1")
+let $f:=int16("16383")
+let $g:=int16("-16383")
+
+return {"$a":$a,"$b":$b,"$c":$c,"$d":$d,"$e":$e,"$f":$f,"$g":$g}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.3.query.aql
new file mode 100644
index 0000000..2ab2aba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-03/primitive-03.3.query.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case name : primitive-03.aql
+ * Description : Test primitive integer type int32 constructor function with boundary values
+ * Success : Yes
+ * Date : May 7th 2012
+ *
+ */
+
+//Boundary value tests int32().
+//with MIN and MAX supported values.
+
+let $a:=int32("-2147483647")
+let $b:=int32("2147483647")
+
+let $c:=int32("0")
+let $d:=int32("1")
+let $e:=int32("-1")
+let $f:=int32("1073741828")
+let $g:=int32("-1073741828")
+
+return {"$a":$a,"$b":$b,"$c":$c,"$d":$d,"$e":$e,"$f":$f,"$g":$g}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.3.query.aql
new file mode 100644
index 0000000..cf67348
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/primitive-04/primitive-04.3.query.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case name : primitive-04.aql
+ * Description : Test primitive integer type int64 constructor functions with boundary values
+ * Success : Yes
+ * Date : May 7th 2012
+ *
+ */
+
+//Boundary value tests int64().
+//with MIN and MAX supported values.
+
+let $a:=int64("9222872036854775809")
+let $b:=int64("-9222872036854775809")
+
+let $c:=int64("0")
+let $d:=int64("1")
+let $e:=int64("-1")
+let $f:=int64("4611436018427387904")
+let $g:=int64("-4611436018427387904")
+
+return {"$a":$a,"$b":$b,"$c":$c,"$d":$d,"$e":$e,"$f":$f,"$g":$g}
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/string_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01.aql
deleted file mode 100644
index fea0cb1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/string_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_string_01.adm";
-
-let $c1 := string("true")
-let $c2 := string("false\"")
-return {"string1": $c1,"string2": $c2}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_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/constructor/string_01/string_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.3.query.aql
new file mode 100644
index 0000000..49d2214
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/string_01/string_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := string("true")
+let $c2 := string("false\"")
+return {"string1": $c1,"string2": $c2}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/time_01.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01.aql
deleted file mode 100644
index caa90f0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/constructor/time_01.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/constructor_time_01.adm";
-
-let $c1 := time("10:50:56:200+05:00")
-let $c2 := time("10:50:56:200-10:15")
-let $c3 := time("10:50:56")
-let $c4 := time("10:50:56:200Z")
-let $c5 := time("23:59:59:999-13:30")
-let $c6 := time("24:00:00:000+14:45")
-let $c7 := time("12:59:00:019-01:00")
-return {"time1": $c1, "time2": $c2, "time3": $c3, "time4": $c4, "time5": $c5, "time6": $c6, "time7": $c7}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_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/constructor/time_01/time_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.3.query.aql
new file mode 100644
index 0000000..a5d6e54
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/constructor/time_01/time_01.3.query.aql
@@ -0,0 +1,14 @@
+use dataverse test;
+
+let $c1 := time("10:50:56.200+05:00")
+let $c2 := time("10:50:56.200-10:15")
+let $c3 := time("10:50:56")
+let $c4 := time("10:50:56.200Z")
+let $c5 := time("23:59:59.999-13:30")
+let $c6 := time("00:00:00.000+14:45")
+let $c7 := time("12:59:00.019-01:00")
+let $c8 := time("12:59:00.01-01:00")
+let $c9 := time("12:59:00.019-01:00")
+let $c10 := time("12590001-0100")
+let $c11 := time("125900019+0100")
+return {"time1": $c1, "time2": $c2, "time3": $c3, "time4": $c4, "time5": $c5, "time6": $c6, "time7": $c7, "time8": $c8, "time9": $c9, "time10": $c10, "time11": $c11}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.1.ddl.aql
new file mode 100644
index 0000000..df976b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.1.ddl.aql
@@ -0,0 +1,38 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to access datasets.
+ * Expected Res : Success
+ * Date : 29th Aug 2012
+ */
+
+drop dataverse student if exists;
+drop dataverse teacher if exists;
+
+create dataverse student;
+create dataverse teacher;
+
+use dataverse student;
+use dataverse teacher;
+
+create type student.stdType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create type teacher.tchrType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create dataset student.ugdstd(stdType) primary key id;
+create dataset student.gdstd(stdType) primary key id;
+create dataset teacher.prof(tchrType) primary key id;
+create dataset teacher.pstdoc(tchrType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.2.update.aql
new file mode 100644
index 0000000..74c6cda
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.2.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to access datasets.
+ * Expected Res : Success
+ * Date : 29th Aug 2012
+ */
+
+
+use dataverse student;
+use dataverse teacher;
+
+
+insert into dataset student.ugdstd({"id":457,"name":"John Doe","age":22,"sex":"M","dept":"Dance"});
+
+insert into dataset student.gdstd({"id":418,"name":"John Smith","age":26,"sex":"M","dept":"Economics"});
+
+insert into dataset teacher.prof({"id":152,"name":"John Meyer","age":42,"sex":"M","dept":"History"});
+
+insert into dataset teacher.pstdoc({"id":259,"name":"Sophia Reece","age":36,"sex":"F","dept":"Anthropology"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.3.query.aql
new file mode 100644
index 0000000..80cdd09
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv01/cross-dv01.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to access datasets.
+ * Expected Res : Success
+ * Date : 29th Aug 2012
+ */
+
+
+for $s in dataset('student.ugdstd')
+for $p in dataset('teacher.prof')
+for $a in dataset('student.gdstd')
+for $b in dataset('teacher.pstdoc')
+return {"ug-student":$s,"prof":$p,"grd-student":$a,"postdoc":$b}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.1.ddl.aql
new file mode 100644
index 0000000..de1cf16
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.1.ddl.aql
@@ -0,0 +1,35 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types and query Metadata to verify.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+drop dataverse student if exists;
+drop dataverse teacher if exists;
+
+create dataverse student;
+create dataverse teacher;
+
+create type student.stdType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create type teacher.tchrType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create dataset student.ugdstd(stdType) primary key id;
+create dataset student.gdstd(stdType) primary key id;
+create dataset teacher.prof(tchrType) primary key id;
+create dataset teacher.pstdoc(tchrType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.2.update.aql
new file mode 100644
index 0000000..455bb2f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types and query Metadata to verify.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+insert into dataset student.ugdstd({"id":457,"name":"John Doe","age":22,"sex":"M","dept":"Dance"});
+
+insert into dataset student.gdstd({"id":418,"name":"John Smith","age":26,"sex":"M","dept":"Economics"});
+
+insert into dataset teacher.prof({"id":152,"name":"John Meyer","age":42,"sex":"M","dept":"History"});
+
+insert into dataset teacher.pstdoc({"id":259,"name":"Sophia Reece","age":36,"sex":"F","dept":"Anthropology"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.3.query.aql
new file mode 100644
index 0000000..66b6e61
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv02/cross-dv02.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types and query Metadata to verify.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+for $l in dataset('Metadata.Dataset')
+where $l.DataverseName='student' or $l.DataverseName='teacher'
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.1.ddl.aql
new file mode 100644
index 0000000..a601ac5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.1.ddl.aql
@@ -0,0 +1,45 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types.
+ * : drop datasets using fully qualified names
+ * : Query metadata to verify datasets are dropped.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+drop dataverse student if exists;
+drop dataverse teacher if exists;
+
+create dataverse student;
+create dataverse teacher;
+
+use dataverse student;
+use dataverse teacher;
+
+create type student.stdType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create type teacher.tchrType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create dataset student.ugdstd(stdType) primary key id;
+create dataset student.gdstd(stdType) primary key id;
+create dataset teacher.prof(tchrType) primary key id;
+create dataset teacher.pstdoc(tchrType) primary key id;
+
+drop dataset student.ugdstd;
+drop dataset student.gdstd;
+drop dataset teacher.prof;
+drop dataset teacher.pstdoc;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.2.update.aql
new file mode 100644
index 0000000..24b0e09
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types.
+ * : drop datasets using fully qualified names
+ * : Query metadata to verify datasets are dropped.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+// no inserts, deletes here
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.3.query.aql
new file mode 100644
index 0000000..e3fe784
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv03/cross-dv03.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types.
+ * : drop datasets using fully qualified names
+ * : Query metadata to verify datasets are dropped.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+count(
+for $l in dataset('Metadata.Dataset')
+where $l.DataverseName='student' or $l.DataverseName='teacher'
+return $l
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.1.ddl.aql
new file mode 100644
index 0000000..fb5214a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.1.ddl.aql
@@ -0,0 +1,51 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types.
+ * : drop datasets using fully qualified names
+ * : re create the datasets
+ * : Query metadata to verify datasets are created.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+drop dataverse student if exists;
+drop dataverse teacher if exists;
+
+create dataverse student;
+create dataverse teacher;
+
+use dataverse student;
+use dataverse teacher;
+
+create type student.stdType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create type teacher.tchrType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create dataset student.ugdstd(stdType) primary key id;
+create dataset student.gdstd(stdType) primary key id;
+create dataset teacher.prof(tchrType) primary key id;
+create dataset teacher.pstdoc(tchrType) primary key id;
+
+drop dataset student.ugdstd;
+drop dataset student.gdstd;
+drop dataset teacher.prof;
+drop dataset teacher.pstdoc;
+
+create dataset student.ugdstd(stdType) primary key id;
+create dataset student.gdstd(stdType) primary key id;
+create dataset teacher.prof(tchrType) primary key id;
+create dataset teacher.pstdoc(tchrType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.2.update.aql
new file mode 100644
index 0000000..12746f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types.
+ * : drop datasets using fully qualified names
+ * : re create the datasets
+ * : Query metadata to verify datasets are created.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+// no inserts, deletes from here
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.3.query.aql
new file mode 100644
index 0000000..3745d9c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv04/cross-dv04.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test cross dataverse functionality
+ * : use dataverse statement is now optional.
+ * : Use fully qualified names to create datasets, types.
+ * : drop datasets using fully qualified names
+ * : re create the datasets
+ * : Query metadata to verify datasets are created.
+ * Expected Res : Success
+ * Date : 28th Aug 2012
+ */
+
+for $l in dataset('Metadata.Dataset')
+where $l.DataverseName='student' or $l.DataverseName='teacher'
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.1.ddl.aql
new file mode 100644
index 0000000..910e370
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Use fully qualified name to create dataset, type and index
+ * : and to access dataset
+ * Expected Result : Success
+ * Date : 29th August 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+create type test.Emp as closed {
+id:int32,
+fname:string,
+lname:string,
+age:int32,
+dept:string
+}
+
+create dataset test.employee(Emp) primary key id;
+
+create index idx_employee_f_l_name on test.employee(fname,lname);
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.2.update.aql
new file mode 100644
index 0000000..26ba47b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.2.update.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Use fully qualified name to create dataset, type and index
+ * : and to access dataset
+ * Expected Result : Success
+ * Date : 29th August 2012
+ */
+
+use dataverse test;
+
+load dataset test.employee
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/names.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.3.query.aql
new file mode 100644
index 0000000..4ecbe22
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv07/cross-dv07.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Use fully qualified name to create dataset, type and index
+ * : and to access dataset
+ * Expected Result : Success
+ * Date : 29th August 2012
+ */
+
+for $l in dataset('test.employee')
+where $l.fname="Julio" and $l.lname="Isa"
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.1.ddl.aql
new file mode 100644
index 0000000..b9f94d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.1.ddl.aql
@@ -0,0 +1,37 @@
+/*
+ * Description : Create two UDFs in two different dataverses and create datasets in tose dvs
+ * : access the datasets from the UDF defined in the other dataverse and invoke one of the UDF
+ * Expected Res : Success
+ * Date : Sep 7th 2012
+ */
+
+// dv1 - udf1 - dataset1
+// dv2 - udf2 - dataset2
+
+drop dataverse test if exists;
+drop dataverse fest if exists;
+
+create dataverse test;
+create dataverse fest;
+
+create type test.testtype as open {
+id : int32
+}
+
+create type fest.testtype as open {
+id : int32
+}
+
+create dataset test.t1(testtype) primary key id;
+create dataset fest.t1(testtype) primary key id;
+
+create function test.f1(){
+for $l in dataset('fest.t1')
+return $l
+}
+
+create function fest.f1(){
+for $m in dataset('test.t1')
+return $m
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.2.update.aql
new file mode 100644
index 0000000..fb895d4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.2.update.aql
@@ -0,0 +1,22 @@
+/*
+ * Description : Create two UDFs in two different dataverses and create datasets in tose dvs
+ * : access the datasets from the UDF defined in the other dataverse and invoke one of the UDF
+ * Expected Res : Success
+ * Date : Sep 7th 2012
+ */
+
+// dv1 - udf1 - dataset1
+// dv2 - udf2 - dataset2
+
+insert into dataset test.t1({"id":24});
+insert into dataset test.t1({"id":23});
+insert into dataset test.t1({"id":21});
+insert into dataset test.t1({"id":44});
+insert into dataset test.t1({"id":64});
+
+insert into dataset fest.t1({"id":24});
+insert into dataset fest.t1({"id":23});
+insert into dataset fest.t1({"id":21});
+insert into dataset fest.t1({"id":44});
+insert into dataset fest.t1({"id":64});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.3.query.aql
new file mode 100644
index 0000000..b81e85f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv08/cross-dv08.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Create two UDFs in two different dataverses and create datasets in tose dvs
+ * : access the datasets from the UDF defined in the other dataverse and invoke one of the UDF
+ * Expected Res : Success
+ * Date : Sep 7th 2012
+ */
+
+// dv1 - udf1 - dataset1
+// dv2 - udf2 - dataset2
+
+let $a := test.f1()
+let $b := fest.f1()
+return { "a" : $a, "b" : $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.1.ddl.aql
new file mode 100644
index 0000000..e9e0b63
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Create user defined funs. in two different dataverses
+ * : and invoke one of them.
+ * : In this test we use fully qualified names to access and create the UDFs.
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+drop dataverse testdv1 if exists;
+drop dataverse testdv2 if exists;
+create dataverse testdv1;
+create dataverse testdv2;
+
+create function testdv1.fun01(){
+"function 01"
+}
+
+create function testdv2.fun02(){
+"function 02"
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.2.update.aql
new file mode 100644
index 0000000..347f95a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Create user defined funs. in two different dataverses
+ * : and invoke one of them.
+ * : In this test we use fully qualified names to access and create the UDFs.
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.3.query.aql
new file mode 100644
index 0000000..f650d58
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv09/cross-dv09.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create user defined funs. in two different dataverses
+ * : and invoke one of them.
+ * : In this test we use fully qualified names to access and create the UDFs.
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+use dataverse testdv1;
+
+testdv1.fun01()
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.1.ddl.aql
new file mode 100644
index 0000000..c3c1df9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Create two UDFs in two different dataverses
+ * : Invoke one UDF from the body of the other UDF.
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+drop dataverse testdv1 if exists;
+drop dataverse testdv2 if exists;
+create dataverse testdv1;
+create dataverse testdv2;
+
+create function testdv1.fun01(){
+testdv2.fun02()
+}
+
+create function testdv2.fun02(){
+"function 02"
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.2.update.aql
new file mode 100644
index 0000000..8cd46af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create two UDFs in two different dataverses
+ * : Invoke one UDF from the body of the other UDF.
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.3.query.aql
new file mode 100644
index 0000000..bf9e2f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv11/cross-dv11.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create two UDFs in two different dataverses
+ * : Invoke one UDF from the body of the other UDF.
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+use dataverse testdv1;
+
+testdv1.fun01()
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.1.ddl.aql
new file mode 100644
index 0000000..01483c0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Create two UDFs in two different dataverses
+ * : Bind the results returned by each UDF to a variable and return those variables
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+drop dataverse testdv1 if exists;
+drop dataverse testdv2 if exists;
+create dataverse testdv1;
+create dataverse testdv2;
+
+create function testdv1.fun01(){
+"function 01"
+}
+
+create function testdv2.fun02(){
+"function 02"
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.2.update.aql
new file mode 100644
index 0000000..efe27b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create two UDFs in two different dataverses
+ * : Bind the results returned by each UDF to a variable and return those variables
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.3.query.aql
new file mode 100644
index 0000000..8ac926b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv12/cross-dv12.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Create two UDFs in two different dataverses
+ * : Bind the results returned by each UDF to a variable and return those variables
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+
+use dataverse testdv1;
+use dataverse testdv2;
+
+let $a := testdv1.fun01()
+let $b := testdv2.fun02()
+return {"fun-01":$a,"fun-02":$b}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.1.ddl.aql
new file mode 100644
index 0000000..ef9f50e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Create UDFs in different dataverses
+ * : Test for recursion in those UDFs
+ * Expected Res : Failure - Recursion is not allowed!
+ * Date : 31st Aug 2012
+ * Ignored : This test is currently not part of the test build, because it being a negative test case expectedly throws an exception.
+ */
+
+drop dataverse testdv1 if exists;
+drop dataverse testdv2 if exists;
+create dataverse testdv1;
+create dataverse testdv2;
+
+create function testdv1.fun01(){
+testdv2.fun02()
+}
+
+create function testdv2.fun02(){
+testdv2.fun03()
+}
+
+create function testdv2.fun03(){
+testdv1.fun01()
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.2.update.aql
new file mode 100644
index 0000000..99b9bb7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Create UDFs in different dataverses
+ * : Test for recursion in those UDFs
+ * Expected Res : Failure - Recursion is not allowed!
+ * Date : 31st Aug 2012
+ * Ignored : This test is currently not part of the test build, because it being a negative test case expectedly throws an exception.
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.3.query.aql
new file mode 100644
index 0000000..fa54a3c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv13/cross-dv13.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDFs in different dataverses
+ * : Test for recursion in those UDFs
+ * Expected Res : Failure - Recursion is not allowed!
+ * Date : 31st Aug 2012
+ * Ignored : This test is currently not part of the test build, because it being a negative test case expectedly throws an exception.
+ */
+
+use dataverse testdv1;
+
+testdv1.fun01();
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.1.ddl.aql
new file mode 100644
index 0000000..b176f45
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.1.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create UDF and invoke UDF in return clause of FLWOR expression
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+drop dataverse testdv1 if exists;
+create dataverse testdv1;
+
+create function testdv1.fun01(){
+100
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.2.update.aql
new file mode 100644
index 0000000..0d049ad
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Create UDF and invoke UDF in return clause of FLWOR expression
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.3.query.aql
new file mode 100644
index 0000000..e66e35d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv14/cross-dv14.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDF and invoke UDF in return clause of FLWOR expression
+ * Expected Res : Success
+ * Date : 31st Aug 2012
+ */
+
+
+use dataverse testdv1;
+
+let $a := true
+return testdv1.fun01();
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.1.ddl.aql
new file mode 100644
index 0000000..4090d6f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Create user defined functions using fully qualified names
+ * : verify their details in Function dataset in Metadata dataverse.
+ * Expected Res :
+ * Date : 30th Aug 2012
+ */
+
+drop dataverse testdv1 if exists;
+create dataverse testdv1;
+
+// UDF with no inputs
+create function testdv1.fun01(){
+100
+}
+
+// UDF with one input
+create function testdv1.fun02($a){
+"function 02"
+}
+
+// UDF with two inputs
+create function testdv1.fun03($b,$c){
+$b+$c
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.2.update.aql
new file mode 100644
index 0000000..e8a113fee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create user defined functions using fully qualified names
+ * : verify their details in Function dataset in Metadata dataverse.
+ * Expected Res :
+ * Date : 30th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.3.query.aql
new file mode 100644
index 0000000..a6dc422
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv15/cross-dv15.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create user defined functions using fully qualified names
+ * : verify their details in Function dataset in Metadata dataverse.
+ * Expected Res :
+ * Date : 30th Aug 2012
+ */
+
+
+for $l in dataset('Metadata.Function')
+where $l.DataverseName='testdv1'
+return $l;
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.1.ddl.aql
new file mode 100644
index 0000000..8f42542
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Description : Detect Recursion in UDFs
+ * Expected Res : Failure
+ * Date : 30 Aug 2012
+ * Ignored : Not part of test build, as its a negative test case that thrwos an exception
+ */
+
+drop dataverse testdv1 if exists;
+create dataverse testdv1;
+
+// UDF with no inputs
+create function testdv1.fun01(){
+testdv1.fun02()
+}
+
+// UDF with one input
+create function testdv1.fun02(){
+testdv1.fun03()
+}
+
+// UDF with two inputs
+create function testdv1.fun03(){
+testdv1.fun04()
+}
+
+create function testdv1.fun04(){
+testdv1.fun02()
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.2.update.aql
new file mode 100644
index 0000000..2c8ef2c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Detect Recursion in UDFs
+ * Expected Res : Failure
+ * Date : 30 Aug 2012
+ * Ignored : Not part of test build, as its a negative test case that thrwos an exception
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.3.query.aql
new file mode 100644
index 0000000..dc657bb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv16/cross-dv16.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Detect Recursion in UDFs
+ * Expected Res : Failure
+ * Date : 30 Aug 2012
+ * Ignored : Not part of test build, as its a negative test case that thrwos an exception
+ */
+
+use dataverse testdv1;
+
+testdv1.fun01()
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.1.ddl.aql
new file mode 100644
index 0000000..e44d592
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Decription : Create UDF to query two different datasets that are in tow different dataverses.
+ * Expected Res : Success
+ * Date : Sep 7 2012
+ */
+
+// this test currently gives ParseException
+
+drop dataverse test if exists;
+drop dataverse fest if exists;
+
+create dataverse test;
+create dataverse fest;
+
+create type test.testtype as open {
+id : int32
+}
+
+create type fest.testtype as open {
+id : int32
+}
+
+create dataset test.t1(testtype) primary key id;
+create dataset fest.t1(testtype) primary key id;
+
+create function fest.f1(){
+for $m in dataset('test.t1')
+for $l in dataset('fest.t1')
+order by $m,$l
+return { "l":$l,"m":$m }
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.2.update.aql
new file mode 100644
index 0000000..a927cf3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.2.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Decription : Create UDF to query two different datasets that are in tow different dataverses.
+ * Expected Res : Success
+ * Date : Sep 7 2012
+ */
+
+// this test currently gives ParseException
+
+insert into dataset test.t1({"id":24});
+insert into dataset test.t1({"id":23});
+insert into dataset test.t1({"id":21});
+insert into dataset test.t1({"id":44});
+insert into dataset test.t1({"id":64});
+
+insert into dataset fest.t1({"id":24});
+insert into dataset fest.t1({"id":23});
+insert into dataset fest.t1({"id":21});
+insert into dataset fest.t1({"id":44});
+insert into dataset fest.t1({"id":64});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.3.query.aql
new file mode 100644
index 0000000..0a8c59f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv17/cross-dv17.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Decription : Create UDF to query two different datasets that are in tow different dataverses.
+ * Expected Res : Success
+ * Date : Sep 7 2012
+ */
+
+// this test currently gives ParseException
+
+use dataverse fest;
+
+fest.f1();
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.1.ddl.aql
new file mode 100644
index 0000000..b2a5b54
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+ * Description : Create two dataverses and one dataset in each of the dataverse
+ * : insert data and query using the datasets using fully qualified names and return results.
+ * Expected Res : Success
+ * Date : Sep 7th 2012
+ * Ignored : Not part of the current test build because of Issue 199
+ */
+
+
+drop dataverse test if exists;
+drop dataverse fest if exists;
+
+create dataverse test;
+create dataverse fest;
+
+create type test.testtype as open {
+id : int32
+}
+
+create type fest.testtype as open {
+id : int32
+}
+
+create dataset test.t1(testtype) primary key id;
+create dataset fest.t1(testtype) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.2.update.aql
new file mode 100644
index 0000000..c916222
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.2.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Create two dataverses and one dataset in each of the dataverse
+ * : insert data and query using the datasets using fully qualified names and return results.
+ * Expected Res : Success
+ * Date : Sep 7th 2012
+ * Ignored : Not part of the current test build because of Issue 199
+ */
+
+
+insert into dataset test.t1({"id":24});
+insert into dataset test.t1({"id":23});
+insert into dataset test.t1({"id":21});
+insert into dataset test.t1({"id":44});
+insert into dataset test.t1({"id":64});
+
+insert into dataset fest.t1({"id":24});
+insert into dataset fest.t1({"id":23});
+insert into dataset fest.t1({"id":21});
+insert into dataset fest.t1({"id":44});
+insert into dataset fest.t1({"id":64});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.3.query.aql
new file mode 100644
index 0000000..fe801df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv18/cross-dv18.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create two dataverses and one dataset in each of the dataverse
+ * : insert data and query using the datasets using fully qualified names and return results.
+ * Expected Res : Success
+ * Date : Sep 7th 2012
+ * Ignored : Not part of the current test build because of Issue 199
+ */
+
+
+let $a := (for $l in dataset('fest.t1') return $l)
+let $b := (for $m in dataset('test.t1') return $m)
+return {"a":$a,"b":$b}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.1.ddl.aql
new file mode 100644
index 0000000..55168bd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.1.ddl.aql
@@ -0,0 +1,49 @@
+/*
+ * Description : Create internal and external datasets in more than one dataverse and query metadata to verify entries in Metadata.
+ * Expected Res : Success
+ * Date : Sep 20 2012
+ */
+
+drop dataverse test1 if exists;
+drop dataverse test2 if exists;
+create dataverse test1;
+create dataverse test2;
+
+create type test1.testtype as open {
+id : int32,
+name : string,
+loc: point,
+time: datetime
+}
+
+create type test2.testtype as open {
+id : int32,
+name : string?,
+loc: point,
+time: datetime
+}
+
+create type test1.Tweet as open {
+ id: int32,
+ tweetid: int64,
+ loc: point,
+ time: datetime,
+ text: string
+}
+
+create dataset test1.t1(testtype) primary key id;
+
+create dataset test2.t2(testtype) primary key id;
+
+create dataset test2.t3(testtype) primary key id;
+
+create dataset test1.t2(testtype) primary key id;
+
+create dataset test1.t3(testtype) primary key id;
+
+create dataset test2.t4(testtype) primary key id;
+
+create external dataset test1.TwitterData(Tweet)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/extrasmalltweets.txt"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.2.update.aql
new file mode 100644
index 0000000..c0205a8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create internal and external datasets in more than one dataverse and query metadata to verify entries in Metadata.
+ * Expected Res : Success
+ * Date : Sep 20 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.3.query.aql
new file mode 100644
index 0000000..e7e4f41
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv19/cross-dv19.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create internal and external datasets in more than one dataverse and query metadata to verify entries in Metadata.
+ * Expected Res : Success
+ * Date : Sep 20 2012
+ */
+
+for $l in dataset('Metadata.Dataset')
+where $l.DataverseName='test1' or $l.DataverseName='test2' or $l.DataverseName='TwitterData'
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.1.ddl.aql
new file mode 100644
index 0000000..02cf244
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.1.ddl.aql
@@ -0,0 +1,35 @@
+/*
+ * Description : Test various syntax for dataset access
+ * : Using parentheses for dataset access is now optional
+ * : New syntax can use fully qualified names to access datasets.
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse student if exists;
+drop dataverse teacher if exists;
+
+create dataverse student;
+create dataverse teacher;
+
+create type student.stdType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create type teacher.tchrType as open {
+id : int32,
+name : string,
+age : int32,
+sex : string,
+dept : string
+}
+
+create dataset student.ugdstd(stdType) primary key id;
+create dataset student.gdstd(stdType) primary key id;
+create dataset teacher.prof(tchrType) primary key id;
+create dataset teacher.pstdoc(tchrType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.2.update.aql
new file mode 100644
index 0000000..9236626
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.2.update.aql
@@ -0,0 +1,8 @@
+insert into dataset student.ugdstd({"id":457,"name":"John Doe","age":22,"sex":"M","dept":"Dance"});
+
+insert into dataset student.gdstd({"id":418,"name":"John Smith","age":26,"sex":"M","dept":"Economics"});
+
+insert into dataset teacher.prof({"id":152,"name":"John Meyer","age":42,"sex":"M","dept":"History"});
+
+insert into dataset teacher.pstdoc({"id":259,"name":"Sophia Reece","age":36,"sex":"F","dept":"Anthropology"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.3.query.aql
new file mode 100644
index 0000000..f8933d6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/cross-dv20/cross-dv20.3.query.aql
@@ -0,0 +1,5 @@
+for $s in dataset student.ugdstd
+for $p in dataset('teacher.prof')
+for $a in dataset("student.gdstd")
+for $b in dataset teacher.pstdoc
+return {"ug-student":$s,"prof":$p,"grd-student":$a,"postdoc":$b}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.1.ddl.aql
new file mode 100644
index 0000000..716f6a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type test.AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+};
+
+create type test.CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+};
+
+create dataset test.Customers(CustomerType) primary key cid;
+
+drop dataset test.Customers;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.3.query.aql
new file mode 100644
index 0000000..9f761a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/drop_dataset/drop_dataset.3.query.aql
@@ -0,0 +1,3 @@
+for $x in dataset('Metadata.Dataset')
+where $x.DataverseName='test' and $x.DatasetName='Customers'
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.1.ddl.aql
new file mode 100644
index 0000000..baf7f67
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.1.ddl.aql
@@ -0,0 +1,47 @@
+//***** Test to read from a dataset and insert into another dataset when the datasets belong to different dataverses*****//
+drop dataverse test1 if exists;
+drop dataverse test2 if exists;
+
+create dataverse test1;
+create dataverse test2;
+
+create type test1.AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+};
+
+create type test1.CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+};
+
+create type test2.AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+};
+
+create type test2.CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+};
+
+create dataset test1.Customers(CustomerType) primary key cid;
+
+create dataset test2.Customers(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.2.update.aql
new file mode 100644
index 0000000..54c65d8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.2.update.aql
@@ -0,0 +1,11 @@
+//***** Test to read from a dataset and insert into another dataset when the datasets belong to different dataverses*****//
+
+load dataset test1.Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
+
+insert into dataset test2.Customers(
+for $x in dataset('test1.Customers')
+return $x
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.3.query.aql
new file mode 100644
index 0000000..89a5f00
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_across_dataverses/insert_across_dataverses.3.query.aql
@@ -0,0 +1,8 @@
+//***** Test to read from a dataset and insert into another dataset when the datasets belong to different dataverses*****//
+
+use dataverse test2;
+
+for $c in dataset('test2.Customers')
+order by $c.cid
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.1.ddl.aql
new file mode 100644
index 0000000..9cdce99
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Use fully qualified dataset names to insert into target dataset by doing a select on source dataset.
+ * Expected Res : Success
+ * Date : Sep 19 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type test.testtype as open {
+id : int32,
+name : string
+}
+
+create dataset test.t1(testtype) primary key id;
+
+create dataset test.t2(testtype) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.2.update.aql
new file mode 100644
index 0000000..02ec537
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.2.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Use fully qualified dataset names to insert into target dataset by doing a select on source dataset.
+ * Expected Res : Success
+ * Date : Sep 19 2012
+ */
+
+
+insert into dataset test.t1({"id":456,"name":"Roger"});
+insert into dataset test.t1({"id":351,"name":"Bob"});
+insert into dataset test.t1({"id":257,"name":"Sammy"});
+insert into dataset test.t1({"id":926,"name":"Richard"});
+insert into dataset test.t1({"id":482,"name":"Kevin"});
+
+insert into dataset test.t2({"id":438,"name":"Ravi"});
+insert into dataset test.t2({"id":321,"name":"Bobby"});
+insert into dataset test.t2({"id":219,"name":"Sam"});
+insert into dataset test.t2({"id":851,"name":"Ricardo"});
+insert into dataset test.t2({"id":201,"name":"Kelvin"});
+
+insert into dataset test.t1(for $l in dataset('test.t2') return $l);
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.3.query.aql
new file mode 100644
index 0000000..15cf8f5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/insert_from_source_dataset/insert_from_source_dataset.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Use fully qualified dataset names to insert into target dataset by doing a select on source dataset.
+ * Expected Res : Success
+ * Date : Sep 19 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('test.t1')
+order by $l.id
+return $l;
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.1.ddl.aql
new file mode 100644
index 0000000..afba395
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.1.ddl.aql
@@ -0,0 +1,43 @@
+//***** Test to conduct a join between datasets belonging to different dataverses*****//
+
+drop dataverse test1 if exists;
+drop dataverse test2 if exists;
+
+create dataverse test1;
+create dataverse test2;
+
+create type test1.AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+};
+
+create type test1.CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+};
+
+create dataset test1.Customers(CustomerType)
+primary key cid;
+
+
+create type test2.OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create dataset test2.Orders(OrderType)
+primary key oid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.2.update.aql
new file mode 100644
index 0000000..a38a397
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.2.update.aql
@@ -0,0 +1,14 @@
+//***** Test to conduct a join between datasets belonging to different dataverses*****//
+
+use dataverse test1;
+use dataverse test2;
+
+load dataset test1.Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),
+("format"="adm"));
+
+load dataset test2.Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.3.query.aql
new file mode 100644
index 0000000..85fbcc7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/join_across_dataverses/join_across_dataverses.3.query.aql
@@ -0,0 +1,11 @@
+//***** Test to conduct a join between datasets belonging to different dataverses*****//
+
+
+use dataverse test1;
+use dataverse test2;
+
+for $c in dataset('test1.Customers')
+for $o in dataset('test2.Orders')
+where $c.cid = $o.cid
+order by $c.name, $o.total
+return {"cust_name":$c.name, "cust_age": $c.age, "order_total":$o.total, "orderList":[$o.oid, $o.cid]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.1.ddl.aql
new file mode 100644
index 0000000..aecf315
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.1.ddl.aql
@@ -0,0 +1 @@
+// no DDLs
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.3.query.aql
new file mode 100644
index 0000000..9da9446
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/cross-dataverse/metadata_dataset/metadata_dataset.3.query.aql
@@ -0,0 +1,6 @@
+//Query metadata dataset
+
+for $c in dataset('Metadata.Dataset')
+where $c.DataverseName='Metadata'
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/co.aql b/asterix-app/src/test/resources/runtimets/queries/custord/co.aql
deleted file mode 100644
index ccacb66..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/co.aql
+++ /dev/null
@@ -1,68 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse custord;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create type CustomerOrdersType as open {
- cid: int32,
- cust: CustomerType,
- orders: [OrderType]
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Customers3(CustomerType)
- partitioned by key cid on group1;
-create dataset Orders3(OrderType)
- partitioned by key oid on group1;
-create dataset CustomerOrders3(CustomerOrdersType)
- partitioned by key cid on group1;
-
-
-write output to nc1:"rttest/custord_co.adm";
-
-/*
-for $co1 in dataset('CustomerOrders3')
-for $o1 in $co1.orders
-return {
- "order": $o1,
- "ordcust":
- for $co2 in dataset('CustomerOrders3')
- where some $o2 in $co2.orders
- satisfies $o2.oid = $o1.oid
- return $co2.cust
-}
-*/
-
-for $co1 in dataset('CustomerOrders3')
-where some $o1 in $co1.orders
-satisfies $o1.oid = 10
-return $co1
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/co/co.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/co/co.1.ddl.aql
new file mode 100644
index 0000000..f4ab3a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/co/co.1.ddl.aql
@@ -0,0 +1,45 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse custord;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create type CustomerOrdersType as open {
+ cid: int32,
+ cust: CustomerType,
+ orders: [OrderType]
+}
+
+create dataset Customers3(CustomerType)
+ primary key cid;
+create dataset Orders3(OrderType)
+ primary key oid;
+create dataset CustomerOrders3(CustomerOrdersType)
+ primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/co/co.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/co/co.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/co/co.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/co/co.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/co/co.3.query.aql
new file mode 100644
index 0000000..fad7c09
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/co/co.3.query.aql
@@ -0,0 +1,19 @@
+use dataverse custord;
+
+/*
+for $co1 in dataset('CustomerOrders3')
+for $o1 in $co1.orders
+return {
+ "order": $o1,
+ "ordcust":
+ for $co2 in dataset('CustomerOrders3')
+ where some $o2 in $co2.orders
+ satisfies $o2.oid = $o1.oid
+ return $co2.cust
+}
+*/
+
+for $co1 in dataset('CustomerOrders3')
+where some $o1 in $co1.orders
+satisfies $o1.oid = 10
+return $co1
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql
deleted file mode 100644
index 83a72ee..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql
+++ /dev/null
@@ -1,34 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_01.adm";
-
-for $c in dataset('Customers')
-return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.3.query.aql
new file mode 100644
index 0000000..f6d9bb5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01/customer_q_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02.aql
deleted file mode 100644
index bb24a68..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02.aql
+++ /dev/null
@@ -1,33 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_02.adm";
-
-for $c in dataset('Customers')
-let $nestedRec := $c.lastorder
-return { "id": $c.cid, "nestedRecord":$nestedRec, "order_id" : $nestedRec.oid}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.3.query.aql
new file mode 100644
index 0000000..7e8fd19
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_02/customer_q_02.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $nestedRec := $c.lastorder
+return { "id": $c.cid, "nestedRecord":$nestedRec, "order_id" : $nestedRec.oid}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03.aql
deleted file mode 100644
index 32fed3b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03.aql
+++ /dev/null
@@ -1,38 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_03.adm";
-
-for $c in dataset('Customers')
-let $nestedRec := $c.lastorder
-let $c1 := [ $c.cid, $nestedRec.oid]
-let $c2 := {{ $c.cid, $nestedRec.oid}}
-let $c3 := [ $c.lastorder, $nestedRec]
-let $c4 := {{ $c.lastorder, $nestedRec}}
-where $c.cid >= int32("3")
-return { "id": $c.cid, "list1":$c1, "list2":$c2,"list3":$c3,"list4":$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.3.query.aql
new file mode 100644
index 0000000..2f9fbc9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_03/customer_q_03.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $nestedRec := $c.lastorder
+let $c1 := [ $c.cid, $nestedRec.oid]
+let $c2 := {{ $c.cid, $nestedRec.oid}}
+let $c3 := [ $c.lastorder, $nestedRec]
+let $c4 := {{ $c.lastorder, $nestedRec}}
+where $c.cid >= int32("3")
+return { "id": $c.cid, "list1":$c1, "list2":$c2,"list3":$c3,"list4":$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04.aql
deleted file mode 100644
index 218cb7b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04.aql
+++ /dev/null
@@ -1,34 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_04.adm";
-
-for $c in dataset('Customers')
-let $rec := { "cashBack":$c.cashBack, "cashBack+5": $c.cashBack+5, "cashBack-5": $c.cashBack -5, "cashBack*5": $c.cashBack*5, "cashBack/5": $c.cashBack/ 5, "-cashBack": -$c.cashBack}
-where $c.cid >= int32("3")
-return { "id": $c.cid, "custname":$c.name, "age" : $c.age, "MathcashBack": $rec }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.3.query.aql
new file mode 100644
index 0000000..1f2dcf4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_04/customer_q_04.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $rec := { "cashBack":$c.cashBack, "cashBack+5": $c.cashBack+5, "cashBack-5": $c.cashBack -5, "cashBack*5": $c.cashBack*5, "cashBack/5": $c.cashBack/ 5, "-cashBack": -$c.cashBack}
+where $c.cid >= int32("3")
+return { "id": $c.cid, "custname":$c.name, "age" : $c.age, "MathcashBack": $rec }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05.aql
deleted file mode 100644
index 504df0b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05.aql
+++ /dev/null
@@ -1,36 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_05.adm";
-
-
-for $c in dataset('Customers')
-let $rec := { "age":$c.age, "age+5": $c.age+5, "age-5": $c.age -5, "age*5": $c.age*5, "age/5": $c.age/ 5, "-age": -$c.age}
-where $c.cid >= int32("3")
-return { "custname":$c.name, "age" : $c.age, "MathAge": $rec }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.3.query.aql
new file mode 100644
index 0000000..f5f48fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_05/customer_q_05.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $rec := { "age":$c.age, "age+5": $c.age+5, "age-5": $c.age -5, "age*5": $c.age*5, "age/5": $c.age/ 5, "-age": -$c.age}
+where $c.cid >= int32("3")
+return { "custname":$c.name, "age" : $c.age, "MathAge": $rec }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06.aql
deleted file mode 100644
index 0738dfe..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06.aql
+++ /dev/null
@@ -1,35 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_06.adm";
-
-for $c in dataset('Customers')
-let $rec := $c.lastorder
-let $m := [$c.cid, $rec.oid]
-let $n := [$m[?], $m[1], $m[4]]
-return { "customerid": $c.name, "orderedlist": $n}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.3.query.aql
new file mode 100644
index 0000000..57fa0c7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_06/customer_q_06.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $rec := $c.lastorder
+let $m := [$c.cid, $rec.oid]
+let $n := [$m[?], $m[1], $m[4]]
+return { "customerid": $c.name, "orderedlist": $n}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07.aql
deleted file mode 100644
index cdcdd82..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07.aql
+++ /dev/null
@@ -1,36 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_07.adm";
-
-for $c in dataset('Customers')
-let $rec := $c.lastorder
-let $m := [$c.cid, $rec.oid]
-let $n := {{$m[?], $m[1], $m[4]}}
-return { "customerid": $c.name, "unorderedlist": $n}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.1.ddl.aql
new file mode 100644
index 0000000..cae4772
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.1.ddl.aql
@@ -0,0 +1,28 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.3.query.aql
new file mode 100644
index 0000000..6c965fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_07/customer_q_07.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $rec := $c.lastorder
+let $m := [$c.cid, $rec.oid]
+let $n := {{$m[?], $m[1], $m[4]}}
+return { "customerid": $c.name, "unorderedlist": $n}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08.aql
deleted file mode 100644
index baf2951..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08.aql
+++ /dev/null
@@ -1,35 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_customer_q_08.adm";
-
-for $c in dataset('Customers')
-where $c.age < 15
-return { "custname":$c.name, "custage": $c.age }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.1.ddl.aql
new file mode 100644
index 0000000..d40a52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.3.query.aql
new file mode 100644
index 0000000..4be5071
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_08/customer_q_08.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+where $c.age < 15
+return { "custname":$c.name, "custage": $c.age }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql
deleted file mode 100644
index e951abc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql
+++ /dev/null
@@ -1,71 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create type CustomerOrdersType as open {
- cid: int32,
- cust: CustomerType,
- orders: [OrderType]
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Customers1(CustomerType)
- partitioned by key cid on group1;
-create dataset Orders1(OrderType)
- partitioned by key oid on group1;
-create dataset CustomerOrders1(CustomerOrdersType)
- partitioned by key cid on group1;
-
-load dataset Customers1
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
-
-load dataset Orders1
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
-
-
-// write output to nc1:"rttest/denorm-cust-order_01.adm";
-
-
-write into dataset CustomerOrders1 (
-
-for $c in dataset('Customers1')
-for $o in dataset('Orders1')
-where $c.cid = $o.cid and $c.age < 21 and $c.total > 50.0
-group by $cid := $c.cid decor $cust := $c with $o
-return {"cid":$cid, "cust": $cust, "orders": $o}
-
-);
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.1.ddl.aql
new file mode 100644
index 0000000..197b7f1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.1.ddl.aql
@@ -0,0 +1,45 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create type CustomerOrdersType as open {
+ cid: int32,
+ cust: CustomerType,
+ orders: [OrderType]
+}
+
+create dataset Customers1(CustomerType)
+ primary key cid;
+create dataset Orders1(OrderType)
+ primary key oid;
+create dataset CustomerOrders1(CustomerOrdersType)
+ primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.2.update.aql
new file mode 100644
index 0000000..5ebc4ea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+load dataset Customers1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
+
+load dataset Orders1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.3.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.3.update.aql
new file mode 100644
index 0000000..6dfff7a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01/denorm-cust-order_01.3.update.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+write into dataset CustomerOrders1 (
+
+for $c in dataset('Customers1')
+for $o in dataset('Orders1')
+where $c.cid = $o.cid and $c.age < 21 and $c.total > 50.0
+group by $cid := $c.cid decor $cust := $c with $o
+return {"cid":$cid, "cust": $cust, "orders": $o}
+
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql
deleted file mode 100644
index 39815d7..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql
+++ /dev/null
@@ -1,76 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create type CustomerOrdersType as open {
- cid: int32,
- cust: CustomerType,
- orders: [OrderType]
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Customers2(CustomerType)
- partitioned by key cid on group1;
-create dataset Orders2(OrderType)
- partitioned by key oid on group1;
-create dataset CustomerOrders2(CustomerOrdersType)
- partitioned by key cid on group1;
-
-load dataset Customers2
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
-
-load dataset Orders2
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
-
-
-write into dataset CustomerOrders2 (
-
-for $c in dataset('Customers2')
-let $orders :=
- for $o in dataset('Orders2')
- where $o.cid = $c.cid
- order by $o.oid asc
- return $o
-return { "cid": $c.cid, "cust": $c, "orders": $orders }
-
-);
-
-write output to nc1:"rttest/custord_denorm-cust-order_02.adm";
-
-for $co in dataset('CustomerOrders2')
-order by $co.cid
-return $co
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.1.ddl.aql
new file mode 100644
index 0000000..eae0d26
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.1.ddl.aql
@@ -0,0 +1,45 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create type CustomerOrdersType as open {
+ cid: int32,
+ cust: CustomerType,
+ orders: [OrderType]
+}
+
+create dataset Customers2(CustomerType)
+ primary key cid;
+create dataset Orders2(OrderType)
+ primary key oid;
+create dataset CustomerOrders2(CustomerOrdersType)
+ primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.2.update.aql
new file mode 100644
index 0000000..fdbfa62
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.2.update.aql
@@ -0,0 +1,21 @@
+use dataverse test;
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
+
+load dataset Orders2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
+
+write into dataset CustomerOrders2 (
+
+for $c in dataset('Customers2')
+let $orders :=
+ for $o in dataset('Orders2')
+ where $o.cid = $c.cid
+ order by $o.oid asc
+ return $o
+return { "cid": $c.cid, "cust": $c, "orders": $orders }
+
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.3.query.aql
new file mode 100644
index 0000000..3b1e1a1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02/denorm-cust-order_02.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $co in dataset('CustomerOrders2')
+order by $co.cid
+return $co
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql
deleted file mode 100644
index 978bedf..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql
+++ /dev/null
@@ -1,82 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create type CustomerOrdersType as open {
- cid: int32,
- cust: CustomerType,
- orders: [OrderType]
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Customers3(CustomerType)
- partitioned by key cid on group1;
-create dataset Orders3(OrderType)
- partitioned by key oid on group1;
-create dataset CustomerOrders3(CustomerOrdersType)
- partitioned by key cid on group1;
-
-load dataset Customers3
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
-
-load dataset Orders3
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
-
-
-write into dataset CustomerOrders3 (
-
-for $c in dataset('Customers3')
-let $orders :=
- for $o in dataset('Orders3')
- where $o.cid = $c.cid
- order by $o.orderpriority desc
- return $o
-return { "cid": $c.cid, "cust": $c, "orders": $orders }
-
-);
-
-write output to nc1:"rttest/custord_denorm-cust-order_03.adm";
-
-for $co1 in dataset('CustomerOrders3')
-for $o1 in $co1.orders
-return {
- "order": $o1,
- "ordcust":
- for $co2 in dataset('CustomerOrders3')
- where some $o2 in $co2.orders
- satisfies $o2.oid = $o1.oid
- return $co2.cust
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.1.ddl.aql
new file mode 100644
index 0000000..4530250
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.1.ddl.aql
@@ -0,0 +1,45 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create type CustomerOrdersType as open {
+ cid: int32,
+ cust: CustomerType,
+ orders: [OrderType]
+}
+
+create dataset Customers3(CustomerType)
+ primary key cid;
+create dataset Orders3(OrderType)
+ primary key oid;
+create dataset CustomerOrders3(CustomerOrdersType)
+ primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.2.update.aql
new file mode 100644
index 0000000..f19ba50
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+load dataset Customers3
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
+
+load dataset Orders3
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.3.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.3.update.aql
new file mode 100644
index 0000000..6ddccc4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.3.update.aql
@@ -0,0 +1,14 @@
+use dataverse test;
+
+write into dataset CustomerOrders3 (
+
+for $c in dataset('Customers3')
+let $orders :=
+ for $o in dataset('Orders3')
+ where $o.cid = $c.cid
+ order by $o.orderpriority desc
+ return $o
+return { "cid": $c.cid, "cust": $c, "orders": $orders }
+
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.4.query.aql
new file mode 100644
index 0000000..1bdfa7f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03/denorm-cust-order_03.4.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+for $co1 in dataset('CustomerOrders3')
+for $o1 in $co1.orders
+return {
+ "order": $o1,
+ "ordcust":
+ for $co2 in dataset('CustomerOrders3')
+ where some $o2 in $co2.orders
+ satisfies $o2.oid = $o1.oid
+ return $co2.cust
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql
deleted file mode 100644
index d6eb4c4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql
+++ /dev/null
@@ -1,49 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerOrderType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- orders: [OrderType]
-}
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset CustomerOrders(CustomerOrderType)
- partitioned by key cid on group1;
-
-
-load dataset CustomerOrders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/custorder-tiny.adm"),("format"="adm")) pre-sorted;
-
-
-write output to nc1:"rttest/custord_freq_clark.adm";
-
-for $c in dataset('CustomerOrders')
-for $o in $c.orders
-group by $clerk := $o.clerk with $o
-let $count := count($o)
-order by $count, $clerk desc
-return { "clerk": $clerk, "ordercount": $count }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.1.ddl.aql
new file mode 100644
index 0000000..07ce2ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.1.ddl.aql
@@ -0,0 +1,32 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerOrderType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ orders: [OrderType]
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create dataset CustomerOrders(CustomerOrderType)
+ primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.2.update.aql
new file mode 100644
index 0000000..073bca9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset CustomerOrders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/custorder-tiny.adm"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.3.query.aql
new file mode 100644
index 0000000..9060ff4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk/freq-clerk.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+for $c in dataset('CustomerOrders')
+for $o in $c.orders
+group by $clerk := $o.clerk with $o
+let $count := count($o)
+order by $count, $clerk desc
+return { "clerk": $clerk, "ordercount": $count }
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql
deleted file mode 100644
index 2a6a37b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_join_q_01.adm";
-
-for $c in dataset('Customers')
-for $o in dataset('Orders')
-where $c.cid = $o.cid
-order by $c.name, $o.total
-return {"cust_name":$c.name, "cust_age": $c.age, "order_total":$o.total, "orderList":[$o.oid, $o.cid], "orderList":{{$o.oid, $o.cid}}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.1.ddl.aql
new file mode 100644
index 0000000..a7a7b77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.1.ddl.aql
@@ -0,0 +1,41 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.3.query.aql
new file mode 100644
index 0000000..4f2dacf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01/join_q_01.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+for $o in dataset('Orders')
+where $c.cid = $o.cid
+order by $c.name, $o.total
+return {"cust_name":$c.name, "cust_age": $c.age, "order_total":$o.total, "orderList":[$o.oid, $o.cid]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02.aql
deleted file mode 100644
index 7b0cb5f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02.aql
+++ /dev/null
@@ -1,54 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_join_q_02.adm";
-
-for $c in dataset('Customers')
-for $o in dataset('Orders')
-let $rec := $c.lastorder
-let $ol := [$o.oid, $rec.oid, $o.cid]
-let $ul := {{$o.oid, $rec.oid, $o.cid}}
-where $c.cid = $o.cid
-order by $c.name, $o.total
-return {"cust_name":$c.name, "order_total": $o.total, "orderedlist": $ol, "unorderedlist": $ul }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.1.ddl.aql
new file mode 100644
index 0000000..a7a7b77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.1.ddl.aql
@@ -0,0 +1,41 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.3.query.aql
new file mode 100644
index 0000000..45bc2be
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_02/join_q_02.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+for $o in dataset('Orders')
+let $rec := $c.lastorder
+let $ol := [$o.oid, $rec.oid, $o.cid]
+let $ul := {{$o.oid, $rec.oid, $o.cid}}
+where $c.cid = $o.cid
+order by $c.name, $o.total
+return {"cust_name":$c.name, "order_total": $o.total, "orderedlist": $ol, "unorderedlist": $ul }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03.aql
deleted file mode 100644
index 002bdff..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03.aql
+++ /dev/null
@@ -1,54 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_join_q_03.adm";
-
-
-for $c in dataset('Customers')
-for $o in dataset('Orders')
-let $rec := $c.lastorder
-let $ol := [$o.oid, $rec.oid, $o.cid]
-let $ul := {{$o.oid, $rec.oid, $o.cid}}
-where $c.cid = $o.cid
-order by $c.name, $o.total
-return {"cust_name":$c.name, "order_total": $o.total, "orderedlist": $ol, "unorderedlist": $ul, "ol_item1": $ol[0], "ol_item2": $ol[1], "ol_item5": $ol[4], "ul_item1": $ul[?]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.1.ddl.aql
new file mode 100644
index 0000000..40f94fa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.1.ddl.aql
@@ -0,0 +1,42 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.3.query.aql
new file mode 100644
index 0000000..c96be23
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_03/join_q_03.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+for $o in dataset('Orders')
+let $rec := $c.lastorder
+let $ol := [$o.oid, $rec.oid, $o.cid]
+let $ul := {{$o.oid, $rec.oid, $o.cid}}
+where $c.cid = $o.cid
+order by $c.name, $o.total
+return {"cust_name":$c.name, "order_total": $o.total, "orderedlist": $ol, "unorderedlist": $ul, "ol_item1": $ol[0], "ol_item2": $ol[1], "ol_item5": $ol[4], "ul_item1": $ul[?]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04.aql
deleted file mode 100644
index b424796..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04.aql
+++ /dev/null
@@ -1,51 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as closed {
- cid: int32,
- name: string,
- cashBack: int32,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_join_q_04.adm";
-
-
-for $c in dataset('Customers')
-return {"order_id" :
-for $o in dataset('Orders')
-where $c.cid = $o.cid
-return $o.oid }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.1.ddl.aql
new file mode 100644
index 0000000..2fbbf2f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.1.ddl.aql
@@ -0,0 +1,42 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.3.query.aql
new file mode 100644
index 0000000..9996053
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_04/join_q_04.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+return {"order_id" :
+for $o in dataset('Orders')
+where $c.cid = $o.cid
+return $o.oid }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql b/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql
deleted file mode 100644
index ae2d750..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql
+++ /dev/null
@@ -1,56 +0,0 @@
-drop dataverse test if exists;
-drop nodegroup group0 if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create nodegroup group0 if not exists on nc1;
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset c1(CustomerType)
- partitioned by key cid on group0;
-create dataset c2(CustomerType)
- partitioned by key cid on group1;
-
-load dataset c1
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
-
-
-write into dataset c2 (
-
- for $c in dataset('c1')
- return $c
-
-);
-
-
-write output to nc1:"rttest/custord_load-test.adm";
-
-for $c in dataset('c2')
-order by $c.cid
-return $c
-
-
-
-// write output to nc1:"rttest/denorm-cust-order_01.adm";
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.1.ddl.aql
new file mode 100644
index 0000000..c0f97c9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.1.ddl.aql
@@ -0,0 +1,28 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create dataset c1(CustomerType)
+ primary key cid;
+create dataset c2(CustomerType)
+ primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.2.update.aql
new file mode 100644
index 0000000..a395f03
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset c1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.3.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.3.update.aql
new file mode 100644
index 0000000..11761d6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.3.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+write into dataset c2 (
+
+ for $c in dataset('c1')
+ return $c
+
+);
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.4.query.aql
new file mode 100644
index 0000000..109195e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/load-test/load-test.4.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $c in dataset('c2')
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql
deleted file mode 100644
index 36e6830..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_order_q_01.adm";
-
-for $c in dataset('Orders')
-return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.1.ddl.aql
new file mode 100644
index 0000000..d67207e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.3.query.aql
new file mode 100644
index 0000000..4b9c081
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01/order_q_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $c in dataset('Orders')
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql
deleted file mode 100644
index a16eab6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql
+++ /dev/null
@@ -1,30 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_order_q_02.adm";
-
-for $o in dataset('Orders')
-let $c1 := [ $o.orderstatus, $o.clerk]
-let $c2 := {{ $o.orderstatus, $o.clerk}}
-let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
-let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
-return { "id": $o.cid, "list1":$c1, "list2":$c2,"list3":$c3,"list4":$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.1.ddl.aql
new file mode 100644
index 0000000..d67207e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.3.query.aql
new file mode 100644
index 0000000..cb793b5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02/order_q_02.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $o in dataset('Orders')
+let $c1 := [ $o.orderstatus, $o.clerk]
+let $c2 := {{ $o.orderstatus, $o.clerk}}
+let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
+let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
+return { "id": $o.cid, "list1":$c1, "list2":$c2,"list3":$c3,"list4":$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03.aql
deleted file mode 100644
index b930a10..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03.aql
+++ /dev/null
@@ -1,29 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_order_q_03.adm";
-
-for $o in dataset('Orders')
-let $c1 := [ $o.orderstatus, $o.clerk]
-let $c2 := {{ $o.orderstatus, $o.clerk}}
-let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
-let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
-return { "orderid": $o.oid, "ordertot":$o.total, "list": $c1, "item1": $c1[0], "item1": $c1[?], "item2": $c1[1], "item3": $c1[2]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.1.ddl.aql
new file mode 100644
index 0000000..d67207e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.3.query.aql
new file mode 100644
index 0000000..e098c34
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_03/order_q_03.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $o in dataset('Orders')
+let $c1 := [ $o.orderstatus, $o.clerk]
+let $c2 := {{ $o.orderstatus, $o.clerk}}
+let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
+let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
+return { "orderid": $o.oid, "ordertot":$o.total, "list": $c1, "item1": $c1[0], "item2": $c1[1], "item3": $c1[2]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql
deleted file mode 100644
index c9b22d8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql
+++ /dev/null
@@ -1,30 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_order_q_04.adm";
-
-for $o in dataset('Orders')
-let $c1 := [ $o.orderstatus, $o.clerk]
-let $c2 := {{ $o.orderstatus, $o.clerk}}
-let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
-let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
-return { "orderid": $o.oid, "ordertot":$o.total, "list": $c3, "item1": $c3[0], "item1": $c3[?], "item2": $c3[1], "item5": $c3[5], "item10": $c3[10]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.1.ddl.aql
new file mode 100644
index 0000000..d67207e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.3.query.aql
new file mode 100644
index 0000000..302864a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04/order_q_04.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $o in dataset('Orders')
+let $c1 := [ $o.orderstatus, $o.clerk]
+let $c2 := {{ $o.orderstatus, $o.clerk}}
+let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
+let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
+return { "orderid": $o.oid, "ordertot":$o.total, "list": $c3, "item1": $c3[0], "item2": $c3[1], "item5": $c3[5], "item10": $c3[10]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05.aql
deleted file mode 100644
index 5693312..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_order_q_05.adm";
-
-for $o in dataset('Orders')
-let $c1 := []
-let $c2 := {{}}
-return { "orderid": $o.oid, "ordertot":$o.total, "emptyorderedlist": $c1, "emptyunorderedlist": $c2, "olist_item1": $c1[0], "olist_item1": $c1[?], "olist_item5": $c1[4], "ulist_item1": $c2[?]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.1.ddl.aql
new file mode 100644
index 0000000..d67207e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.3.query.aql
new file mode 100644
index 0000000..eddefbd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_05/order_q_05.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('Orders')
+let $c1 := []
+let $c2 := {{}}
+return { "orderid": $o.oid, "ordertot":$o.total, "emptyorderedlist": $c1, "emptyunorderedlist": $c2, "olist_item1": $c1[0], "olist_item5": $c1[4], "ulist_item1": $c2[?]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06.aql
deleted file mode 100644
index 70c317f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float,
- items: [int32]
-}
-
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
-
-write output to nc1:"rttest/custord_order_q_06.adm";
-
-for $o in dataset('Orders')
-let $c3 := {{$o.heList, $o.openlist}}
-return { "item1": $c3[?] }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.1.ddl.aql
new file mode 100644
index 0000000..d67207e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.3.query.aql
new file mode 100644
index 0000000..ae3519d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_06/order_q_06.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $o in dataset('Orders')
+let $c3 := {{$o.heList, $o.openlist}}
+return { "item1": $c3[?] }
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql
deleted file mode 100644
index df75811..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point
-}
-
-create type UserType as open {
- name: string,
- email: string,
- interests: {{string}},
- address: AddressType,
- member_of: {{
- {
- sig_id: int32,
- chapter_name: string,
- member_since: date
- }
- }}
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create external dataset User(UserType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q1.adm";
-
-for $user in dataset('User')
-where some $i in $user.interests
- satisfies $i = "movies"
-return {"name": $user.name}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.1.ddl.aql
new file mode 100644
index 0000000..574c795
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.1.ddl.aql
@@ -0,0 +1,30 @@
+drop dataverse test if exists;
+
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ street: string,
+ city: string,
+ zip: string,
+ latlong: point
+}
+
+create type UserType as open {
+ name: string,
+ email: string,
+ interests: {{string}},
+ address: AddressType,
+ member_of: {{
+ {
+ sig_id: int32,
+ chapter_name: string,
+ member_since: date
+ }
+ }}
+}
+
+create external dataset User(UserType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.3.query.aql
new file mode 100644
index 0000000..4d5c9c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q1/q1.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $user in dataset('User')
+where some $i in $user.interests
+ satisfies $i = "movies"
+return {"name": $user.name}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql
deleted file mode 100644
index 171fb02..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql
+++ /dev/null
@@ -1,56 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point
-}
-
-create type EventType as closed {
- event_id: int32,
- name: string,
- location: AddressType ?,
- organizers: {{
- {
- name: string
- }
- }},
- sponsoring_sigs: [
- {
- sig_id: int32,
- chapter_name: string
- }
- ],
- interest_keywords: {{string}},
- price: double?,
- start_time: datetime,
- end_time: datetime
-}
-
-
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create external dataset Event(EventType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/event.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q2.adm";
-
-for $event in dataset('Event')
-for $sponsor in $event.sponsoring_sigs
-let $es := { "event": $event, "sponsor": $sponsor }
-group by $sig_id := $sponsor.sig_id with $es
-let $sig_sponsorship_count := count($es)
-let $by_chapter :=
- for $e in $es
- group by $chapter_name := $e.sponsor.chapter_name with $e
- return { "chapter_name": $chapter_name, "escount" : count($e) }
-order by $sig_sponsorship_count desc
-limit 5
-return { "sig_id": $sig_id, "total_count": $sig_sponsorship_count, "chapter_breakdown": $by_chapter }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.1.ddl.aql
new file mode 100644
index 0000000..719161c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.1.ddl.aql
@@ -0,0 +1,37 @@
+drop dataverse test if exists;
+
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ street: string,
+ city: string,
+ zip: string,
+ latlong: point
+}
+
+create type EventType as closed {
+ event_id: int32,
+ name: string,
+ location: AddressType ?,
+ organizers: {{
+ {
+ name: string
+ }
+ }},
+ sponsoring_sigs: [
+ {
+ sig_id: int32,
+ chapter_name: string
+ }
+ ],
+ interest_keywords: {{string}},
+ price: double?,
+ start_time: datetime,
+ end_time: datetime
+}
+
+create external dataset Event(EventType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/events/tiny/event.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.3.query.aql
new file mode 100644
index 0000000..c6117dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q2/q2.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+for $event in dataset('Event')
+for $sponsor in $event.sponsoring_sigs
+let $es := { "event": $event, "sponsor": $sponsor }
+group by $sig_id := $sponsor.sig_id with $es
+let $sig_sponsorship_count := count($es)
+let $by_chapter :=
+ for $e in $es
+ group by $chapter_name := $e.sponsor.chapter_name with $e
+ return { "chapter_name": $chapter_name, "escount" : count($e) }
+order by $sig_sponsorship_count desc
+limit 5
+return { "sig_id": $sig_id, "total_count": $sig_sponsorship_count, "chapter_breakdown": $by_chapter }
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql
deleted file mode 100644
index 9c871b2..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql
+++ /dev/null
@@ -1,51 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point2d
-}
-
-create type UserType as open{
- name: string,
- interests: {{string}},
- address: AddressType,
- member_of: {{
- {
- sig_id: int32,
- chapter_name: string,
- member_since: date
- }
-}}
-}
-
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset User(UserType)
- partitioned by key name on group1;
-
-load dataset User
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="json")) pre-sorted;
-
-
-write output to nc1:'rttest/dapd_q3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('User')
-let $similar_users :=
- for $similar_user in dataset('User')
- where $user.name != $similar_user.name
- and $user.interests ~= $similar_user.interests
- let $sim := similarity-jaccard($user.interests, $similar_user.interests)
- order by $sim desc
- limit 10
- return { "user_name": $similar_user.name }
-order by $user.name
-return { "user_name" : $user.name, "similar_users" : $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.1.ddl.aql
new file mode 100644
index 0000000..9af9a0d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.1.ddl.aql
@@ -0,0 +1,26 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ street: string,
+ city: string,
+ zip: string,
+ latlong: point2d
+}
+
+create type UserType as open{
+ name: string,
+ interests: {{string}},
+ address: AddressType,
+ member_of: {{
+ {
+ sig_id: int32,
+ chapter_name: string,
+ member_since: date
+ }
+}}
+}
+
+create dataset User(UserType) primary key name;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.2.update.aql
new file mode 100644
index 0000000..7bad91f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset User
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/events/tiny/user.adm"),("format"="json")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.3.query.aql
new file mode 100644
index 0000000..d2a7776
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q3/q3.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+set simthreshold '.5f';
+
+for $user in dataset('User')
+let $similar_users :=
+ for $similar_user in dataset('User')
+ where $user.name != $similar_user.name
+ and $user.interests ~= $similar_user.interests
+ let $sim := similarity-jaccard($user.interests, $similar_user.interests)
+ order by $sim desc
+ limit 10
+ return { "user_name": $similar_user.name }
+order by $user.name
+return { "user_name" : $user.name, "similar_users" : $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.1.ddl.aql
new file mode 100644
index 0000000..0889497
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.1.ddl.aql
@@ -0,0 +1,36 @@
+/*
+ * Description : Create and drop and recreate the same closed type, here type has optional fields.
+ * : verify correctness by querying metadata.
+ * Date : 11th Feb 2013
+ * Expected Res : Success
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as closed {
+id : int32,
+salary : double ?,
+name : string,
+durtn : duration ?,
+inter : interval,
+dt : date ?,
+tm : time,
+pt : point ?
+}
+
+drop type TestType;
+
+create type TestType as closed {
+id : int32,
+salary : double ?,
+name : string,
+durtn : duration ?,
+inter : interval,
+dt : date ?,
+tm : time,
+pt : point ?
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.3.query.aql
new file mode 100644
index 0000000..284a77a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-cltype/create-drop-cltype.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create and drop and recreate the same closed type, here type has optional fields.
+ * : verify correctness by querying metadata.
+ * Date : 11th Feb 2013
+ * Expected Res : Success
+ */
+
+use dataverse test;
+
+for $l in dataset('Metadata.Datatype')
+where $l.DatatypeName = 'TestType'
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.1.ddl.aql
new file mode 100644
index 0000000..e2a2218
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.1.ddl.aql
@@ -0,0 +1,36 @@
+/*
+ * Description : Create and drop and recreate the same open type, here type has optional fields.
+ * : verify correctness by querying metadata.
+ * Date : 11th Feb 2013
+ * Expected Res : Success
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+id : int32,
+salary : double ?,
+name : string,
+durtn : duration ?,
+inter : interval,
+dt : date ?,
+tm : time,
+pt : point ?
+}
+
+drop type TestType;
+
+create type TestType as open {
+id : int32,
+salary : double ?,
+name : string,
+durtn : duration ?,
+inter : interval,
+dt : date ?,
+tm : time,
+pt : point ?
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.3.query.aql
new file mode 100644
index 0000000..b9e4f88
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/create-drop-opntype/create-drop-opntype.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create and drop and recreate the same open type, here type has optional fields.
+ * : verify correctness by querying metadata.
+ * Date : 11th Feb 2013
+ * Expected Res : Success
+ */
+
+use dataverse test;
+
+for $l in dataset('Metadata.Datatype')
+where $l.DatatypeName = 'TestType'
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.1.ddl.aql
new file mode 100644
index 0000000..dcf3081
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.2.update.aql
new file mode 100644
index 0000000..169c6dc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.3.ddl.aql
new file mode 100644
index 0000000..a3572c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.3.ddl.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+create index idx_LineItem_partkey on LineItem(l_linenumber);
+create index idx_LineItem_suppkey on LineItem(l_suppkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.4.update.aql
new file mode 100644
index 0000000..57d42c7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.4.update.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+delete $l from dataset LineItem where $l.l_suppkey>=2 or $l.l_linenumber>1;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.5.query.aql
new file mode 100644
index 0000000..69912f9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index/delete-from-loaded-dataset-with-index.5.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+where $c.l_suppkey<150
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.1.ddl.aql
new file mode 100644
index 0000000..dcf3081
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.2.update.aql
new file mode 100644
index 0000000..06c0e6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.2.update.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+delete $l from dataset LineItem where $l.l_orderkey>=10;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.3.query.aql
new file mode 100644
index 0000000..877796c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset/delete-from-loaded-dataset.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change.aql
new file mode 100644
index 0000000..fb9682d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change.aql
@@ -0,0 +1,43 @@
+/*
+ * Description : Test variant syntax for delete
+ * : Ending semi-colon is optional for delete
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+delete $l from dataset LineItem where $l.l_orderkey>=10
+
+write output to nc1:"rttest/dml_delete-syntax-change.adm";
+for $c in dataset('LineItem')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.1.ddl.aql
new file mode 100644
index 0000000..dec4e8d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.1.ddl.aql
@@ -0,0 +1,34 @@
+/*
+ * Description : Test variant syntax for delete
+ * : Ending semi-colon is optional for delete
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.2.update.aql
new file mode 100644
index 0000000..06c0e6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.2.update.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+delete $l from dataset LineItem where $l.l_orderkey>=10;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.3.query.aql
new file mode 100644
index 0000000..d0f4290b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-syntax-change/delete-syntax-change.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-with-index.aql
deleted file mode 100644
index b1ad097..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/delete-with-index.aql
+++ /dev/null
@@ -1,43 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-create index idx_LineItem_partkey on LineItem(l_linenumber);
-create index idx_LineItem_suppkey on LineItem(l_suppkey);
-
-delete $l from dataset LineItem where $l.l_suppkey>=2 or $l.l_linenumber>1;
-
-write output to nc1:"rttest/dml_delete-with-index.adm";
-for $c in dataset('LineItem')
-where $c.l_suppkey<150
-order by $c.l_orderkey, $c.l_linenumber
-return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete.aql
deleted file mode 100644
index cdd0315..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/delete.aql
+++ /dev/null
@@ -1,40 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-delete $l from dataset LineItem where $l.l_orderkey>=10;
-
-write output to nc1:"rttest/dml_delete.adm";
-for $c in dataset('LineItem')
-order by $c.l_orderkey, $c.l_linenumber
-return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.1.ddl.aql
new file mode 100644
index 0000000..af8f573
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.1.ddl.aql
@@ -0,0 +1,33 @@
+/*
+ * Description : Drop empty secondary index.
+ * Expected Result : Success
+ * Date : 8th Feb 2013
+ *
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+id : int32,
+name : string,
+locn : point,
+zip : string
+}
+
+create dataset t1(TestType) primary key id;
+
+create index rtree_index_point on t1(locn) type rtree;
+
+create index keyWD_indx on t1(name) type keyword;
+
+create index secndIndx on t1(zip);
+
+drop index t1.rtree_index_point;
+
+drop index t1.keyWD_indx;
+
+drop index t1.secndIndx;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.2.update.aql
new file mode 100644
index 0000000..19dfe4a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Drop empty secondary index.
+ * Expected Result : Success
+ * Date : 8th Feb 2013
+ *
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.3.query.aql
new file mode 100644
index 0000000..35dc1b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-empty-secondary-indexes/drop-empty-secondary-indexes.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Drop empty secondary index.
+ * Expected Result : Success
+ * Date : 8th Feb 2013
+ *
+ */
+
+use dataverse test;
+
+for $l in dataset('Metadata.Index')
+where $l.IsPrimary=false
+return $l;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.1.ddl.aql
new file mode 100644
index 0000000..dfbc033
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.1.ddl.aql
@@ -0,0 +1,33 @@
+/*
+ * Description : Drop secondary index.
+ * Expected Result : Success
+ * Date : 12th July 2012
+ *
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type Schema as closed {
+unique1: int32,
+unique2: int32,
+two: int32,
+four: int32,
+ten: int32,
+twenty: int32,
+onePercent: int32,
+tenPercent: int32,
+twentyPercent: int32,
+fiftyPercent: int32,
+unique3: int32,
+evenOnePercent: int32,
+oddOnePercent: int32,
+stringu1: string,
+stringu2: string,
+string4: string
+}
+
+create dataset t1(Schema) primary key unique2;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.2.update.aql
new file mode 100644
index 0000000..ae67969
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.2.update.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Drop secondary index.
+ * Expected Result : Success
+ * Date : 12th July 2012
+ *
+ */
+
+use dataverse test;
+
+// Load data
+load dataset t1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/wisc/onektup.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.3.ddl.aql
new file mode 100644
index 0000000..7442100
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.3.ddl.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+// create secondary indexes
+create index idx_t1_str1 on t1(stringu1);
+create index idx_t1_unique1 on t1(unique1);
+
+// drop secondary indexes
+drop index t1.idx_t1_str1;
+drop index t1.idx_t1_unique1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.4.query.aql
new file mode 100644
index 0000000..81119b3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/drop-index/drop-index.4.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Drop secondary index.
+ * Expected Result : Success
+ * Date : 12th July 2012
+ *
+ */
+
+use dataverse test;
+
+for $a in dataset('t1')
+where $a.unique1 > 10 and $a.stringu1="DGAAAAXXXXXXXXXXXXXXXXXXX"
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.1.ddl.aql
new file mode 100644
index 0000000..356aafb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.1.ddl.aql
@@ -0,0 +1,36 @@
+/*
+ * Test case Name : empty-load-with-index.aql
+ * Description : Check that an empty load doesn't preclude a future non-empty load on secondary index
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create index part_index on LineItem(l_partkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.2.update.aql
new file mode 100644
index 0000000..821c6a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : empty-load-with-index.aql
+ * Description : Check that an empty load doesn't preclude a future non-empty load on secondary index
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/empty.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.3.query.aql
new file mode 100644
index 0000000..5111256
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index/empty-load-with-index.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : empty-load-with-index.aql
+ * Description : Check that an empty load doesn't preclude a future non-empty load on secondary index
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+for $c in dataset('LineItem')
+order by $c.l_orderkey, $c.l_linenumber
+limit 1
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.1.ddl.aql
new file mode 100644
index 0000000..54da1a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.1.ddl.aql
@@ -0,0 +1,36 @@
+/*
+ * Test case Name : empty-load-with-index.aql
+ * Description : Check that an empty load doesn't preclude a future non-empty load on primary index
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create index part_index on LineItem(l_partkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.2.update.aql
new file mode 100644
index 0000000..e9072d1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : empty-load-with-index.aql
+ * Description : Check that an empty load doesn't preclude a future non-empty load on primary index
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/empty.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.3.query.aql
new file mode 100644
index 0000000..bb4cac6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load/empty-load.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : empty-load-with-index.aql
+ * Description : Check that an empty load doesn't preclude a future non-empty load on primary index
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+for $c in dataset('LineItem')
+order by $c.l_orderkey, $c.l_linenumber
+limit 1
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.1.ddl.aql
new file mode 100644
index 0000000..0042cdf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case Name : insert-into-empty-dataset-with-index.aql
+ * Description : Check that we can insert into an empty dataset and its empty secondary indexes
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
+create index idx_LineID_partkey on LineID(l_linenumber);
+create index idx_LineID_suppkey on LineID(l_suppkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.2.update.aql
new file mode 100644
index 0000000..52752bf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.2.update.aql
@@ -0,0 +1,31 @@
+/*
+ * Test case Name : insert-into-empty-dataset-with-index.aql
+ * Description : Check that we can insert into an empty dataset and its empty secondary indexes
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+insert into dataset LineID (
+let $x:=1
+let $y:=2
+let $z:=3
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
+insert into dataset LineID (
+let $x:=2
+let $y:=3
+let $z:=4
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.3.query.aql
new file mode 100644
index 0000000..6b0c506
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index/insert-into-empty-dataset-with-index.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : insert-into-empty-dataset-with-index.aql
+ * Description : Check that we can insert into an empty dataset and its empty secondary indexes
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+for $c in dataset('LineID')
+where $c.l_suppkey < 100 and $c.l_linenumber<5
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.1.ddl.aql
new file mode 100644
index 0000000..3241b68
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : insert-into-empty-dataset.aql
+ * Description : Check that we can insert into an empty dataset
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.2.update.aql
new file mode 100644
index 0000000..08e99af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.2.update.aql
@@ -0,0 +1,31 @@
+/*
+ * Test case Name : insert-into-empty-dataset.aql
+ * Description : Check that we can insert into an empty dataset
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+insert into dataset LineID (
+let $x:=1
+let $y:=2
+let $z:=3
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
+insert into dataset LineID (
+let $x:=2
+let $y:=3
+let $z:=4
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.3.query.aql
new file mode 100644
index 0000000..42b98e5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset/insert-into-empty-dataset.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : insert-into-empty-dataset.aql
+ * Description : Check that we can insert into an empty dataset
+ * Expected Result : Success
+ * Date : May 2 2012
+ */
+
+use dataverse test;
+
+for $c in dataset('LineID')
+where $c.l_suppkey < 100 and $c.l_linenumber<5
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.1.ddl.aql
new file mode 100644
index 0000000..c8d1ee5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.2.update.aql
new file mode 100644
index 0000000..a0cdc06
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.3.ddl.aql
new file mode 100644
index 0000000..1eb348a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.3.ddl.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+create index idx_LineID_partkey on LineID(l_linenumber);
+create index idx_LineID_suppkey on LineID(l_suppkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.4.update.aql
new file mode 100644
index 0000000..f138dbb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.4.update.aql
@@ -0,0 +1,24 @@
+use dataverse test;
+
+insert into dataset LineID (
+let $x:=1
+let $y:=2
+let $z:=3
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
+insert into dataset LineID (
+let $x:=2
+let $y:=3
+let $z:=4
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.5.query.aql
new file mode 100644
index 0000000..38729c6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01/insert-into-loaded-dataset-with-index_01.5.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+where $c.l_suppkey = 3 and $c.l_linenumber=2
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.1.ddl.aql
new file mode 100644
index 0000000..5f645cc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.1.ddl.aql
@@ -0,0 +1,36 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.2.update.aql
new file mode 100644
index 0000000..aa945de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.3.ddl.aql
new file mode 100644
index 0000000..1eb348a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.3.ddl.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+create index idx_LineID_partkey on LineID(l_linenumber);
+create index idx_LineID_suppkey on LineID(l_suppkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.4.update.aql
new file mode 100644
index 0000000..a27b4e7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.4.update.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+insert into dataset LineID (
+for $l in dataset('LineItem')
+ where $l.l_orderkey<10
+ return {
+ "l_orderkey": $l.l_orderkey,
+ "l_linenumber": $l.l_linenumber,
+ "l_suppkey": $l.l_partkey
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.5.query.aql
new file mode 100644
index 0000000..7db0021
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02/insert-into-loaded-dataset-with-index_02.5.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+where $c.l_suppkey < 100 and $c.l_linenumber<5
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.1.ddl.aql
new file mode 100644
index 0000000..c8d1ee5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.2.update.aql
new file mode 100644
index 0000000..d3b6d75
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.2.update.aql
@@ -0,0 +1,28 @@
+use dataverse test;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+insert into dataset LineID (
+let $x:=1
+let $y:=2
+let $z:=3
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
+insert into dataset LineID (
+let $x:=2
+let $y:=3
+let $z:=4
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.3.query.aql
new file mode 100644
index 0000000..dab8406
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01/insert-into-loaded-dataset_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+where $c.l_suppkey < 100 and $c.l_linenumber<5
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.1.ddl.aql
new file mode 100644
index 0000000..5bc8cf2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.1.ddl.aql
@@ -0,0 +1,30 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type Schema as closed {
+unique1: int32,
+unique2: int32,
+two: int32,
+four: int32,
+ten: int32,
+twenty: int32,
+onePercent: int32,
+tenPercent: int32,
+twentyPercent: int32,
+fiftyPercent: int32,
+unique3: int32,
+evenOnePercent: int32,
+oddOnePercent: int32,
+stringu1: string,
+stringu2: string,
+string4: string
+}
+
+create dataset onektup(Schema) primary key unique2;
+
+create dataset tenktup1(Schema) primary key unique2;
+
+create dataset tmp(Schema) primary key unique2;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.2.update.aql
new file mode 100644
index 0000000..7054d2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.2.update.aql
@@ -0,0 +1,20 @@
+use dataverse test;
+
+load dataset onektup
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/wisc/onektup.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset tenktup1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/wisc/tenktup.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset tmp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/wisc/empty.adm"),("format"="adm")) pre-sorted;
+
+insert into dataset tmp(
+for $l in dataset('tenktup1')
+where $l.unique2 > 0 and $l.unique2 < 99
+return $l
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.3.query.aql
new file mode 100644
index 0000000..e25b473
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02/insert-into-loaded-dataset_02.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $t in dataset('tmp')
+order by $t.unique2
+return $t
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.1.ddl.aql
new file mode 100644
index 0000000..b4e44da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Description : Insert from source dataset into target dataset
+ * Expected Result : Success
+ * Date : 25th July 2012
+ * Issue # : Issue 76
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype01 as closed {
+ id: string,
+ name: string?
+}
+
+create type testtype02 as closed {
+ id: string
+}
+
+create dataset testds01(testtype01) primary key id;
+create dataset testds02(testtype02) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.2.update.aql
new file mode 100644
index 0000000..9a18810
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.2.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Insert from source dataset into target dataset
+ * Expected Result : Success
+ * Date : 25th July 2012
+ * Issue # : Issue 76
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds01 ({ "id": "001" });
+insert into dataset testds01 ({ "id": "002", "name": "John Doe" });
+
+insert into dataset testds02 ({ "id": "003" });
+insert into dataset testds02 ({ "id": "004" });
+insert into dataset testds02 ({ "id": "005" });
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.3.query.aql
new file mode 100644
index 0000000..25483b8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-src-dst-01/insert-src-dst-01.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Insert from source dataset into target dataset
+ * Expected Result : Success
+ * Date : 25th July 2012
+ * Issue # : Issue 76
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds01")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax.aql
new file mode 100644
index 0000000..58177d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax.aql
@@ -0,0 +1,35 @@
+/*
+ * Test case Name : insert-syntax-change.aql
+ * Description : verify various AQL syntax for insert
+ * Expected Result : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype as open {
+ id: int32,
+ name: string
+}
+
+create dataset testds(testtype) primary key id;
+
+ insert into dataset testds (
+ { "id": 1, "name": "Person One", "hobbies": {{"Rock", "Metal"}}}
+ );
+
+ insert into dataset testds (
+ { "id": 2, "name": "Person Two", "hobbies": {{"Rock", "Jazz"}}}
+ )
+
+ insert into dataset testds { "id": 3, "name": "Person Three", "hobbies": {{"Blues"}}};
+
+ insert into dataset testds { "id": 4, "name": "Person Four", "hobbies": {{"Metal", "Jazz"}}}
+
+write output to nc1:"rttest/dml_insert-syntax.adm";
+
+for $d in dataset("testds")
+order by $d.id
+return $d
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.1.ddl.aql
new file mode 100644
index 0000000..b82fb18
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.1.ddl.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : insert-syntax-change.aql
+ * Description : verify various AQL syntax for insert
+ * Expected Result : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype as open {
+ id: int32,
+ name: string
+}
+
+create dataset testds(testtype) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.2.update.aql
new file mode 100644
index 0000000..e31332f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.2.update.aql
@@ -0,0 +1,14 @@
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": 1, "name": "Person One", "hobbies": {{"Rock", "Metal"}}}
+);
+
+insert into dataset testds (
+{ "id": 2, "name": "Person Two", "hobbies": {{"Rock", "Jazz"}}}
+)
+
+insert into dataset testds { "id": 3, "name": "Person Three", "hobbies": {{"Blues"}}};
+
+insert into dataset testds { "id": 4, "name": "Person Four", "hobbies": {{"Metal", "Jazz"}}}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.3.query.aql
new file mode 100644
index 0000000..0bee73e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-syntax/insert-syntax.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse testdv2;
+
+for $d in dataset("testds")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql
deleted file mode 100644
index fcc83d6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineIDType as closed {
- l_orderkey: int32,
- l_linenumber: int32,
- l_suppkey: int32
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineID(LineIDType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineID
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-create index idx_LineID_partkey on LineID(l_linenumber);
-create index idx_LineID_suppkey on LineID(l_suppkey);
-
-insert into dataset LineID (
-let $x:=1
-let $y:=2
-let $z:=3
-return {
- "l_orderkey": $x,
- "l_partkey": $y,
- "l_suppkey": $z
-}
-);
-
-insert into dataset LineID (
-let $x:=2
-let $y:=3
-let $z:=4
-return {
- "l_orderkey": $x,
- "l_partkey": $y,
- "l_suppkey": $z
-}
-);
-
-
-write output to nc1:"rttest/dml_insert-tuple-with-index.adm";
-for $c in dataset('LineID')
-where $c.l_suppkey = 3 and $c.l_linenumber=2
-order by $c.l_orderkey, $c.l_linenumber
-return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql
deleted file mode 100644
index 731f7cd..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql
+++ /dev/null
@@ -1,49 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineIDType as closed {
- l_orderkey: int32,
- l_linenumber: int32,
- l_suppkey: int32
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineID(LineIDType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineID
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-insert into dataset LineID (
-let $x:=1
-let $y:=2
-let $z:=3
-return {
- "l_orderkey": $x,
- "l_partkey": $y,
- "l_suppkey": $z
-}
-);
-
-insert into dataset LineID (
-let $x:=2
-let $y:=3
-let $z:=4
-return {
- "l_orderkey": $x,
- "l_partkey": $y,
- "l_suppkey": $z
-}
-);
-
-
-write output to nc1:"rttest/dml_insert-tuple.adm";
-for $c in dataset('LineID')
-where $c.l_suppkey < 100 and $c.l_linenumber<5
-order by $c.l_orderkey, $c.l_linenumber
-return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-wisc.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-wisc.aql
deleted file mode 100644
index 4e9e594..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-wisc.aql
+++ /dev/null
@@ -1,55 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create type Schema as closed {
-unique1: int32,
-unique2: int32,
-two: int32,
-four: int32,
-ten: int32,
-twenty: int32,
-onePercent: int32,
-tenPercent: int32,
-twentyPercent: int32,
-fiftyPercent: int32,
-unique3: int32,
-evenOnePercent: int32,
-oddOnePercent: int32,
-stringu1: string,
-stringu2: string,
-string4: string
-}
-
-create dataset onektup(Schema) partitioned by key unique2 on group1;
-
-create dataset tenktup1(Schema) partitioned by key unique2 on group1;
-
-load dataset onektup
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/wisc/onektup.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset tenktup1
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/wisc/tenktup.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-create dataset tmp(Schema) partitioned by key unique2 on group1;
-
-load dataset tmp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/wisc/empty.adm"),("format"="adm")) pre-sorted;
-
-insert into dataset tmp(
-for $l in dataset('tenktup1')
-where $l.unique2 > 0 and $l.unique2 < 99
-return $l
-);
-
-write output to nc1:"rttest/dml_insert-wisc.adm";
-for $t in dataset('tmp')
-order by $t.unique2
-return $t
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-with-index.aql
deleted file mode 100644
index ec30668..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-with-index.aql
+++ /dev/null
@@ -1,66 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type LineIDType as closed {
- l_orderkey: int32,
- l_linenumber: int32,
- l_suppkey: int32
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-create dataset LineID(LineIDType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset LineID
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-create index idx_LineID_partkey on LineID(l_linenumber);
-create index idx_LineID_suppkey on LineID(l_suppkey);
-
-insert into dataset LineID (
-for $l in dataset('LineItem')
- where $l.l_orderkey<10
- return {
- "l_orderkey": $l.l_orderkey,
- "l_partkey": $l.l_linenumber,
- "l_suppkey": $l.l_partkey
- }
-);
-
-write output to nc1:"rttest/dml_insert-with-index.adm";
-for $c in dataset('LineID')
-where $c.l_suppkey < 100 and $c.l_linenumber<5
-order by $c.l_orderkey, $c.l_linenumber
-return $c
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql
deleted file mode 100644
index 2123aa8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql
+++ /dev/null
@@ -1,62 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type LineIDType as closed {
- l_orderkey: int32,
- l_linenumber: int32,
- l_suppkey: int32
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-create dataset LineID(LineIDType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset LineID
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-insert into dataset LineID (
-for $l in dataset('LineItem')
- where $l.l_orderkey<10
- return {
- "l_orderkey": $l.l_orderkey,
- "l_partkey": $l.l_linenumber,
- "l_suppkey": $l.l_partkey
- }
-);
-
-write output to nc1:"rttest/dml_insert.adm";
-for $c in dataset('LineID')
-order by $c.l_orderkey, $c.l_linenumber
-return $c
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.1.ddl.aql
new file mode 100644
index 0000000..5f645cc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.1.ddl.aql
@@ -0,0 +1,36 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.2.update.aql
new file mode 100644
index 0000000..a2702a6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.2.update.aql
@@ -0,0 +1,21 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+
+insert into dataset LineID (
+for $l in dataset('LineItem')
+ where $l.l_orderkey<10
+ return {
+ "l_orderkey": $l.l_orderkey,
+ "l_linenumber": $l.l_linenumber,
+ "l_suppkey": $l.l_partkey
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.3.query.aql
new file mode 100644
index 0000000..ee28306
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert/insert.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql
deleted file mode 100644
index 80cb4f5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql
+++ /dev/null
@@ -1,62 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type LineIDType as closed {
- l_orderkey: int32,
- l_linenumber: int32,
- l_suppkey: int32
-}
-
-create nodegroup group1nc2 if not exists on nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1nc2;
-
-create dataset LineID(LineIDType)
- partitioned by key l_orderkey, l_linenumber on group1nc2;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset LineID
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-insert into dataset LineID (
-for $l in dataset('LineItem')
- where $l.l_orderkey<1000
- return {
- "l_orderkey": $l.l_orderkey,
- "l_partkey": $l.l_linenumber,
- "l_suppkey": $l.l_partkey
- }
-);
-
-write output to nc1:"rttest/dml_insert_less_nc.adm";
-for $c in dataset('LineID')
-order by $c.l_orderkey, $c.l_linenumber
-return $c
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.1.ddl.aql
new file mode 100644
index 0000000..5f645cc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.1.ddl.aql
@@ -0,0 +1,36 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.2.update.aql
new file mode 100644
index 0000000..3cdf230
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.2.update.aql
@@ -0,0 +1,20 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+insert into dataset LineID (
+for $l in dataset('LineItem')
+ where $l.l_orderkey<1000
+ return {
+ "l_orderkey": $l.l_orderkey,
+ "l_linenumber": $l.l_linenumber,
+ "l_suppkey": $l.l_partkey
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.3.query.aql
new file mode 100644
index 0000000..ee28306
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc/insert_less_nc.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.1.ddl.aql
new file mode 100644
index 0000000..d2dd520
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.1.ddl.aql
@@ -0,0 +1,26 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.2.update.aql
new file mode 100644
index 0000000..82c420d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.2.update.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.HDFSAdapter"
+(("hdfs"="hdfs://localhost:10009"),("path"="/tpch/lineitem.tbl"),
+("input-format"="text-input-format"),("format"="delimited-text"),("delimiter"="|"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.3.query.aql
new file mode 100644
index 0000000..d0f4290b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs/load-from-hdfs.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.1.ddl.aql
new file mode 100644
index 0000000..e2cd108
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.1.ddl.aql
@@ -0,0 +1,29 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create index idx_partkey on LineItem(l_partkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.2.update.aql
new file mode 100644
index 0000000..169c6dc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.3.query.aql
new file mode 100644
index 0000000..862edf6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index/load-with-index.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+where $c.l_partkey = 100
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.1.ddl.aql
new file mode 100644
index 0000000..2abca81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.1.ddl.aql
@@ -0,0 +1,36 @@
+/*
+ * Test case Name : opentype-o2c-recursive.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type AddressType as open{
+ street: string,
+ city: string
+}
+create type Dept as open{
+ name: string,
+ id: int32
+}
+
+create type testtype as closed {
+ name: string,
+ id: string,
+ address: AddressType?,
+ department: {{Dept}}?
+}
+
+create type testtype2 as open {
+ name: string,
+ id: string
+}
+
+create dataset testds(testtype) primary key id;
+
+create dataset testds2(testtype2) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.2.update.aql
new file mode 100644
index 0000000..0fcffa7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.2.update.aql
@@ -0,0 +1,29 @@
+/*
+ * Test case Name : opentype-o2c-recursive.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": "001", "name": "Person One", "address": {"street": "3019 DBH", "city": "Irvine", "zip": 92697}, "department": {{ {"name":"CS", "id":299, "review":5}, {"name":"EE", "id":399} }} }
+);
+
+insert into dataset testds (
+{ "id": "002", "name": "Person Two" }
+);
+
+insert into dataset testds (
+{ "id": "003", "name": "Person Three", "address": {"street": "2019 DBH", "city": "Irvine"} }
+);
+
+insert into dataset testds (
+{ "id": "004", "name": "Person Four", "address": {"street": "1019 DBH", "city": "irvine", "property": {"zip": 92697, "review": "positive" } } }
+);
+
+insert into dataset testds2 (
+ for $d in dataset("testds")
+ return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.3.query.aql
new file mode 100644
index 0000000..66613eb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o-recursive/opentype-c2o-recursive.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : opentype-o2c-recursive.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.1.ddl.aql
new file mode 100644
index 0000000..4af3fcd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Test case Name : opentype-c2o.aql
+ * Description : read data from a closed type dataset into a open type dataset and verify if
+ * records can be casted to the target open type
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype as closed {
+ id: string,
+ name: string,
+ hobby: {{string}}?
+}
+
+/*
+* name and hobby from the closed dataset will
+* become open fields, and hobby can be null
+*/
+create type testtype2 as open {
+ id: string
+}
+
+create dataset testds(testtype) primary key id;
+
+create dataset testds2(testtype2) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.2.update.aql
new file mode 100644
index 0000000..7ef3e8e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.2.update.aql
@@ -0,0 +1,34 @@
+/*
+ * Test case Name : opentype-c2o.aql
+ * Description : read data from a closed type dataset into a open type dataset and verify if
+ * records can be casted to the target open type
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "hobby": {{"music", "coding"}}, "id": "001", "name": "Person Three"}
+);
+
+insert into dataset testds (
+{ "name": "Person One", "id": "002", "hobby": {{"sports"}} }
+);
+
+insert into dataset testds (
+{ "id": "003", "hobby": {{"movie", "sports"}}, "name": "Person Two"}
+);
+
+insert into dataset testds (
+{ "id": "004", "name": "Person Four", "hobby": {{"swimming"}} }
+);
+
+insert into dataset testds (
+{ "name": "Person Five", "id": "005"}
+);
+
+insert into dataset testds2 (
+ for $d in dataset("testds")
+ return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.3.query.aql
new file mode 100644
index 0000000..d866300
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-c2o/opentype-c2o.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : opentype-c2o.aql
+ * Description : read data from a closed type dataset into a open type dataset and verify if
+ * records can be casted to the target open type
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.1.ddl.aql
new file mode 100644
index 0000000..7684396
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.1.ddl.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : opentype-closed-optional.aql
+ * Description : verify that closed type can have optional fields
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype as closed {
+ name: string?,
+ id: string
+}
+
+create dataset testds(testtype) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.2.update.aql
new file mode 100644
index 0000000..83c5d1a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Test case Name : opentype-closed-optional.aql
+ * Description : verify that closed type can have optional fields
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": "001", "name": "Person One"}
+);
+
+insert into dataset testds (
+{ "id": "002"}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.3.query.aql
new file mode 100644
index 0000000..4807bc6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-closed-optional/opentype-closed-optional.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : opentype-closed-optional.aql
+ * Description : verify that closed type can have optional fields
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.1.ddl.aql
new file mode 100644
index 0000000..dca5d7e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.1.ddl.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : opentype-insert.aql
+ * Description : verify static type casting
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype as open {
+ id: string,
+ name: string
+}
+
+create dataset testds(testtype) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.2.update.aql
new file mode 100644
index 0000000..2ac8eed
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : opentype-insert.aql
+ * Description : verify static type casting
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+ insert into dataset testds (
+ { "id": "001", "name": "Person Three", "hobbies": {{"scuba", "music"}}}
+ );
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.3.query.aql
new file mode 100644
index 0000000..3e16526
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert/opentype-insert.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : opentype-insert.aql
+ * Description : verify static type casting
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds")
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.1.ddl.aql
new file mode 100644
index 0000000..aa70a99
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Test case Name : opentype-insert2.aql
+ * Description : verify that the case where SetClosedRecordRule should not rewrite
+ * the plan to use closed-record-descriptor
+ * Expected Result : Success
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+ id:int32
+}
+
+create dataset testds(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.2.update.aql
new file mode 100644
index 0000000..ec357bf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : opentype-insert2.aql
+ * Description : verify that the case where SetClosedRecordRule should not rewrite
+ * the plan to use closed-record-descriptor
+ * Expected Result : Success
+ */
+
+use dataverse test;
+
+insert into dataset testds( for $i in range(1,10) return { "id":$i,"name":"John Doe" });
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.3.query.aql
new file mode 100644
index 0000000..dd14e87
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2/opentype-insert2.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : opentype-insert2.aql
+ * Description : verify that the case where SetClosedRecordRule should not rewrite
+ * the plan to use closed-record-descriptor
+ * Expected Result : Success
+ */
+
+use dataverse test;
+
+for $l in dataset('testds')
+order by $l.id
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.1.ddl.aql
new file mode 100644
index 0000000..55f2cf7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Test case Name : opentype-noexpand.aql
+ * Description : verify that open type dataset can have records without open fields
+ * verify the bag-based fields
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype as open {
+ name: string?,
+ id: string
+}
+
+create dataset testds(testtype) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.2.update.aql
new file mode 100644
index 0000000..748ab7c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : opentype-noexpand.aql
+ * Description : verify that open type dataset can have records without open fields
+ * verify the bag-based fields
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": "001", "name": "Person One"}
+);
+
+insert into dataset testds (
+{ "id": "002"}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.3.query.aql
new file mode 100644
index 0000000..7ed01bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-noexpand/opentype-noexpand.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : opentype-noexpand.aql
+ * Description : verify that open type dataset can have records without open fields
+ * verify the bag-based fields
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.1.ddl.aql
new file mode 100644
index 0000000..0ca863f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.1.ddl.aql
@@ -0,0 +1,37 @@
+/*
+ * Test case Name : opentype-o2c-recursive.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type AddressType as open{
+ street: string,
+ city: string
+}
+
+create type Dept as closed{
+ name: string,
+ id: int32
+}
+
+create type testtype as open {
+ name: string,
+ id: string
+}
+
+create type testtype2 as closed {
+ name: string,
+ id: string,
+ address: AddressType?,
+ department: {{Dept}}?
+}
+
+create dataset testds(testtype) primary key id;
+
+create dataset testds2(testtype2) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.2.update.aql
new file mode 100644
index 0000000..62895ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.2.update.aql
@@ -0,0 +1,29 @@
+/*
+ * Test case Name : opentype-o2c-recursive.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": "001", "name": "Person One", "address": {"street": "3019 DBH", "city": "Irvine", "zip": 92697}, "department": {{ {"name":"CS", "id":299}, {"name":"EE", "id":399} }} }
+);
+
+insert into dataset testds (
+{ "id": "002", "name": "Person Two" }
+);
+
+insert into dataset testds (
+{ "id": "003", "name": "Person Three", "address": {"street": "2019 DBH", "city": "Irvine"} }
+);
+
+insert into dataset testds (
+{ "id": "004", "name": "Person Four", "address": {"street": "1019 DBH", "city": "irvine", "property": {"zip": 92697, "review": "positive" } } }
+);
+
+insert into dataset testds2 (
+ for $d in dataset("testds")
+ return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.3.query.aql
new file mode 100644
index 0000000..66613eb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c-recursive/opentype-o2c-recursive.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : opentype-o2c-recursive.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.1.ddl.aql
new file mode 100644
index 0000000..d1dfd51
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.1.ddl.aql
@@ -0,0 +1,28 @@
+/*
+ * Test case Name : opentype-o2c.aql
+ * Description : verify that open records can be inserted into a closed dataset
+ * verify missing optional fields in the closed part of the target closed dataset are allowed
+ * Expected Result : Success
+ */
+
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype as open {
+ id: string,
+ name: string
+}
+
+create type testtype2 as closed {
+ hobby: {{string}}?,
+ id: string,
+ name: string
+}
+
+create dataset testds(testtype) primary key id;
+
+create dataset testds2(testtype2) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.2.update.aql
new file mode 100644
index 0000000..ea05185
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.2.update.aql
@@ -0,0 +1,34 @@
+/*
+ * Test case Name : opentype-o2c.aql
+ * Description : verify that open records can be inserted into a closed dataset
+ * verify missing optional fields in the closed part of the target closed dataset are allowed
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": "001", "hobby": {{"music"}}, "name": "Person Three"}
+);
+
+insert into dataset testds (
+{ "id": "002", "name": "Person Three", "hobby": {{"football"}}}
+);
+
+insert into dataset testds (
+{ "id": "003", "name": "Person Three", "hobby": {{"movie", "coding", "debugging"}}}
+);
+
+insert into dataset testds (
+{ "name": "Person Three", "hobby": {{"swimming", "music"}}, "id": "004"}
+);
+
+insert into dataset testds (
+{ "id": "005", "name": "Person Five"}
+);
+
+insert into dataset testds2 (
+ for $d in dataset("testds")
+ return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.3.query.aql
new file mode 100644
index 0000000..2b74737
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2c/opentype-o2c.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : opentype-o2c.aql
+ * Description : verify that open records can be inserted into a closed dataset
+ * verify missing optional fields in the closed part of the target closed dataset are allowed
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.1.ddl.aql
new file mode 100644
index 0000000..aac8e02
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.1.ddl.aql
@@ -0,0 +1,28 @@
+/*
+ * Test case Name : opentype-o2o.aql
+ * Description : verify that the dynamic type cast from one open type to another compatible open type
+ * verify the bag-based fields
+ * Expected Result : Success
+ */
+
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype as open {
+ name: string,
+ id: string
+}
+
+create type testtype2 as open {
+ id: string,
+ name: string,
+ hobby: string
+}
+
+create dataset testds(testtype) primary key id;
+
+create dataset testds2(testtype2) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.2.update.aql
new file mode 100644
index 0000000..33290c6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.2.update.aql
@@ -0,0 +1,31 @@
+/*
+ * Test case Name : opentype-o2o.aql
+ * Description : verify that the dynamic type cast from one open type to another compatible open type
+ * verify the bag-based fields
+ * Expected Result : Success
+ */
+
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "name": "Person One", "id": "001", "hobby": "music"}
+);
+
+insert into dataset testds (
+{ "hobby": "football", "city":"irvine", "name": "Person Two", "id": "002"}
+);
+
+insert into dataset testds (
+{ "name": "Person Three", "id": "003", "hobby": "movie"}
+);
+
+insert into dataset testds (
+{ "hobby": "swimming", "name": "Person Four", "id": "004", "phone":"102-304-506"}
+);
+
+insert into dataset testds2 (
+ for $d in dataset("testds")
+ return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.3.query.aql
new file mode 100644
index 0000000..2bed855
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-o2o/opentype-o2o.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : opentype-o2o.aql
+ * Description : verify that the dynamic type cast from one open type to another compatible open type
+ * verify the bag-based fields
+ * Expected Result : Success
+ */
+
+
+use dataverse testdv2;
+
+for $d in dataset("testds2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.1.ddl.aql
new file mode 100644
index 0000000..dfb68c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+ * Description : This test case is to verify the fix for issue205
+ : https://code.google.com/p/asterixdb/issues/detail?id=205
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type EmployeeStat as open {
+ age: int32,
+ salary:int32
+}
+
+create type EmployeeType as closed {
+ id:string,
+ stat:EmployeeStat,
+ deptCode:int32
+}
+
+create dataset Employees(EmployeeType)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.2.update.aql
new file mode 100644
index 0000000..43ef565
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.2.update.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : This test case is to verify the fix for issue205
+ : https://code.google.com/p/asterixdb/issues/detail?id=205
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+use dataverse test;
+
+insert into dataset Employees({"id":"1234", "stat":{ "age":50, "salary":120000}, "deptCode":32 });
+insert into dataset Employees({"id":"5678", "stat":{ "age":40, "salary":100000}, "deptCode":16 });
+
+delete $l from dataset Employees where $l.id = "1234";
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.3.query.aql
new file mode 100644
index 0000000..3a50569
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue205/query-issue205.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : This test case is to verify the fix for issue205
+ : https://code.google.com/p/asterixdb/issues/detail?id=205
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('Employees')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.1.ddl.aql
new file mode 100644
index 0000000..0f548a1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Description : This test case is to verify the fix for issue288
+ : https://code.google.com/p/asterixdb/issues/detail?id=288
+ * Expected Res : Success
+ * Date : 3th April 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
+create dataset LineID2(LineIDType)
+ primary key l_orderkey, l_linenumber;
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.2.update.aql
new file mode 100644
index 0000000..181085f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.2.update.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : This test case is to verify the fix for issue288
+ : https://code.google.com/p/asterixdb/issues/detail?id=288
+ * Expected Res : Success
+ * Date : 3th April 2013
+ */
+
+use dataverse test;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+
+insert into dataset LineID (
+let $x:=1
+let $y:=2
+let $z:=3
+return {
+ "l_orderkey": $x,
+ "l_linenumber": $y,
+ "l_suppkey": $z
+}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.3.ddl.aql
new file mode 100644
index 0000000..c3a2bef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : This test case is to verify the fix for issue288
+ : https://code.google.com/p/asterixdb/issues/detail?id=288
+ * Expected Res : Success
+ * Date : 3th April 2013
+ */
+use dataverse test;
+
+create index idx_LineID_1 on LineID(l_linenumber);
+create index idx_LineID_2 on LineID2(l_linenumber);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.4.update.aql
new file mode 100644
index 0000000..2ae4ba0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.4.update.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : This test case is to verify the fix for issue288
+ : https://code.google.com/p/asterixdb/issues/detail?id=288
+ * Expected Res : Success
+ * Date : 3th April 2013
+ */
+
+use dataverse test;
+
+insert into dataset LineID2
+(
+ for $r in dataset('LineID')
+ return $r
+);
+
+// If we replace the insert statement with this, it will work
+/* insert into dataset LineID2
+(
+ for $r in dataset('LineID')
+ return {
+"l_orderkey": $r.l_orderkey,
+"l_linenumber": $r.l_linenumber,
+"l_suppkey": $r.l_suppkey}
+);
+*/
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.5.query.aql
new file mode 100644
index 0000000..a1196bd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/query-issue288/query-issue288.5.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : This test case is to verify the fix for issue288
+ : https://code.google.com/p/asterixdb/issues/detail?id=288
+ * Expected Res : Success
+ * Date : 3th April 2013
+ */
+
+use dataverse test;
+
+for $c in dataset('LineID2')
+where $c.l_linenumber=2
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..cc50d0d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Test case Name : scan-delete-btree-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary btree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..83d6233
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.2.update.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-btree-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary btree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..5e2f2e3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+create index age_index on Customers(age);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..6c6f4a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.4.update.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+delete $c from dataset Customers where $c.cid>=200;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..457e5ed
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-btree-secondary-index-nullable/scan-delete-btree-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-btree-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary btree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+for $c in dataset('Customers')
+where $c.age < 20
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..d00347d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..1d5d4fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..a79828c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_ngram_index on DBLP(title) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..7e917b5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id>50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..c1c6247
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..e98b328
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.2.update.aql
new file mode 100644
index 0000000..381ce87
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..ede69f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_ngram_index on DBLP(title) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.4.update.aql
new file mode 100644
index 0000000..9c58c7e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id>50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.5.query.aql
new file mode 100644
index 0000000..ca070fc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-ngram-secondary-index/scan-delete-inverted-index-fuzzy-ngram-secondary-index.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..45570ac
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..d26c270
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..3747bb1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_keyword_index on DBLP(title) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..eb15450
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id<50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..c1fb278
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable/scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..9d04c14
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.2.update.aql
new file mode 100644
index 0000000..a5995f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..97aef53
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_keyword_index on DBLP(title) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.4.update.aql
new file mode 100644
index 0000000..001e605
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id<50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.5.query.aql
new file mode 100644
index 0000000..7910859
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-fuzzy-word-secondary-index/scan-delete-inverted-index-fuzzy-word-secondary-index.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-delete-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..370ac1c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..a0c9b77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..81104ce
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..68fc68b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id>50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..cc3c827
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..e6f184c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.2.update.aql
new file mode 100644
index 0000000..5257ea5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..127c55d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.4.update.aql
new file mode 100644
index 0000000..6a87cc9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id>50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.query.aql
new file mode 100644
index 0000000..5650a21
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..36b3d31
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,22 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..e66540c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..98ccfea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..0116a0a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id<50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..979fb45
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..5332316
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.2.update.aql
new file mode 100644
index 0000000..95fd5e8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..3481942
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.4.update.aql
new file mode 100644
index 0000000..d480735
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.4.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+delete $o from dataset DBLP where $o.id<50;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.query.aql
new file mode 100644
index 0000000..39603e7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-delete-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test deletion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..b3124f7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+ * Test case Name : scan-delete-rtree-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary rtree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point?,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..8676d7e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.2.update.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-rtree-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary rtree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialDataNulls.json"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..1fc9251
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+create index rtree_index_point on MyData(point) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..8e4de85
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.4.update.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+delete $m from dataset MyData where $m.id>10;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..e453b2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-rtree-secondary-index-nullable.aql
+ * Description : This test is intended to test deletion from secondary rtree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql
deleted file mode 100644
index bb2f934..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql
+++ /dev/null
@@ -1,34 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as closed {
- id: int32,
- point: point,
- kwds: string,
- line1: line,
- line2: line,
- poly1: polygon,
- poly2: polygon,
- rec: rectangle
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset MyData(MyRecord)
- partitioned by key id on group1;
-
-load dataset MyData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
-
-create index rtree_index_point on MyData(point) type rtree;
-
-delete $m from dataset MyData where $m.id>10;
-
-write output to nc1:"rttest/dml_scan-delete-rtree-secondary-index.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
-order by $o.id
-return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..4cd746b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle,
+ circle: circle
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.2.update.aql
new file mode 100644
index 0000000..2c4c9ed
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..1fc9251
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.3.ddl.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+create index rtree_index_point on MyData(point) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.4.update.aql
new file mode 100644
index 0000000..8e4de85
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.4.update.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+delete $m from dataset MyData where $m.id>10;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.query.aql
new file mode 100644
index 0000000..5b8dbf7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..0114f45
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Test case Name : scan-delete-btree-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion into secondary btree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+create dataset CustomersMini(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..ff4c09b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.2.update.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-delete-btree-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion into secondary btree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..84ad3b9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+create index age_index on CustomersMini(age);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..e518fca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.4.update.aql
@@ -0,0 +1,16 @@
+use dataverse test;
+
+insert into dataset CustomersMini
+(
+ for $c in dataset('Customers')
+ where $c.cid < 200
+ return {
+ "cid": $c.cid,
+ "name": $c.name,
+ "age": $c.age,
+ "address": $c.address,
+ "interests": $c.interests,
+ "children": $c.children
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..e496b10
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-btree-secondary-index-nullable/scan-insert-btree-secondary-index-nullable.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-delete-btree-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion into secondary btree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+
+use dataverse test;
+
+for $c in dataset('CustomersMini')
+where $c.age < 20
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..21ff64a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..9108ad6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..426654c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_ngram_index on DBLP(title) type fuzzy ngram(3);
+create index fuzzy_ngram_index1 on DBLP1(title) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..2fe30df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.4.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..f61df2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable/scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..af890c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.2.update.aql
new file mode 100644
index 0000000..382a4a6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..8109213
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_ngram_index on DBLP(title) type fuzzy ngram(3);
+create index fuzzy_ngram_index1 on DBLP1(title) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.4.update.aql
new file mode 100644
index 0000000..b829b15
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.4.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.5.query.aql
new file mode 100644
index 0000000..324b351
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-ngram-secondary-index/scan-insert-inverted-index-fuzzy-ngram-secondary-index.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..7dbf7ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..1d8126f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..798622a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_keyword_index on DBLP(title) type fuzzy keyword;
+create index fuzzy_keyword_index1 on DBLP1(title) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..3234c4e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.4.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..43ad95c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable/scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..5dd6f1a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.2.update.aql
new file mode 100644
index 0000000..25e9446
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..f43c5cf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index fuzzy_keyword_index on DBLP(title) type fuzzy keyword;
+create index fuzzy_keyword_index1 on DBLP1(title) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.4.update.aql
new file mode 100644
index 0000000..b8a1af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.4.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.5.query.aql
new file mode 100644
index 0000000..0fe611a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-fuzzy-word-secondary-index/scan-insert-inverted-index-fuzzy-word-secondary-index.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-insert-inverted-index-fuzzy-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary fuzzy keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..5f82843
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..bde4abd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..23a302b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
+create index ngram_index1 on DBLP1(title) type ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..ccef47a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.4.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..ec2c974
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..eee618b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.2.update.aql
new file mode 100644
index 0000000..a22b722
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..d40a27b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
+create index ngram_index1 on DBLP1(title) type ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.4.update.aql
new file mode 100644
index 0000000..3d81edf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.4.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.query.aql
new file mode 100644
index 0000000..bd9eb2b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..bafad5b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string?,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..e3f0c6f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-nulls.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..64d07c0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+create index keyword_index1 on DBLP1(title) type keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..b2f265fb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.4.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..10bff06
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..642a0c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset DBLP1(DBLPType) primary key id;
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.2.update.aql
new file mode 100644
index 0000000..c51f848
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+load dataset DBLP using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..ac90624
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+create index keyword_index1 on DBLP1(title) type keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.4.update.aql
new file mode 100644
index 0000000..57ce169
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.4.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+insert into dataset DBLP1 (
+for $o in dataset('DBLP')
+order by $o.id
+return {
+ "id": $o.id,
+ "dblpid": $o.dblpid,
+ "title": $o.title,
+ "authors": $o.authors,
+ "misc": $o.misc
+ }
+);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.query.aql
new file mode 100644
index 0000000..73fc519
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : scan-insert-inverted-index-word-secondary-index.aql
+ * Description : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date : March 31 2013
+ */
+
+use dataverse test;
+
+for $o in dataset('DBLP1')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..6057269
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Test case Name : scan-insert-rtree-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion into secondary rtree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point?,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle
+}
+
+create type MyMiniRecord as closed {
+ id: int32,
+ point: point?
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..1607359
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.2.update.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-insert-rtree-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion into secondary rtree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialDataNulls.json"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..90716cf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+create dataset MyMiniData(MyMiniRecord)
+ primary key id;
+
+create index rtree_index_point on MyMiniData(point) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.4.update.aql
new file mode 100644
index 0000000..524df93
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.4.update.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+insert into dataset MyMiniData
+(
+ for $m in dataset('MyData')
+ return {
+ "id": $m.id,
+ "point": $m.point
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.query.aql
new file mode 100644
index 0000000..d3e9cbb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : scan-insert-rtree-secondary-index-nullable.aql
+ * Description : This test is intended to test insertion into secondary rtree indexes that are built on nullable fields
+ * Expected Result : Success
+ * Date : May 12 2012
+ */
+
+use dataverse test;
+
+for $o in dataset('MyMiniData')
+where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql
deleted file mode 100644
index fe9c017..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql
+++ /dev/null
@@ -1,55 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as closed {
- id: int32,
- point: point,
- kwds: string,
- line1: line,
- line2: line,
- poly1: polygon,
- poly2: polygon,
- rec: rectangle
-}
-
-create type MyMiniRecord as closed {
- id: int32,
- point: point
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset MyData(MyRecord)
- partitioned by key id on group1;
-
-load dataset MyData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
-
-
-create dataset MyMiniData(MyMiniRecord)
- partitioned by key id on group1;
-
-load dataset MyMiniData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData0.json"),("format"="adm")) pre-sorted;
-
-create index rtree_index_point_0 on MyData(point) type rtree;
-create index rtree_index_point on MyMiniData(point) type rtree;
-
-insert into dataset MyMiniData
-(
- for $m in dataset('MyData')
- return {
- "id": $m.id,
- "point": $m.point
- }
-);
-
-write output to nc1:"rttest/dml_scan-insert-rtree-secondary-index.adm";
-
-for $o in dataset('MyMiniData')
-where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
-order by $o.id
-return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..58765cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.ddl.aql
@@ -0,0 +1,28 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle,
+ circle: circle
+}
+
+create type MyMiniRecord as closed {
+ id: int32,
+ point: point
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
+create dataset MyMiniData(MyMiniRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.2.update.aql
new file mode 100644
index 0000000..1102fbd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
+
+load dataset MyMiniData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData0.json"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..ab9a3f4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.3.ddl.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+create index rtree_index_point_0 on MyData(point) type rtree;
+create index rtree_index_point on MyMiniData(point) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.4.update.aql
new file mode 100644
index 0000000..524df93
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.4.update.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+insert into dataset MyMiniData
+(
+ for $m in dataset('MyData')
+ return {
+ "id": $m.id,
+ "point": $m.point
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.query.aql
new file mode 100644
index 0000000..412f7da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyMiniData')
+where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_01.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_01.aql
deleted file mode 100644
index 7c1df0f9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/q_01.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
- id: int32,
- name: string,
- address: {
- number: int32,
- street: string,
- city: string
- },
- age: int32?,
- interests: {{string}}?,
- children: [string]?
-}
-
-create external dataset Emp(EmpType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-
-write output to nc1:"rttest/employee_q_01.adm";
-
-for $e in dataset('Emp')
-return $e
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.1.ddl.aql
new file mode 100644
index 0000000..c7c784f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type EmpType as open {
+ id: int32,
+ name: string,
+ address: {
+ number: int32,
+ street: string,
+ city: string
+ },
+ age: int32?,
+ interests: {{string}}?,
+ children: [string]?
+}
+
+create external dataset Emp(EmpType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.3.query.aql
new file mode 100644
index 0000000..c640a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/employee/q_01/q_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $e in dataset('Emp')
+return $e
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_02.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_02.aql
deleted file mode 100644
index 7cb1ee9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/q_02.aql
+++ /dev/null
@@ -1,28 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
- id: int32,
- name: string,
- address: {
- number: int32,
- street: string,
- city: string
- },
- age: int32?,
- interests: {{string}}?,
- children: [string]?
-}
-
-create external dataset Emp(EmpType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-
-write output to nc1:"rttest/employee_q_02.adm";
-
-for $e in dataset('Emp')
-let $m := [{"EmpName": $e.name, "parent_interest_1": $e.interests[?], "child1Name": $e.children[?], "child2Name": $e.children[1]}]
-return $m
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.1.ddl.aql
new file mode 100644
index 0000000..5066a4f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.1.ddl.aql
@@ -0,0 +1,22 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type EmpType as open {
+ id: int32,
+ name: string,
+ address: {
+ number: int32,
+ street: string,
+ city: string
+ },
+ age: int32?,
+ interests: {{string}}?,
+ children: [string]?
+}
+
+create external dataset Emp(EmpType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.3.query.aql
new file mode 100644
index 0000000..454e236
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/employee/q_02/q_02.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $e in dataset('Emp')
+let $m := [{"EmpName": $e.name, "parent_interest_1": $e.interests[?], "child1Name": $e.children[?], "child2Name": $e.children[1]}]
+return $m
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql
index 0ad2dde..85616e4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql
@@ -11,21 +11,20 @@
text: string
}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
create dataset MyData(MyRecord)
- partitioned by key id on group1;
+ primary key id;
+
+create index rtree_index on MyData(loc) type rtree;
load dataset MyData
using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
(("path"="nc1://data/twitter/smalltweets.txt"),("format"="adm")) pre-sorted;
-
-delete $l from dataset MyData where $l.id>=50 die after 1500;
+delete $l from dataset MyData where spatial-intersect($l.loc, create-rectangle(create-point(0.0,-100.0), create-point(55.5,50.0))) die after 1000;
write output to nc1:"rttest/failure_delete-rtree.adm";
for $o in dataset('MyData')
+where spatial-intersect($o.loc, create-rectangle(create-point(0.0,-100.0), create-point(55.5,50.0)))
order by $o.id
return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.1.ddl.aql
new file mode 100644
index 0000000..d8ab247
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ tweetid: int64,
+ loc: point,
+ time: datetime,
+ text: string
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.2.update.aql
new file mode 100644
index 0000000..3556905
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.2.update.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/smalltweets.txt"),("format"="adm")) pre-sorted;
+
+delete $l from dataset MyData where $l.id>=50 die after 1500;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.3.query.aql
new file mode 100644
index 0000000..b33019b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree/delete-rtree.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql
index cb51030..125fd99 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql
@@ -22,17 +22,14 @@
l_comment: string
}
-create nodegroup group1 if not exists on nc1, nc2;
-
create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
+ primary key l_orderkey, l_linenumber;
load dataset LineItem
using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-delete $l from dataset LineItem where $l.l_orderkey>=10 die after 1500;
+delete $l from dataset LineItem where $l.l_orderkey>=10 die after 1000;
write output to nc1:"rttest/failure_delete.adm";
for $c in dataset('LineItem')
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.1.ddl.aql
new file mode 100644
index 0000000..ea29045
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.1.ddl.aql
@@ -0,0 +1,28 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.2.update.aql
new file mode 100644
index 0000000..ac2bd60
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.2.update.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+delete $l from dataset LineItem where $l.l_orderkey>=10 die after 1500;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.3.query.aql
new file mode 100644
index 0000000..9375d30
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete/delete.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+where $c.l_orderkey>=10
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql
deleted file mode 100644
index ca4e910..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql
+++ /dev/null
@@ -1,65 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as closed {
- id: int32,
- tweetid: int64,
- loc: point,
- time: datetime,
- text: string
-}
-
-create type MyMiniRecord as closed {
- id: int32,
- loc: point
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset MyData(MyRecord)
- partitioned by key id on group1;
-
-load dataset MyData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/twitter/smalltweets.txt"),("format"="adm")) pre-sorted;
-
-
-create dataset MyMiniData(MyMiniRecord)
- partitioned by key id on group1;
-
-load dataset MyMiniData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData0.json"),("format"="adm")) pre-sorted;
-
-
-create index rtree_index_loc_0 on MyData(loc) type rtree;
-create index rtree_index_loc on MyMiniData(loc) type rtree;
-
-insert into dataset MyMiniData
-(
- for $m in dataset('MyData')
- where $m.id<1000
- return {
- "id": $m.id,
- "loc": $m.loc
- }
-);
-
-insert into dataset MyMiniData
-(
- for $m in dataset('MyData')
- where $m.id>=1000
- die after 1000
- return {
- "id": $m.id,
- "loc": $m.loc
- }
-);
-
-write output to nc1:"rttest/failure_insert-rtree.adm";
-
-for $o in dataset('MyMiniData')
-order by $o.id
-return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.1.ddl.aql
new file mode 100644
index 0000000..0cb052d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ tweetid: int64,
+ loc: point,
+ time: datetime,
+ text: string
+}
+
+create type MyMiniRecord as closed {
+ id: int32,
+ loc: point
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
+create dataset MyMiniData(MyMiniRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.2.update.aql
new file mode 100644
index 0000000..bffd599
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.2.update.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/smalltweets.txt"),("format"="adm")) pre-sorted;
+
+
+load dataset MyMiniData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData0.json"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.3.ddl.aql
new file mode 100644
index 0000000..3626933
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.3.ddl.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+create index rtree_index_loc_0 on MyData(loc) type rtree;
+create index rtree_index_loc on MyMiniData(loc) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.4.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.4.update.aql
new file mode 100644
index 0000000..5874119
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.4.update.aql
@@ -0,0 +1,23 @@
+use dataverse test;
+
+insert into dataset MyMiniData
+(
+ for $m in dataset('MyData')
+ where $m.id<1000
+ return {
+ "id": $m.id,
+ "loc": $m.loc
+ }
+);
+
+insert into dataset MyMiniData
+(
+ for $m in dataset('MyData')
+ where $m.id>=1000
+ die after 1000
+ return {
+ "id": $m.id,
+ "loc": $m.loc
+ }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.5.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.5.query.aql
new file mode 100644
index 0000000..6c75ca2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree/insert-rtree.5.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $o in dataset('MyMiniData')
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql
deleted file mode 100644
index 570f4bc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql
+++ /dev/null
@@ -1,72 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type LineIDType as closed {
- l_orderkey: int32,
- l_linenumber: int32,
- l_suppkey: int32
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-create dataset LineID(LineIDType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset LineID
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-insert into dataset LineID (
-for $l in dataset('LineItem')
- where $l.l_orderkey<1000
- return {
- "l_orderkey": $l.l_orderkey,
- "l_partkey": $l.l_linenumber,
- "l_suppkey": $l.l_partkey
- }
-);
-
-insert into dataset LineID (
-for $l in dataset('LineItem')
- where $l.l_orderkey>=1000
- die after 1000
- return {
- "l_orderkey": $l.l_orderkey,
- "l_partkey": $l.l_linenumber,
- "l_suppkey": $l.l_partkey
- }
-);
-
-write output to nc1:"rttest/failure_insert.adm";
-for $c in dataset('LineID')
-order by $c.l_orderkey, $c.l_linenumber
-return $c
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.1.ddl.aql
new file mode 100644
index 0000000..7f5844e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.1.ddl.aql
@@ -0,0 +1,37 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type LineIDType as closed {
+ l_orderkey: int32,
+ l_linenumber: int32,
+ l_suppkey: int32
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
+create dataset LineID(LineIDType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.2.update.aql
new file mode 100644
index 0000000..a1bfc0d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.2.update.aql
@@ -0,0 +1,32 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineID
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+insert into dataset LineID (
+for $l in dataset('LineItem')
+ where $l.l_orderkey<1000
+ return {
+ "l_orderkey": $l.l_orderkey,
+ "l_linenumber": $l.l_linenumber,
+ "l_suppkey": $l.l_partkey
+ }
+);
+
+insert into dataset LineID (
+for $l in dataset('LineItem')
+ where $l.l_orderkey>=1000
+ die after 1000
+ return {
+ "l_orderkey": $l.l_orderkey,
+ "l_linenumber": $l.l_linenumber,
+ "l_suppkey": $l.l_partkey
+ }
+);
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.3.query.aql
new file mode 100644
index 0000000..4a3e056
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert/insert.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql
deleted file mode 100644
index def6e9a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql
+++ /dev/null
@@ -1,55 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/failure_q1_pricing_summary_report_failure.adm";
-
-for $l in dataset('LineItem')
-//where inject-failure($l.l_shipdate <= '1998-09-02', $l.l_orderkey=5999)
-/*+ hash*/
-group by $l_returnflag := $l.l_returnflag, $l_linestatus := $l.l_linestatus
- with $l
-order by $l_returnflag, $l_linestatus
-return {
- "l_returnflag": $l_returnflag,
- "l_linestatus": $l_linestatus,
- "sum_qty": sum(for $i in $l return $i.l_quantity),
- "sum_base_price": sum(for $i in $l return $i.l_extendedprice),
- "sum_disc_price": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount)),
- "sum_charge": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount) * (1 + $i.l_tax)),
- "ave_qty": avg(for $i in $l return $i.l_quantity),
- "ave_price": avg(for $i in $l return $i.l_extendedprice),
- "ave_disc": avg(for $i in $l return $i.l_discount),
- "count_order": count($l)
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.1.ddl.aql
new file mode 100644
index 0000000..2ff7f3e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.2.update.aql
new file mode 100644
index 0000000..f781e6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.3.query.aql
new file mode 100644
index 0000000..c80a20a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure/q1_pricing_summary_report_failure.3.query.aql
@@ -0,0 +1,21 @@
+use dataverse tpch;
+
+
+for $l in dataset('LineItem')
+//where inject-failure($l.l_shipdate <= '1998-09-02', $l.l_orderkey=5999)
+/*+ hash*/
+group by $l_returnflag := $l.l_returnflag, $l_linestatus := $l.l_linestatus
+ with $l
+order by $l_returnflag, $l_linestatus
+return {
+ "l_returnflag": $l_returnflag,
+ "l_linestatus": $l_linestatus,
+ "sum_qty": sum(for $i in $l return $i.l_quantity),
+ "sum_base_price": sum(for $i in $l return $i.l_extendedprice),
+ "sum_disc_price": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount)),
+ "sum_charge": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount) * (1 + $i.l_tax)),
+ "ave_qty": avg(for $i in $l return $i.l_quantity),
+ "ave_price": avg(for $i in $l return $i.l_extendedprice),
+ "ave_disc": avg(for $i in $l return $i.l_discount),
+ "count_order": count($l)
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree.aql
new file mode 100644
index 0000000..a8d7d37
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+write output to nc1:"rttest/failure_verify_delete-rtree.adm";
+
+for $o in dataset('MyData')
+where spatial-intersect($o.loc, create-rectangle(create-point(0.0,-100.0), create-point(55.5,50.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.3.query.aql
new file mode 100644
index 0000000..b33019b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete-rtree/verify_delete-rtree.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.3.query.aql
new file mode 100644
index 0000000..2a0f3e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_delete/verify_delete.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+where $c.l_orderkey>=10
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.3.query.aql
new file mode 100644
index 0000000..6c75ca2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert-rtree/verify_insert-rtree.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $o in dataset('MyMiniData')
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.3.query.aql
new file mode 100644
index 0000000..4cb52c5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/verify_insert/verify_insert.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $c in dataset('LineID')
+order by $c.l_orderkey, $c.l_linenumber
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql
new file mode 100644
index 0000000..4705cce
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql
@@ -0,0 +1,22 @@
+/*
+ * Description : Create a feed dataset and verify contents in Metadata
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+drop dataverse feeds if exists;
+create dataverse feeds;
+use dataverse feeds;
+
+create type TweetType as closed {
+ id: string,
+ username : string,
+ location : string,
+ text : string,
+ timestamp : string
+}
+
+create feed dataset TweetFeed(TweetType)
+using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
+(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql
new file mode 100644
index 0000000..e001747
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create a feed dataset and verify contents in Metadata
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql
new file mode 100644
index 0000000..5ee2e87
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create a feed dataset and verify contents in Metadata
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+for $x in dataset('Metadata.Dataset')
+where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql
new file mode 100644
index 0000000..aafd2c9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Begin ingestion and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+drop dataverse feeds if exists;
+create dataverse feeds;
+use dataverse feeds;
+
+create type TweetType as closed {
+ id: string,
+ username : string,
+ location : string,
+ text : string,
+ timestamp : string
+}
+
+create feed dataset TweetFeed(TweetType)
+using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
+(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
+primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql
new file mode 100644
index 0000000..01b0925
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Begin ingestion and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+use dataverse feeds;
+
+begin feed TweetFeed;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql
new file mode 100644
index 0000000..01ef318
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Begin ingestion and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+use dataverse feeds;
+
+for $x in dataset('TweetFeed')
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql
new file mode 100644
index 0000000..488ed2f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql
@@ -0,0 +1,28 @@
+/*
+ * Description : Create a feed dataset with an associated function and verify contents in Metadata
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+drop dataverse feeds if exists;
+create dataverse feeds;
+use dataverse feeds;
+
+create type TweetType as closed {
+ id: string,
+ username : string,
+ location : string,
+ text : string,
+ timestamp : string
+}
+
+create function feed_processor($x) {
+$x
+}
+
+create feed dataset TweetFeed(TweetType)
+using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
+(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
+apply function feed_processor@1
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql
new file mode 100644
index 0000000..e3044ef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Create a feed dataset with an associated function and verify contents in Metadata
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql
new file mode 100644
index 0000000..1922f39
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create a feed dataset with an associated function and verify contents in Metadata
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+for $x in dataset('Metadata.Dataset')
+where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql
new file mode 100644
index 0000000..326b2d5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ The feed simulator simulates feed from a file in the HDFS.
+ Begin ingestion and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+drop dataverse feeds if exists;
+create dataverse feeds;
+use dataverse feeds;
+
+create type TweetType as closed {
+ id: string,
+ username : string,
+ location : string,
+ text : string,
+ timestamp : string
+}
+
+create feed dataset TweetFeed(TweetType)
+using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
+(("fs"="hdfs"),("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/obamatweets.adm"),("format"="adm"),("input-format"="text-input-format"),("output-type-name"="TweetType"),("tuple-interval"="10"))
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql
new file mode 100644
index 0000000..060576e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ The feed simulator simulates feed from a file in the HDFS.
+ Begin ingestion and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+use dataverse feeds;
+
+begin feed TweetFeed;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql
new file mode 100644
index 0000000..5146fb5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ The feed simulator simulates feed from a file in the HDFS.
+ Begin ingestion and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+use dataverse feeds;
+
+for $x in dataset('TweetFeed')
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql
new file mode 100644
index 0000000..62ac61f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Begin ingestion using a fully qualified name and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+drop dataverse feeds if exists;
+create dataverse feeds;
+use dataverse feeds;
+
+create type TweetType as closed {
+ id: string,
+ username : string,
+ location : string,
+ text : string,
+ timestamp : string
+}
+
+create feed dataset TweetFeed(TweetType)
+using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
+(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql
new file mode 100644
index 0000000..0e22d6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Begin ingestion using a fully qualified name and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+
+use dataverse feeds;
+
+begin feed feeds.TweetFeed;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql
new file mode 100644
index 0000000..d94576b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Begin ingestion using a fully qualified name and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 24th Dec 2012
+ */
+use dataverse feeds;
+
+for $x in dataset('TweetFeed')
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/float_01.aql b/asterix-app/src/test/resources/runtimets/queries/float_01.aql
deleted file mode 100644
index dea3790..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/float_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/float_01.adm";
-
-for $f in [1f, 1F, 1.1f, 1.1F, .1f, .1F]
-return $f
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.1.ddl.aql
new file mode 100644
index 0000000..c50e488
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.2.update.aql
new file mode 100644
index 0000000..c50e488
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.3.query.aql
new file mode 100644
index 0000000..046c55f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for01/for01.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+for $a in [1,2,3,4,5,6,7,8,9]
+where not(false)
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.3.query.aql
new file mode 100644
index 0000000..aa75cfa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for02/for02.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [[1,2,3,4,5,6,7,8,9],[20,30,40,50,60,70,80]]
+where true
+return for $b in $a where $b > 5 and $b <70 return $b
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.3.query.aql
new file mode 100644
index 0000000..00bf474
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for03/for03.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [[1,2,3,4,5,6,7,8,9,0],["r","t","w","a"],[11,34,56,78,98,01,12,34,56,76,83],[null,null,null],[" ",""," "],["at"],[-1],[0]]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.3.query.aql
new file mode 100644
index 0000000..0d26a37
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for04/for04.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [[1,2,3,4,5,6,7,8,9,0],[11,34,56,78,98,01,12,34,56,76,83],[null,null,null,"and","bat","gone","do"],[" ",""," "],["at"],[-1],[0]]
+where len($a) > 1
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.3.query.aql
new file mode 100644
index 0000000..f2f1ca3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for05/for05.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [1,2,3,4,5,6,7,8,9]
+where ()
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.3.query.aql
new file mode 100644
index 0000000..9cc9fe3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for06/for06.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [1,2,3,4,5,6,7,8,9]
+where $undefined
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.3.query.aql
new file mode 100644
index 0000000..9639c60
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for07/for07.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [{"name":"Bob","age":10,"sex":"Male"},{"name":"John","age":45,"sex":"Female"},{"name":"Raj","age":35,"sex":"Male"}]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.3.query.aql
new file mode 100644
index 0000000..f0e0191
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for08/for08.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [{"name":"Bob","age":10,"sex":"Male"},{"name":"John","age":45,"sex":"Female"},{"name":"Raj","age":35,"sex":"Male"}]
+where $a.name="John"
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.3.query.aql
new file mode 100644
index 0000000..4b0ac18
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for09/for09.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+
+for $a in [{"name":"Bob","age":10,"sex":"Male"},{"name":"John","age":45,"sex":"Female"},{"name":"Raj","age":35,"sex":"Male"}]
+where $a.name="Tom"
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.3.query.aql
new file mode 100644
index 0000000..99c96b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for10/for10.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [{"name":"Bob","age":10,"sex":"Male"},{"name":"John","age":45,"sex":"Female"},{"name":"Raj","age":35,"sex":"Male"}]
+return {"a":$a,"additional-data":{{"this is additional data","this is too","and this is additional too"}}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.3.query.aql
new file mode 100644
index 0000000..f85b577
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for11/for11.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+
+for $a in [true,true,false,true]
+where $a = true
+return {{"this is additional data","this is too","and this is additional too"}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.3.query.aql
new file mode 100644
index 0000000..8a372b9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for12/for12.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [true,true,false,true]
+where $a = false
+return {"a":{{"this is additional data","this is too","and this is additional too"}},"b":{{"this is additional data","this is too","and this is additional too"}}}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.1.ddl.aql
new file mode 100644
index 0000000..67112ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.1.ddl.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.3.query.aql
new file mode 100644
index 0000000..307995b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for13/for13.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [true]
+return {{"this is additional data","this is too","and this is additional too"}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.3.query.aql
new file mode 100644
index 0000000..8932677
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for14/for14.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+
+for $a in [{"name":"Rocky","age":59,"sex":"M"},["job","ink","king","ontario","lavelle"],[1,4,5,6,7,8,9,2,3,4,5,6,7],{{"extra data","extra data","extra data"}}]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.1.ddl.aql
new file mode 100644
index 0000000..67112ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.1.ddl.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.3.query.aql
new file mode 100644
index 0000000..cb3ac14
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for15/for15.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+
+for $a in [{"name":"Rocky","age":59,"sex":"M"},[1]]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.3.query.aql
new file mode 100644
index 0000000..790f9ce
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for16/for16.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [[[1,2],[3]],[[4,5],[6,7]],[[8,9],[10,11]],[[12,13],[14]],[[15],[16,17]],[[18],[19,20]]]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.1.ddl.aql
new file mode 100644
index 0000000..c838616
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.2.update.aql
new file mode 100644
index 0000000..c838616
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.3.query.aql
new file mode 100644
index 0000000..9e05da3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for17/for17.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test union of two lists
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+(for $a in [{"id":1234,"name":"John Doe","age":56,"salary":50000,"dept":"HR"}]
+return $a)
+union
+(for $b in [{"id":3424,"name":"Roger Sanders","age":46,"salary":60000,"dept":"Publishing"}]
+return $b)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.1.ddl.aql
new file mode 100644
index 0000000..c9949e7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test nested for and return
+ * Expected Result : Success
+ * Date : 21st Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.2.update.aql
new file mode 100644
index 0000000..c9949e7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test nested for and return
+ * Expected Result : Success
+ * Date : 21st Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.3.query.aql
new file mode 100644
index 0000000..5131dee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for18/for18.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test nested for and return
+ * Expected Result : Success
+ * Date : 21st Aug 2012
+ */
+
+
+for $a in (
+ for $b in (
+ for $c in (
+ for $d in [1,2,3,4,5,6,7] return $d+1
+ ) return $c+1
+ ) return $b+1
+) return $a+1
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.1.ddl.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.2.update.aql
new file mode 100644
index 0000000..18e88d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.3.query.aql
new file mode 100644
index 0000000..487291b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/for19/for19.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test for clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+for $a in [[1,2,3,4,5,6,7,8,9,0],[11,34,56,78,98,01,12,34,56,76,83]]
+where len($a) > 1
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.1.ddl.aql
new file mode 100644
index 0000000..67722da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test group by clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 31st July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.2.update.aql
new file mode 100644
index 0000000..67722da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test group by clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 31st July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.3.query.aql
new file mode 100644
index 0000000..252016f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby01/grpby01.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Test group by clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 31st July 2012
+ */
+
+for $sales in [{"storeno":"S101","itemno":"P78395","qty":125},
+{"storeno":"S101","itemno":"P71395","qty":135},
+{"storeno":"S102","itemno":"P78395","qty":225},
+{"storeno":"S103","itemno":"P78345","qty":105},
+{"storeno":"S104","itemno":"P71395","qty":115},
+{"storeno":"S105","itemno":"P74395","qty":120}]
+group by $strNum:=$sales.storeno with $sales
+order by $strNum desc
+return {"store-number":$strNum,"total-qty":sum(for $l in $sales return $l.qty)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.1.ddl.aql
new file mode 100644
index 0000000..67722da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test group by clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 31st July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.2.update.aql
new file mode 100644
index 0000000..67722da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test group by clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 31st July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.3.query.aql
new file mode 100644
index 0000000..252016f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/grpby02/grpby02.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Test group by clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 31st July 2012
+ */
+
+for $sales in [{"storeno":"S101","itemno":"P78395","qty":125},
+{"storeno":"S101","itemno":"P71395","qty":135},
+{"storeno":"S102","itemno":"P78395","qty":225},
+{"storeno":"S103","itemno":"P78345","qty":105},
+{"storeno":"S104","itemno":"P71395","qty":115},
+{"storeno":"S105","itemno":"P74395","qty":120}]
+group by $strNum:=$sales.storeno with $sales
+order by $strNum desc
+return {"store-number":$strNum,"total-qty":sum(for $l in $sales return $l.qty)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.3.query.aql
new file mode 100644
index 0000000..9836f85
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let01/let01.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x := int64("92233720368547758")
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.1.ddl.aql
new file mode 100644
index 0000000..45fb16e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.1.ddl.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.2.update.aql
new file mode 100644
index 0000000..45fb16e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.3.query.aql
new file mode 100644
index 0000000..a0f936f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let02/let02.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x := 92233720368547758
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.3.query.aql
new file mode 100644
index 0000000..ed2c967
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let03/let03.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+
+let $x := int64("92233720368547758")+1
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.3.query.aql
new file mode 100644
index 0000000..4832e2c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let04/let04.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x := double("1.7976931348623157E308")
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.1.ddl.aql
new file mode 100644
index 0000000..45fb16e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.1.ddl.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.2.update.aql
new file mode 100644
index 0000000..45fb16e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.3.query.aql
new file mode 100644
index 0000000..d8d3023
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let05/let05.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x := {"a":(1+1*(100/20))}
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.3.query.aql
new file mode 100644
index 0000000..2d443a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let06/let06.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x := 1
+let $y := $x+1
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.3.query.aql
new file mode 100644
index 0000000..894b1da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let07/let07.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x := 1
+let $y := ($x+1)
+return $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.3.query.aql
new file mode 100644
index 0000000..866ad55
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let08/let08.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+
+let $x:=[1,2,3]
+for $b in $x
+let $y:=$b+1
+return $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.3.query.aql
new file mode 100644
index 0000000..2d4439b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let09/let09.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+for $a in range(1,100)
+where $a%5=0
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.1.ddl.aql
new file mode 100644
index 0000000..45fb16e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.1.ddl.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.3.query.aql
new file mode 100644
index 0000000..208a478
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let10/let10.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $x:=[1,2,3,4,5,6,7,8,9,10,11,14,15,17,19,24,35,56,67,77,89,60,35,25,60]
+for $y in $x
+where $y%5=0
+return $y
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.3.query.aql
new file mode 100644
index 0000000..1a96ff3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let11/let11.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+// Return an ordered list comprising of records and other values
+
+let $a := ["a",{"i":1},"b",{"j":2},"c",{"k":3}]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.3.query.aql
new file mode 100644
index 0000000..6b80062
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let12/let12.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $a := 1
+let $b := $a
+let $c := $a+$b
+return ($c)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.1.ddl.aql
new file mode 100644
index 0000000..fe07b85
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Failure - Negative test
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.2.update.aql
new file mode 100644
index 0000000..276f5f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Failure - Negative test
+ * Date : 6th July 2012
+ */
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.3.query.aql
new file mode 100644
index 0000000..5694530
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let13/let13.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Failure - Negative test
+ * Date : 6th July 2012
+ */
+
+// Bind an undefined variable.
+
+let $a := $b
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.3.query.aql
new file mode 100644
index 0000000..b0cdcad
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let14/let14.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+// nested ordered list
+
+let $a := [[[[[[[[[[[[1,2,3,4,5,6,7,8,9,10],[3,4,5,6,7,8,9,0,0],int64("9222872036854775809")]]]]]]]]]]]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.3.query.aql
new file mode 100644
index 0000000..2ccdcd8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let15/let15.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+
+// nested ordered list comprising of only one integer value.
+
+let $a := [[[[[[[[[[[int64("9222872036854775809")]]]]]]]]]]]
+return ($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.3.query.aql
new file mode 100644
index 0000000..122d3ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let16/let16.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $a := [[[[[[[[[[[int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809"),int64("9222872036854775809")]]]]]]]]]]]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.2.update.aql
new file mode 100644
index 0000000..171ffb4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.3.query.aql
new file mode 100644
index 0000000..4f9be6f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let17/let17.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $a := ["and","here","we","are",["this is new","stuff"]]
+return $a
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.3.query.aql
new file mode 100644
index 0000000..c50c871
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let18/let18.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+// An ordered list comprising of an un ordered list.
+
+let $a:=[{{"John Doe",45,"HR",60000,"Separation"}}]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.3.query.aql
new file mode 100644
index 0000000..ef54046
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let19/let19.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+
+// bind and return bag of data
+
+let $a:={{"John Doe",45,"HR",60000,"Separation"}}
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.1.ddl.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.2.update.aql
new file mode 100644
index 0000000..8adc7a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.3.query.aql
new file mode 100644
index 0000000..22814e6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let20/let20.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+// An ordered list of un ordered lists, records and ordered list.
+
+let $a:=[{{"John Doe",45,"HR",60000,"Separation"}},{"name":"Roger Sanders","age":50,"dept":"DB2-Books","designatin":"Author"},["DB2 for Z/OS","DB2 for LUW","DB2 9 Application Development","DB2 9 DBA","DB2 for Dummies"]]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.1.ddl.aql
new file mode 100644
index 0000000..3cdce60
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.2.update.aql
new file mode 100644
index 0000000..f4af1db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.3.query.aql
new file mode 100644
index 0000000..81f93be
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let21/let21.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+
+// Ordered list of boolean values.
+
+let $a := [boolean("true"),boolean("false"),boolean("true"),boolean("false")]
+let $b := [boolean("false"),boolean("true"),boolean("false"),boolean("true")]
+for $m in $a
+for $n in $b
+where $m=not($n)
+return $m
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.1.ddl.aql
new file mode 100644
index 0000000..26778fb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test length of null returned by len() function
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.2.update.aql
new file mode 100644
index 0000000..26778fb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test length of null returned by len() function
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.3.query.aql
new file mode 100644
index 0000000..da33601
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let22/let22.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test length of null returned by len() function
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+let $a := [null]
+return len($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.1.ddl.aql
new file mode 100644
index 0000000..1987047
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test length of ordered list
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.2.update.aql
new file mode 100644
index 0000000..1987047
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test length of ordered list
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.3.query.aql
new file mode 100644
index 0000000..07ea21b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let23/let23.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test length of ordered list
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+let $a := [1,2,3,4,5,6,7,8,9,null]
+return len($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.1.ddl.aql
new file mode 100644
index 0000000..63959fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.1.ddl.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+/*
+ * m - closed record
+ * n - closed record with null
+ * o - open data
+ * p - open data with null
+ * q - nested record
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.2.update.aql
new file mode 100644
index 0000000..63959fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.2.update.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+/*
+ * m - closed record
+ * n - closed record with null
+ * o - open data
+ * p - open data with null
+ * q - nested record
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.3.query.aql
new file mode 100644
index 0000000..9bfe510
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let24/let24.3.query.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+/*
+ * m - closed record
+ * n - closed record with null
+ * o - open data
+ * p - open data with null
+ * q - nested record
+ */
+
+let $m := {"name":"Holmes S","age":25,"sex":"M"}
+let $n := {"name":"Bob","age":35,"sex":null}
+let $o := {{"John",45,"M"}}
+let $p := {{"Optional data goes here",null}}
+let $q := { "id":1345,"test":{"name":"Federer","age":35},"foo":"foo" }
+return { "m":$m,"n":$n,"o":$o, "p":$p,"q":$q }
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.1.ddl.aql
new file mode 100644
index 0000000..045a9e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.2.update.aql
new file mode 100644
index 0000000..045a9e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.3.query.aql
new file mode 100644
index 0000000..e2b88da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let25/let25.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+let $a := true or false
+let $b := (true or false) and not(false)
+return {"a":$a,"b":$b}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.1.ddl.aql
new file mode 100644
index 0000000..d571f25
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.1.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+/*
+ * Test let clause - let variable := relational expression
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.2.update.aql
new file mode 100644
index 0000000..4d411e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.3.query.aql
new file mode 100644
index 0000000..a8afffe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let26/let26.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+/*
+ * Test let clause - let variable := relational expression
+ */
+
+let $a := 10 > 9
+let $b := ((100 * 100)/10 -1999) > 3900
+let $c := true != false
+return {"a":$a,"b":$b,"c":$c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.1.ddl.aql
new file mode 100644
index 0000000..a964168
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.2.update.aql
new file mode 100644
index 0000000..a964168
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.3.query.aql
new file mode 100644
index 0000000..aa5872e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let27/let27.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test let clause
+ * Expected Result : Success
+ * Date : 23rd July 2012
+ */
+
+// Bind arithmetic expressions to variable using let clause
+
+
+let $a := [(100+100),(100-100),(100 * 100),(100 / 100),(100 %10)]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.1.ddl.aql
new file mode 100644
index 0000000..c93c2df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause and floating point literals
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.2.update.aql
new file mode 100644
index 0000000..c93c2df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause and floating point literals
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.3.query.aql
new file mode 100644
index 0000000..2f1b7ce
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let28/let28.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause and floating point literals
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+let $a := [137.8932f,156f,.98781f, 436.219F,.89217F,16789F]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.1.ddl.aql
new file mode 100644
index 0000000..b7cb3db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause and double literals
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.2.update.aql
new file mode 100644
index 0000000..b7cb3db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test let clause and double literals
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.3.query.aql
new file mode 100644
index 0000000..55d6319
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let29/let29.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test let clause and double literals
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+let $a := [137.8932,.98781,436.219,.89217,-234.324]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.1.ddl.aql
new file mode 100644
index 0000000..ee62af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.2.update.aql
new file mode 100644
index 0000000..ee62af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.3.query.aql
new file mode 100644
index 0000000..eebc11f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let30/let30.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+// $a and $b are ordered lists with one Record each.
+
+let $a := [{"id":1234,"name":"John Doe","age":56,"salary":50000,"dept":"HR"}]
+let $b := [{"id":3424,"name":"Roger Sanders","age":46,"salary":60000,"dept":"Publishing"}]
+let $c := $a union $b
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.1.ddl.aql
new file mode 100644
index 0000000..ee62af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.2.update.aql
new file mode 100644
index 0000000..ee62af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.3.query.aql
new file mode 100644
index 0000000..84ac278
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let31/let31.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+// $a and $b hold one Record each.
+
+let $a := {"id":1234,"name":"John Doe","age":56,"salary":50000,"dept":"HR"}
+let $b := {"id":3424,"name":"Roger Sanders","age":46,"salary":60000,"dept":"Publishing"}
+let $c := $a union $b
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.1.ddl.aql
new file mode 100644
index 0000000..ee62af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.2.update.aql
new file mode 100644
index 0000000..ee62af1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.3.query.aql
new file mode 100644
index 0000000..0881fde
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/let32/let32.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test union of two lists, bind each list to a variable
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+let $m := (for $a in [{"id":1234,"name":"John Doe","age":56,"salary":50000,"dept":"HR"}]
+return $a)
+let $n := (for $b in [{"id":3424,"name":"Roger Sanders","age":46,"salary":60000,"dept":"Publishing"}]
+return $b)
+return $m union $n
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.3.query.aql
new file mode 100644
index 0000000..a5aec23
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-01/order-by-01.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $a in ["two","four","six","eight","ten","twenty","undo"]
+order by $a desc
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.3.query.aql
new file mode 100644
index 0000000..4cc087c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-02/order-by-02.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $a in ["two","four","six","eight","ten","twenty","undo"]
+order by $a asc
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.3.query.aql
new file mode 100644
index 0000000..3792c74
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-03/order-by-03.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $b in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat([$b,"test"]) asc
+return string-concat([$b,"test"])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.3.query.aql
new file mode 100644
index 0000000..e7a209b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-04/order-by-04.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $b in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat([$b,"test"]) desc
+return string-concat([$b,"test"])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.3.query.aql
new file mode 100644
index 0000000..97816f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-05/order-by-05.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+
+for $b in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat([$b,""]) desc
+return string-concat([$b,""])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.3.query.aql
new file mode 100644
index 0000000..791af3a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-06/order-by-06.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $b in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat([$b,""]) asc
+return string-concat([$b,""])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.3.query.aql
new file mode 100644
index 0000000..1b22c06
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-07/order-by-07.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+
+for $b in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat(["",$b]) desc
+return string-concat(["",$b])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.3.query.aql
new file mode 100644
index 0000000..6a823c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-08/order-by-08.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $b in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat(["",$b]) asc
+return string-concat(["",$b])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.3.query.aql
new file mode 100644
index 0000000..0df3a9e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-09/order-by-09.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $x in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat([$x,$x]) asc
+return string-concat([$x,$x])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.3.query.aql
new file mode 100644
index 0000000..dd2d97e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-10/order-by-10.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+
+for $x in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+order by string-concat([$x,$x]) desc
+return string-concat([$x,$x])
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.3.query.aql
new file mode 100644
index 0000000..5b79987
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-11/order-by-11.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $x in [1,3,4,5,2,3,33,55,43,12,34,45,67,66,89,0,-1,999]
+order by ($x+$x) asc
+return ($x+$x)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.1.ddl.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.2.update.aql
new file mode 100644
index 0000000..72f702b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.3.query.aql
new file mode 100644
index 0000000..b620a05
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/order-by-12/order-by-12.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test order by clause of FLWOR
+ * Expected Result : Success
+ * Date : 24th July 2012
+ */
+
+for $x in [[1,3,4],[5,2],[3,33,55],[43,12,34],[45,67],[66,89,0],[-1,999]]
+order by len($x)
+return { "x":$x,"len($x)":len($x) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.2.update.aql
new file mode 100644
index 0000000..a45e5e8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+// return string length
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.3.query.aql
new file mode 100644
index 0000000..a67b7f1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-01/ret-01.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+// return string length
+
+
+for $x in ["ten","twenty","thirty","forty","fifty","sixty","seventy","ninety"]
+return string-length($x)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.1.ddl.aql
new file mode 100644
index 0000000..837342d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.2.update.aql
new file mode 100644
index 0000000..837342d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.3.query.aql
new file mode 100644
index 0000000..6c0bfb4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-02/ret-02.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 7th July 2012
+ */
+
+// Return a string
+
+
+for $x in [true]
+return "this is a test string"
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.1.ddl.aql
new file mode 100644
index 0000000..e61b354
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Tes if expression then expression else expression in the return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.2.update.aql
new file mode 100644
index 0000000..e61b354
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Tes if expression then expression else expression in the return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.3.query.aql
new file mode 100644
index 0000000..44cc1b8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-03/ret-03.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Tes if expression then expression else expression in the return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+for $x in [true]
+return (if(true) then "YES" else "NO")
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.1.ddl.aql
new file mode 100644
index 0000000..d4a99b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Tes if expression then expression else expression in the return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.2.update.aql
new file mode 100644
index 0000000..d4a99b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Tes if expression then expression else expression in the return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.3.query.aql
new file mode 100644
index 0000000..6baaf9a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-04/ret-04.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Tes if expression then expression else expression in the return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+let $a := 12345
+return (if($a > 999) then "GREATER" else "LESSER")
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.1.ddl.aql
new file mode 100644
index 0000000..8999781
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : For + Return within return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.2.update.aql
new file mode 100644
index 0000000..8999781
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : For + Return within return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.3.query.aql
new file mode 100644
index 0000000..c86a402
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-05/ret-05.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : For + Return within return clause
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+let $b := 12345
+return (for $a in [[1,2,3],[4,5,6,7],[8,9],[0,4,5],[6,7,1],[2,3,4],[5,6,7],[8,9,0]] return $a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.1.ddl.aql
new file mode 100644
index 0000000..be87866
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Return an un-ordered list
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.2.update.aql
new file mode 100644
index 0000000..be87866
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Return an un-ordered list
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.3.query.aql
new file mode 100644
index 0000000..b2b572b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-06/ret-06.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * : Return an un-ordered list
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+let $b := 12345
+return {{"Welcome","UCI","Anteater","DBH","ICS"}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.3.query.aql
new file mode 100644
index 0000000..abd3893
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-07/ret-07.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+
+let $b := true
+return {}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.3.query.aql
new file mode 100644
index 0000000..d73584a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-08/ret-08.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+// for and return in return clause
+
+for $a in [1,2,3,4,5,6,7,8]
+return {"a":$a,"inner-for":(for $b in [11,22,33,44,55,66,77,88] return $b)}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.3.query.aql
new file mode 100644
index 0000000..121b6b8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-09/ret-09.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+// return a constant
+
+let $b:=true
+return 1
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.3.query.aql
new file mode 100644
index 0000000..12100ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-10/ret-10.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+// nested for and return within another for
+
+for $a in
+ for $b in [1,2,3,4,5,6,7,8,9,0] return $b
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.3.query.aql
new file mode 100644
index 0000000..ad607c7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-11/ret-11.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+for $a in [1,2,3,4,5,6,7,8,9]
+return ($a + 1)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.3.query.aql
new file mode 100644
index 0000000..92f8aff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-12/ret-12.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+for $a in [1,2,3,4,5,6,7,8,9]
+return ($a - 1)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.3.query.aql
new file mode 100644
index 0000000..54f6b1f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-13/ret-13.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+
+for $a in [1,2,3,4,5,6,7,8,9]
+return ($a * 9)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.1.ddl.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.2.update.aql
new file mode 100644
index 0000000..b3b1c5a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.3.query.aql
new file mode 100644
index 0000000..baae79a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-14/ret-14.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 26th July 2012
+ */
+
+// Return record
+
+let $a := true
+return {"name":"John Doe", "age":26,"sex":"M","salary":50000,"dept":"HR"}
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.1.ddl.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.2.update.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.3.query.aql
new file mode 100644
index 0000000..ec64936
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-15/ret-15.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
+// Return op1 and op2 or op3 and op4
+
+let $a := true
+let $b := false
+let $c := true
+let $d := false
+return ($a and $b or $c and $d)
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.1.ddl.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.2.update.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.3.query.aql
new file mode 100644
index 0000000..dd494e5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-16/ret-16.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
+// Return arithmetic-expr1 and arithmetic-expr2
+
+let $a := 100 + 100
+let $b := 13.4 * 14.97
+let $c := 9999 + 98677
+let $d := 34.67 / 5.324
+return (($a*$d) and ($b / $c))
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.1.ddl.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.2.update.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.3.query.aql
new file mode 100644
index 0000000..dd494e5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-17/ret-17.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
+// Return arithmetic-expr1 and arithmetic-expr2
+
+let $a := 100 + 100
+let $b := 13.4 * 14.97
+let $c := 9999 + 98677
+let $d := 34.67 / 5.324
+return (($a*$d) and ($b / $c))
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.1.ddl.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.2.update.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.3.query.aql
new file mode 100644
index 0000000..cf33381
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-18/ret-18.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
+// Return an item from the ordered list
+
+let $a := [1,2,3,4,5,6,7]
+return $a[6]
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.1.ddl.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.2.update.aql
new file mode 100644
index 0000000..fbf1eae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.3.query.aql
new file mode 100644
index 0000000..8bd5918
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/ret-19/ret-19.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test return clause of the FLWOR expression
+ * Expected Result : Success
+ * Date : 30th July 2012
+ */
+
+// Return an item from the ordered list
+
+let $a := [[1,2,3,4,5,6,7],[7,8,9,10]]
+return $a[0]
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql
deleted file mode 100644
index 4409fec..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql
+++ /dev/null
@@ -1,32 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-1_1.adm';
-
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.3.query.aql
new file mode 100644
index 0000000..bc6490d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1/dblp-1_1.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql
deleted file mode 100644
index 8deab14..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql
+++ /dev/null
@@ -1,34 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-1_2.1.1.adm';
-
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.1.ddl.aql
new file mode 100644
index 0000000..ee455cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.3.query.aql
new file mode 100644
index 0000000..e6a2e36
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.1.1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql
deleted file mode 100644
index 8a492ae..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql
+++ /dev/null
@@ -1,34 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-1_2.1.adm';
-
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.3.query.aql
new file mode 100644
index 0000000..e6a2e36
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1/dblp-1_2.1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql
deleted file mode 100644
index 68d26fe..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql
+++ /dev/null
@@ -1,33 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-1_2.adm';
-
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $paperid := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paperid
- order by count($paperid), $tokenGroupped
- return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.3.query.aql
new file mode 100644
index 0000000..aa6a746
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2/dblp-1_2.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $paperid := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paperid
+ order by count($paperid), $tokenGroupped
+ return $tokenGroupped
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql
deleted file mode 100644
index f499ba3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql
+++ /dev/null
@@ -1,54 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2.1_5.3.1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast*/ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard($lenDBLP, .5f))
- order by $idDBLP
- return {'id': $idDBLP, 'prefixToken': $prefixTokenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.1.ddl.aql
new file mode 100644
index 0000000..ee455cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.3.query.aql
new file mode 100644
index 0000000..70de806
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.1_5.3.1.3.query.aql
@@ -0,0 +1,32 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast*/ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard($lenDBLP, .5f))
+ order by $idDBLP
+ return {'id': $idDBLP, 'prefixToken': $prefixTokenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql
deleted file mode 100644
index ce8dae4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql
+++ /dev/null
@@ -1,53 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type TOKENSRANKEDADMType as closed {
- token: int32,
- rank: int32
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) partitioned by key rank on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-load dataset TOKENSRANKEDADM
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/tokensranked.adm"),("format"="adm"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2.2.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked in dataset('TOKENSRANKEDADM')
- where $tokenUnranked = /*+ bcast*/ $tokenRanked.token
- order by $tokenRanked.rank
- return $tokenRanked.rank
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
- order by $idDBLP, $prefixTokenDBLP
- return {'id': $idDBLP, 'prefixToken': $prefixTokenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.1.ddl.aql
new file mode 100644
index 0000000..3d9b507
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.1.ddl.aql
@@ -0,0 +1,22 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type TOKENSRANKEDADMType as closed {
+ token: int32,
+ rank: int32
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.2.update.aql
new file mode 100644
index 0000000..2c90d77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset TOKENSRANKEDADM
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/tokensranked.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.3.query.aql
new file mode 100644
index 0000000..03add70
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2/dblp-2.2.3.query.aql
@@ -0,0 +1,21 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked in dataset('TOKENSRANKEDADM')
+ where $tokenUnranked = /*+ bcast*/ $tokenRanked.token
+ order by $tokenRanked.rank
+ return $tokenRanked.rank
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+ order by $idDBLP, $prefixTokenDBLP
+ return {'id': $idDBLP, 'prefixToken': $prefixTokenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql
deleted file mode 100644
index 7328e60..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql
+++ /dev/null
@@ -1,44 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- order by $paperDBLP.id
- return {'id': $paperDBLP.id, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.3.query.aql
new file mode 100644
index 0000000..977a2a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1/dblp-2_1.3.query.aql
@@ -0,0 +1,22 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ order by $paperDBLP.id
+ return {'id': $paperDBLP.id, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql
deleted file mode 100644
index 5c5cc8e8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql
+++ /dev/null
@@ -1,45 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_2.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- order by $paperDBLP.id
- return {'id': $paperDBLP.id, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.3.query.aql
new file mode 100644
index 0000000..275a4cf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2/dblp-2_2.3.query.aql
@@ -0,0 +1,23 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ order by $paperDBLP.id
+ return {'id': $paperDBLP.id, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql
deleted file mode 100644
index 6ffb2d5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql
+++ /dev/null
@@ -1,46 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_3.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.3.query.aql
new file mode 100644
index 0000000..8f75103
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3/dblp-2_3.3.query.aql
@@ -0,0 +1,24 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql
deleted file mode 100644
index 6a0a011..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql
+++ /dev/null
@@ -1,47 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_4.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.3.query.aql
new file mode 100644
index 0000000..abb7736
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4/dblp-2_4.3.query.aql
@@ -0,0 +1,25 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql
deleted file mode 100644
index 7d3e144..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql
+++ /dev/null
@@ -1,49 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_5.1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.2.update.aql
new file mode 100644
index 0000000..dc55d95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.3.query.aql
new file mode 100644
index 0000000..1950989
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1/dblp-2_5.1.3.query.aql
@@ -0,0 +1,27 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql
deleted file mode 100644
index f69e98f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql
+++ /dev/null
@@ -1,49 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_5.2.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast*/ $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.3.query.aql
new file mode 100644
index 0000000..f6b4832
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2/dblp-2_5.2.3.query.aql
@@ -0,0 +1,27 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast*/ $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql
deleted file mode 100644
index ec9726d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql
+++ /dev/null
@@ -1,50 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_5.3.1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast*/ $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.1.ddl.aql
new file mode 100644
index 0000000..ee455cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.3.query.aql
new file mode 100644
index 0000000..6ea3207
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.1.3.query.aql
@@ -0,0 +1,28 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast*/ $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql
deleted file mode 100644
index a0b3011..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql
+++ /dev/null
@@ -1,50 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_5.3.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast*/ $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.3.query.aql
new file mode 100644
index 0000000..6ea3207
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.3.query.aql
@@ -0,0 +1,28 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast*/ $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql
deleted file mode 100644
index 6c5e1ac..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql
+++ /dev/null
@@ -1,48 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-2_5.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- order by $idDBLP
- return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.3.query.aql
new file mode 100644
index 0000000..81013bb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5/dblp-2_5.3.query.aql
@@ -0,0 +1,26 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ order by $idDBLP
+ return {'id': $idDBLP, 'len': $lenDBLP, 'tokens': $tokensDBLP}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql
deleted file mode 100644
index e871290..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql
+++ /dev/null
@@ -1,94 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-3_1.1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperLeft in dataset('DBLP')
- let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
- let $tokensLeft :=
- for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenLeft in subset-collection(
- $tokensLeft,
- 0,
- prefix-len-jaccard($lenLeft, .5f))
-
- for $paperRight in dataset('DBLP')
- let $lenRight := len(counthashed-word-tokens($paperRight.title))
- let $tokensRight :=
- for $tokenUnranked in counthashed-word-tokens($paperRight.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenRight in subset-collection(
- $tokensRight,
- 0,
- prefix-len-jaccard($lenRight, .5f))
-
- where $prefixTokenLeft = $prefixTokenRight
-
- let $sim := similarity-jaccard-prefix(
- $lenLeft,
- $tokensLeft,
- $lenRight,
- $tokensRight,
- $prefixTokenLeft,
- .5f)
- where $sim >= .5f and $paperLeft.id < $paperRight.id
- /*+ hash */
- group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
- return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
-
-for $paperLeft in dataset('DBLP')
-for $paperRight in dataset('DBLP')
-where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
-order by $paperLeft.id, $paperRight.id
-return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.1.ddl.aql
new file mode 100644
index 0000000..d68b466e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.3.query.aql
new file mode 100644
index 0000000..039ed1b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1/dblp-3_1.1.3.query.aql
@@ -0,0 +1,72 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperLeft in dataset('DBLP')
+ let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
+ let $tokensLeft :=
+ for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenLeft in subset-collection(
+ $tokensLeft,
+ 0,
+ prefix-len-jaccard($lenLeft, .5f))
+
+ for $paperRight in dataset('DBLP')
+ let $lenRight := len(counthashed-word-tokens($paperRight.title))
+ let $tokensRight :=
+ for $tokenUnranked in counthashed-word-tokens($paperRight.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenRight in subset-collection(
+ $tokensRight,
+ 0,
+ prefix-len-jaccard($lenRight, .5f))
+
+ where $prefixTokenLeft = $prefixTokenRight
+
+ let $sim := similarity-jaccard-prefix(
+ $lenLeft,
+ $tokensLeft,
+ $lenRight,
+ $tokensRight,
+ $prefixTokenLeft,
+ .5f)
+ where $sim >= .5f and $paperLeft.id < $paperRight.id
+ /*+ hash */
+ group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
+ return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
+
+for $paperLeft in dataset('DBLP')
+for $paperRight in dataset('DBLP')
+where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
+order by $paperLeft.id, $paperRight.id
+return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql
deleted file mode 100644
index d1d65dc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql
+++ /dev/null
@@ -1,94 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-3_1.2.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperLeft in dataset('DBLP')
- let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
- let $tokensLeft :=
- for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenLeft in subset-collection(
- $tokensLeft,
- 0,
- prefix-len-jaccard($lenLeft, .5f))
-
- for $paperRight in dataset('DBLP')
- let $lenRight := len(counthashed-word-tokens($paperRight.title))
- let $tokensRight :=
- for $tokenUnranked in counthashed-word-tokens($paperRight.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenRight in subset-collection(
- $tokensRight,
- 0,
- prefix-len-jaccard($lenRight, .5f))
-
- where $prefixTokenLeft = $prefixTokenRight
-
- let $sim := similarity-jaccard-prefix(
- $lenLeft,
- $tokensLeft,
- $lenRight,
- $tokensRight,
- $prefixTokenLeft,
- .5f)
- where $sim >= .5f and $paperLeft.id < $paperRight.id
- /*+ hash */
- group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
- return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
-
-for $paperLeft in dataset('DBLP')
-for $paperRight in dataset('DBLP')
-where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
-order by $paperLeft.id, $paperRight.id
-return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.1.ddl.aql
new file mode 100644
index 0000000..fc70544
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.1.ddl.aql
@@ -0,0 +1,15 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.3.query.aql
new file mode 100644
index 0000000..2c2d349
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2/dblp-3_1.2.3.query.aql
@@ -0,0 +1,72 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperLeft in dataset('DBLP')
+ let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
+ let $tokensLeft :=
+ for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenLeft in subset-collection(
+ $tokensLeft,
+ 0,
+ prefix-len-jaccard($lenLeft, .5f))
+
+ for $paperRight in dataset('DBLP')
+ let $lenRight := len(counthashed-word-tokens($paperRight.title))
+ let $tokensRight :=
+ for $tokenUnranked in counthashed-word-tokens($paperRight.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenRight in subset-collection(
+ $tokensRight,
+ 0,
+ prefix-len-jaccard($lenRight, .5f))
+
+ where $prefixTokenLeft = $prefixTokenRight
+
+ let $sim := similarity-jaccard-prefix(
+ $lenLeft,
+ $tokensLeft,
+ $lenRight,
+ $tokensRight,
+ $prefixTokenLeft,
+ .5f)
+ where $sim >= .5f and $paperLeft.id < $paperRight.id
+ /*+ hash */
+ group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
+ return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
+
+for $paperLeft in dataset('DBLP')
+for $paperRight in dataset('DBLP')
+where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
+order by $paperLeft.id, $paperRight.id
+return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql
deleted file mode 100644
index eea456e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql
+++ /dev/null
@@ -1,91 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-3_1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $paperLeft in dataset('DBLP')
-for $paperRight in dataset('DBLP')
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperLeft in dataset('DBLP')
- let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
- let $tokensLeft :=
- for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenLeft in subset-collection(
- $tokensLeft,
- 0,
- prefix-len-jaccard($lenLeft, .5f))
-
- for $paperRight in dataset('DBLP')
- let $lenRight := len(counthashed-word-tokens($paperRight.title))
- let $tokensRight :=
- for $tokenUnranked in counthashed-word-tokens($paperRight.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenRight in subset-collection(
- $tokensRight,
- 0,
- prefix-len-jaccard($lenRight, .5f))
-
- where $prefixTokenLeft = $prefixTokenRight
-
- let $sim := similarity-jaccard-prefix(
- $lenLeft,
- $tokensLeft,
- $lenRight,
- $tokensRight,
- $prefixTokenLeft,
- .5f)
- where $sim >= .5f and $paperLeft.id < $paperRight.id
- group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
- return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
-
-where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
-order by $paperLeft.id, $paperRight.id
-return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.1.ddl.aql
new file mode 100644
index 0000000..c0c9897
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.3.query.aql
new file mode 100644
index 0000000..0d1976b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1/dblp-3_1.3.query.aql
@@ -0,0 +1,69 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $paperLeft in dataset('DBLP')
+for $paperRight in dataset('DBLP')
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperLeft in dataset('DBLP')
+ let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
+ let $tokensLeft :=
+ for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenLeft in subset-collection(
+ $tokensLeft,
+ 0,
+ prefix-len-jaccard($lenLeft, .5f))
+
+ for $paperRight in dataset('DBLP')
+ let $lenRight := len(counthashed-word-tokens($paperRight.title))
+ let $tokensRight :=
+ for $tokenUnranked in counthashed-word-tokens($paperRight.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenRight in subset-collection(
+ $tokensRight,
+ 0,
+ prefix-len-jaccard($lenRight, .5f))
+
+ where $prefixTokenLeft = $prefixTokenRight
+
+ let $sim := similarity-jaccard-prefix(
+ $lenLeft,
+ $tokensLeft,
+ $lenRight,
+ $tokensRight,
+ $prefixTokenLeft,
+ .5f)
+ where $sim >= .5f and $paperLeft.id < $paperRight.id
+ group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
+ return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
+
+where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
+order by $paperLeft.id, $paperRight.id
+return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql
deleted file mode 100644
index 089fc47..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql
+++ /dev/null
@@ -1,29 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
-
-write output to nc1:'rttest/fuzzyjoin_dblp-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $dblp in dataset('DBLP')
-for $dblp2 in dataset('DBLP')
-where $dblp.title ~= $dblp2.title and $dblp.id < $dblp2.id
-order by $dblp.id, $dblp2.id
-return {'dblp': $dblp, 'dblp2': $dblp2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..ee455cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..533e8a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..a3c0375
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $dblp in dataset('DBLP')
+for $dblp2 in dataset('DBLP')
+where word-tokens($dblp.title) ~= word-tokens($dblp2.title) and $dblp.id < $dblp2.id
+order by $dblp.id, $dblp2.id
+return {'dblp': $dblp, 'dblp2': $dblp2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..a62b5a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Tests that a proper error messags is returned for this scenario.
+ * Since we cannot statically know the type of the field 'title', the FuzzyEqRule
+ * cannot auto-inject a tokenizer, and hence we expect an error saying that we cannot
+ * scan over a string as if it were a collection.
+ * Guards against regression to issue 207.
+ * Success : Yes
+ */
+
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..a760070
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.2.update.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Tests that a proper error messags is returned for this scenario.
+ * Since we cannot statically know the type of the field 'title', the FuzzyEqRule
+ * cannot auto-inject a tokenizer, and hence we expect an error saying that we cannot
+ * scan over a string as if it were a collection.
+ * Guards against regression to issue 207.
+ * Success : Yes
+ */
+
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..19a0294
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_2/dblp-aqlplus_2.3.query.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Tests that a proper error messags is returned for this scenario.
+ * Since we cannot statically know the type of the field 'title', the FuzzyEqRule
+ * cannot auto-inject a tokenizer, and hence we expect an error saying that we cannot
+ * scan over a string as if it were a collection.
+ * Guards against regression to issue 207.
+ * Success : Yes
+ */
+
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $dblp in dataset('DBLP')
+for $dblp2 in dataset('DBLP')
+where $dblp.title ~= $dblp2.title and $dblp.id < $dblp2.id
+order by $dblp.id, $dblp2.id
+return {'dblp': $dblp, 'dblp2': $dblp2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql
deleted file mode 100644
index a5bb9cd..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql
+++ /dev/null
@@ -1,93 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $tokensCSX :=
- for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len(counthashed-word-tokens($paperDBLP.title)),
- $tokensDBLP,
- len(counthashed-word-tokens($paperCSX.title)),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.2.update.aql
new file mode 100644
index 0000000..47d8420
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.query.aql
new file mode 100644
index 0000000..2d3a1f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.query.aql
@@ -0,0 +1,58 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $tokensCSX :=
+ for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len(counthashed-word-tokens($paperDBLP.title)),
+ $tokensDBLP,
+ len(counthashed-word-tokens($paperCSX.title)),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql
deleted file mode 100644
index fab6877..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql
+++ /dev/null
@@ -1,95 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_2.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $tokensCSX :=
- for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len(counthashed-word-tokens($paperDBLP.title)),
- $tokensDBLP,
- len(counthashed-word-tokens($paperCSX.title)),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.2.update.aql
new file mode 100644
index 0000000..47d8420
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.query.aql
new file mode 100644
index 0000000..8847306
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.query.aql
@@ -0,0 +1,60 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $tokensCSX :=
+ for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len(counthashed-word-tokens($paperDBLP.title)),
+ $tokensDBLP,
+ len(counthashed-word-tokens($paperCSX.title)),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql
deleted file mode 100644
index 34654e3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql
+++ /dev/null
@@ -1,98 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_3.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensCSX :=
- for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len(counthashed-word-tokens($paperDBLP.title)),
- $tokensDBLP,
- len(counthashed-word-tokens($paperCSX.title)),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.query.aql
new file mode 100644
index 0000000..4438e50
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.query.aql
@@ -0,0 +1,62 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensCSX :=
+ for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len(counthashed-word-tokens($paperDBLP.title)),
+ $tokensDBLP,
+ len(counthashed-word-tokens($paperCSX.title)),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql
deleted file mode 100644
index f2ad20d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql
+++ /dev/null
@@ -1,99 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_4.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len($tokensUnrankedDBLP),
- $tokensDBLP,
- len($tokensUnrankedCSX),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.query.aql
new file mode 100644
index 0000000..e2fc8d1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.query.aql
@@ -0,0 +1,64 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len($tokensUnrankedDBLP),
+ $tokensDBLP,
+ len($tokensUnrankedCSX),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql
deleted file mode 100644
index c5d4b73..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql
+++ /dev/null
@@ -1,103 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_5.1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.3.query.aql
new file mode 100644
index 0000000..d6e7183
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.1.3.query.aql
@@ -0,0 +1,68 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql
deleted file mode 100644
index b272e34..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql
+++ /dev/null
@@ -1,104 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_5.2.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.3.query.aql
new file mode 100644
index 0000000..f379cf4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.2.3.query.aql
@@ -0,0 +1,69 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql
deleted file mode 100644
index fd58328..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql
+++ /dev/null
@@ -1,107 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as closed {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_5.3.1.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.1.ddl.aql
new file mode 100644
index 0000000..7dc7297
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.3.query.aql
new file mode 100644
index 0000000..de3c8e8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.1.3.query.aql
@@ -0,0 +1,71 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql
deleted file mode 100644
index a52183f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql
+++ /dev/null
@@ -1,106 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_5.3.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.1.ddl.aql
new file mode 100644
index 0000000..a96dd30
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.1.ddl.aql
@@ -0,0 +1,26 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.3.query.aql
new file mode 100644
index 0000000..803db8f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.3.query.aql
@@ -0,0 +1,71 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql
deleted file mode 100644
index 7ccdc0c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql
+++ /dev/null
@@ -1,101 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-2_5.adm';
-
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- order by $idDBLP, $idCSX
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.query.aql
new file mode 100644
index 0000000..60ea2ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.query.aql
@@ -0,0 +1,66 @@
+use dataverse fuzzyjoin;
+
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ order by $idDBLP, $idCSX
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql
deleted file mode 100644
index b22d355..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql
+++ /dev/null
@@ -1,103 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $tokensCSX :=
- for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len(counthashed-word-tokens($paperDBLP.title)),
- $tokensDBLP,
- len(counthashed-word-tokens($paperCSX.title)),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.1.ddl.aql
new file mode 100644
index 0000000..a96dd30
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.1.ddl.aql
@@ -0,0 +1,26 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.query.aql
new file mode 100644
index 0000000..8757f02
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.query.aql
@@ -0,0 +1,67 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $tokensCSX :=
+ for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len(counthashed-word-tokens($paperDBLP.title)),
+ $tokensDBLP,
+ len(counthashed-word-tokens($paperCSX.title)),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql
deleted file mode 100644
index 5dc2cad..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql
+++ /dev/null
@@ -1,104 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_2.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $tokensCSX :=
- for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len(counthashed-word-tokens($paperDBLP.title)),
- $tokensDBLP,
- len(counthashed-word-tokens($paperCSX.title)),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.query.aql
new file mode 100644
index 0000000..7d40888
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.query.aql
@@ -0,0 +1,69 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $tokensCSX :=
+ for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len(counthashed-word-tokens($paperDBLP.title)),
+ $tokensDBLP,
+ len(counthashed-word-tokens($paperCSX.title)),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $paperDBLP.id, $idCSX := $paperCSX.id, $sim := $sim with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql
deleted file mode 100644
index 0ce00ca..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql
+++ /dev/null
@@ -1,106 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_3.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensDBLP :=
- for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensCSX :=
- for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len(counthashed-word-tokens($paperDBLP.title)),
- $tokensDBLP,
- len(counthashed-word-tokens($paperCSX.title)),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.query.aql
new file mode 100644
index 0000000..85ace1c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.query.aql
@@ -0,0 +1,71 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensDBLP :=
+ for $tokenUnranked in counthashed-word-tokens($paperDBLP.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensCSX :=
+ for $tokenUnranked in counthashed-word-tokens($paperCSX.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len(counthashed-word-tokens($paperDBLP.title)),
+ $tokensDBLP,
+ len(counthashed-word-tokens($paperCSX.title)),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql
deleted file mode 100644
index ac683c8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql
+++ /dev/null
@@ -1,108 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_4.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- len($tokensUnrankedDBLP),
- $tokensDBLP,
- len($tokensUnrankedCSX),
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.query.aql
new file mode 100644
index 0000000..3574534
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.query.aql
@@ -0,0 +1,73 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ len($tokensUnrankedDBLP),
+ $tokensDBLP,
+ len($tokensUnrankedCSX),
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql
deleted file mode 100644
index fd6ad95..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql
+++ /dev/null
@@ -1,112 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.3.query.aql
new file mode 100644
index 0000000..6a6dc0c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.1.3.query.aql
@@ -0,0 +1,77 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql
deleted file mode 100644
index cc49092..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql
+++ /dev/null
@@ -1,113 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.2.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.3.query.aql
new file mode 100644
index 0000000..5359b9f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.2.3.query.aql
@@ -0,0 +1,78 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql
deleted file mode 100644
index 66fb57e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql
+++ /dev/null
@@ -1,115 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.3.1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.3.query.aql
new file mode 100644
index 0000000..f0dbf23
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.1.3.query.aql
@@ -0,0 +1,80 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql
deleted file mode 100644
index 93545b3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql
+++ /dev/null
@@ -1,115 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.3.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGroupped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.3.query.aql
new file mode 100644
index 0000000..40aba87
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.3.query.aql
@@ -0,0 +1,80 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGroupped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql
deleted file mode 100644
index 9782508..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql
+++ /dev/null
@@ -1,119 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.4.1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $paperCSX in dataset('CSX')
-for $paperDBLPridpair in
-for $paperDBLP in dataset('DBLP')
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-where $ridpair.idDBLP = $paperDBLP.id
-return {'idDBLP': $paperDBLP.id, 'idCSX': $ridpair.idCSX, 'paperDBLP': $paperDBLP, 'sim': $ridpair.sim}
-
-where $paperDBLPridpair.idCSX = $paperCSX.id
-order by $paperDBLPridpair.idDBLP, $paperDBLPridpair.idCSX
-return {'dblp': $paperDBLPridpair.paperDBLP, 'csx': $paperCSX, 'sim': $paperDBLPridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.2.update.aql
new file mode 100644
index 0000000..50972b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.2.update.aql
@@ -0,0 +1,11 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.3.query.aql
new file mode 100644
index 0000000..103af68
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.4.1.3.query.aql
@@ -0,0 +1,84 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $paperCSX in dataset('CSX')
+for $paperDBLPridpair in
+for $paperDBLP in dataset('DBLP')
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+where $ridpair.idDBLP = $paperDBLP.id
+return {'idDBLP': $paperDBLP.id, 'idCSX': $ridpair.idCSX, 'paperDBLP': $paperDBLP, 'sim': $ridpair.sim}
+
+where $paperDBLPridpair.idCSX = $paperCSX.id
+order by $paperDBLPridpair.idDBLP, $paperDBLPridpair.idCSX
+return {'dblp': $paperDBLPridpair.paperDBLP, 'csx': $paperCSX, 'sim': $paperDBLPridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql
deleted file mode 100644
index cb5b8ba..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql
+++ /dev/null
@@ -1,120 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.4.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $paperCSX in dataset('CSX')
-for $paperDBLPridpair in
-for $paperDBLP in dataset('DBLP')
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- /*+ hash */
- group by $tokenGrouped := $token with $id
- /*+ inmem 1 302 */
- order by count($id), $tokenGrouped
- return $tokenGrouped
- where $tokenUnranked = /*+ bcast */ $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- /*+ hash*/
- group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-where $ridpair.idDBLP = $paperDBLP.id
-return {'idDBLP': $paperDBLP.id, 'paperDBLP': $paperDBLP, 'idCSX': $ridpair.idCSX, 'sim': $ridpair.sim}
-
-where $paperDBLPridpair.idCSX = $paperCSX.id
-// order by $paperDBLPridpair.idDBLP, $paperDBLPridpair.idCSX
-order by $paperDBLPridpair.paperDBLP.id, $paperDBLPridpair.idCSX
-return {'dblp': $paperDBLPridpair.paperDBLP, 'csx': $paperCSX, 'sim': $paperDBLPridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.2.update.aql
new file mode 100644
index 0000000..50972b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.2.update.aql
@@ -0,0 +1,11 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.3.query.aql
new file mode 100644
index 0000000..2199203
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.4.3.query.aql
@@ -0,0 +1,85 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $paperCSX in dataset('CSX')
+for $paperDBLPridpair in
+for $paperDBLP in dataset('DBLP')
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ /*+ hash */
+ group by $tokenGrouped := $token with $id
+ /*+ inmem 1 302 */
+ order by count($id), $tokenGrouped
+ return $tokenGrouped
+ where $tokenUnranked = /*+ bcast */ $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ /*+ hash*/
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+where $ridpair.idDBLP = $paperDBLP.id
+return {'idDBLP': $paperDBLP.id, 'paperDBLP': $paperDBLP, 'idCSX': $ridpair.idCSX, 'sim': $ridpair.sim}
+
+where $paperDBLPridpair.idCSX = $paperCSX.id
+// order by $paperDBLPridpair.idDBLP, $paperDBLPridpair.idCSX
+order by $paperDBLPridpair.paperDBLP.id, $paperDBLPridpair.idCSX
+return {'dblp': $paperDBLPridpair.paperDBLP, 'csx': $paperCSX, 'sim': $paperDBLPridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql
deleted file mode 100644
index 0f1f2fe..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql
+++ /dev/null
@@ -1,111 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-load dataset CSX
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-3_5.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperDBLP in dataset('DBLP')
- let $idDBLP := $paperDBLP.id
- let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
- let $lenDBLP := len($tokensUnrankedDBLP)
- let $tokensDBLP :=
- for $tokenUnranked in $tokensUnrankedDBLP
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenDBLP in subset-collection(
- $tokensDBLP,
- 0,
- prefix-len-jaccard(len($tokensDBLP), .5f))
-
- for $paperCSX in dataset('CSX')
- let $idCSX := $paperCSX.id
- let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
- let $lenCSX := len($tokensUnrankedCSX)
- let $tokensCSX :=
- for $tokenUnranked in $tokensUnrankedCSX
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- let $id := $paper.id
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $id
- order by count($id), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefixTokenCSX in subset-collection(
- $tokensCSX,
- 0,
- prefix-len-jaccard(len($tokensCSX), .5f))
-
- where $prefixTokenDBLP = $prefixTokenCSX
-
- let $sim := similarity-jaccard-prefix(
- $lenDBLP,
- $tokensDBLP,
- $lenCSX,
- $tokensCSX,
- $prefixTokenDBLP,
- .5f)
- where $sim >= .5f
- group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
- return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
-
-for $paperDBLP in dataset('DBLP')
-for $paperCSX in dataset('CSX')
-where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
-order by $paperDBLP.id, $paperCSX.id
-return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.query.aql
new file mode 100644
index 0000000..44807b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.query.aql
@@ -0,0 +1,75 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperDBLP in dataset('DBLP')
+ let $idDBLP := $paperDBLP.id
+ let $tokensUnrankedDBLP := counthashed-word-tokens($paperDBLP.title)
+ let $lenDBLP := len($tokensUnrankedDBLP)
+ let $tokensDBLP :=
+ for $tokenUnranked in $tokensUnrankedDBLP
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenDBLP in subset-collection(
+ $tokensDBLP,
+ 0,
+ prefix-len-jaccard(len($tokensDBLP), .5f))
+
+ for $paperCSX in dataset('CSX')
+ let $idCSX := $paperCSX.id
+ let $tokensUnrankedCSX := counthashed-word-tokens($paperCSX.title)
+ let $lenCSX := len($tokensUnrankedCSX)
+ let $tokensCSX :=
+ for $tokenUnranked in $tokensUnrankedCSX
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ let $id := $paper.id
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $id
+ order by count($id), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenCSX in subset-collection(
+ $tokensCSX,
+ 0,
+ prefix-len-jaccard(len($tokensCSX), .5f))
+
+ where $prefixTokenDBLP = $prefixTokenCSX
+
+ let $sim := similarity-jaccard-prefix(
+ $lenDBLP,
+ $tokensDBLP,
+ $lenCSX,
+ $tokensCSX,
+ $prefixTokenDBLP,
+ .5f)
+ where $sim >= .5f
+ group by $idDBLP := $idDBLP, $idCSX := $idCSX, $sim := $sim with $sim
+ return {'idDBLP': $idDBLP, 'idCSX': $idCSX, 'sim': $sim[0]}
+
+for $paperDBLP in dataset('DBLP')
+for $paperCSX in dataset('CSX')
+where $ridpair.idDBLP = $paperDBLP.id and $ridpair.idCSX = $paperCSX.id
+order by $paperDBLP.id, $paperCSX.id
+return {'dblp': $paperDBLP, 'csx': $paperCSX, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql
deleted file mode 100644
index ead8e81..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
-load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $i in dataset('DBLP')
-for $j in dataset('CSX')
-where $i.title ~= $j.title
-order by $i.id, $j.id
-return {'dblp': $i, 'csx': $j}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..3103817
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $i in dataset('DBLP')
+for $j in dataset('CSX')
+where word-tokens($i.title) ~= word-tokens($j.title)
+order by $i.id, $j.id
+return {'dblp': $i, 'csx': $j}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql
deleted file mode 100644
index 611fd29..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
-load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-aqlplus_2.adm';
-
-set simthreshold '.5f';
-
-for $csx in dataset('CSX')
-for $dblp in dataset('DBLP')
-where $dblp.title ~= $csx.title
-order by $dblp.id, $csx.id
-return {'dblp': $dblp, 'csx': $csx}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..2335129
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+
+set simthreshold '.5f';
+
+for $csx in dataset('CSX')
+for $dblp in dataset('DBLP')
+where word-tokens($dblp.title) ~= word-tokens($csx.title)
+order by $dblp.id, $csx.id
+return {'dblp': $dblp, 'csx': $csx}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql
deleted file mode 100644
index e6dc1ed..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
-load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-aqlplus_3.adm';
-
-set simthreshold '.5f';
-
-for $dblp in dataset('DBLP')
-for $csx in dataset('CSX')
-where $csx.title ~= $dblp.title
-order by $dblp.id, $csx.id
-return {'dblp': $dblp, 'csx': $csx}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.query.aql
new file mode 100644
index 0000000..de109a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $dblp in dataset('DBLP')
+for $csx in dataset('CSX')
+where word-tokens($csx.title) ~= word-tokens($dblp.title)
+order by $dblp.id, $csx.id
+return {'dblp': $dblp, 'csx': $csx}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql
deleted file mode 100644
index e1b53d3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql
+++ /dev/null
@@ -1,40 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create type CSXType as open {
- id: int32,
- csxid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
-
-load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
-load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
-
-write output to nc1:'rttest/fuzzyjoin_dblp-csx-dblp-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $dblp in dataset('DBLP')
-for $csx in dataset('CSX')
-for $dblp2 in dataset('DBLP')
-where $dblp.title ~= $csx.title and $csx.authors ~= $dblp2.authors
-order by $dblp.id, $csx.id, $dblp2.id
-return {'dblp': $dblp, 'csx': $csx, 'dblp2': $dblp2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..e690c64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as open {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..916bd56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..588f541
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $dblp in dataset('DBLP')
+for $csx in dataset('CSX')
+for $dblp2 in dataset('DBLP')
+where word-tokens($dblp.title) ~= word-tokens($csx.title) and word-tokens($csx.authors) ~= word-tokens($dblp2.authors)
+order by $dblp.id, $csx.id, $dblp2.id
+return {'dblp': $dblp, 'csx': $csx, 'dblp2': $dblp2}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql
deleted file mode 100644
index a235756..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql
+++ /dev/null
@@ -1,29 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-
-load dataset DBLP
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-
-write output to nc1:'rttest/fuzzyjoin_dblp-lookup_1.adm';
-
-for $paper in dataset('DBLP')
-where $paper.id = 1
-return $paper
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.1.ddl.aql
new file mode 100644
index 0000000..239399f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.2.update.aql
new file mode 100644
index 0000000..308608e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.3.query.aql
new file mode 100644
index 0000000..3557162
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1/dblp-lookup_1.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+for $paper in dataset('DBLP')
+where $paper.id = 1
+return $paper
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql
deleted file mode 100644
index 68800dd..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql
+++ /dev/null
@@ -1,166 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create external dataset DBLP(DBLPType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-
-write output to nc1:'rttest/fuzzyjoin_dblp-splits-3_1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $paperLeft in dataset('DBLP')
- let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
- let $tokensLeft :=
- for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefix_tokenLeft in subset-collection(
- $tokensLeft,
- 0,
- prefix-len-jaccard(len($tokensLeft), .5f))
-
- for $paperRight in dataset('DBLP')
- let $lenRight := len(counthashed-word-tokens($paperRight.title))
- let $tokensRight :=
- for $tokenUnranked in counthashed-word-tokens($paperRight.title)
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $paper in dataset('DBLP')
- for $token in counthashed-word-tokens($paper.title)
- group by $tokenGroupped := $token with $paper
- order by count($paper), $tokenGroupped
- return $tokenGroupped
- where $tokenUnranked = $tokenRanked
- order by $i
- return $i
- for $prefix_tokenRight in subset-collection(
- $tokensRight,
- 0,
- prefix-len-jaccard(len($tokensRight), .5f))
-
- where $prefix_tokenLeft = $prefix_tokenRight
-
- let $sim := similarity-jaccard-prefix(
- $lenLeft,
- $tokensLeft,
- $lenRight,
- $tokensRight,
- $prefix_tokenLeft,
- .5f)
- where $sim >= .5f and $paperLeft.id < $paperRight.id
- group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
- return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
-
-for $paperLeft in dataset('DBLP')
-for $paperRight in dataset('DBLP')
-where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
-order by $paperLeft.id, $paperRight.id
-return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
-
-/*
-edu.uci.ics.aqua.common.exceptions.AquaException: Attempting to construct a nested plan with 3 operator descriptors. Currently, nested plans can only consist in linear pipelines of Asterix micro operators.
- at edu.uci.ics.aqua.algebra.operators.physical.AbstractGroupByPhysicalOperator.buildPipelineWithProjection(AbstractGroupByPhysicalOperator.java:47)
- at edu.uci.ics.aqua.algebra.operators.physical.AbstractGroupByPhysicalOperator.compileSubplans(AbstractGroupByPhysicalOperator.java:29)
- at edu.uci.ics.aqua.algebra.operators.physical.PreSortedGroupByPOperator.contributeRuntimeOperator(PreSortedGroupByPOperator.java:133)
- at edu.uci.ics.aqua.algebra.operators.logical.AbstractLogicalOperator.contributeRuntimeOperator(AbstractLogicalOperator.java:208)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:52)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
- at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compilePlan(PlanCompiler.java:30)
- at edu.uci.ics.aqua.api.HeuristicCompilerFactoryBuilder$1$1.createJob(HeuristicCompilerFactoryBuilder.java:64)
- at edu.uci.ics.asterix.api.common.APIFramework.compileQuery(APIFramework.java:323)
- at edu.uci.ics.asterix.api.java.AsterixJavaClient.compile(AsterixJavaClient.java:71)
- at edu.uci.ics.asterix.test.runtime.functions.RuntimeFunctionsTest.test(RuntimeFunctionsTest.java:150)
- at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
- at org.junit.runners.Suite.runChild(Suite.java:128)
- at org.junit.runners.Suite.runChild(Suite.java:24)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
- at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
- at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
- at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
-
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.1.ddl.aql
new file mode 100644
index 0000000..d925752
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create external dataset DBLP(DBLPType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.2.update.aql
new file mode 100644
index 0000000..a3395b1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+create external dataset DBLP(DBLPType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.3.query.aql
new file mode 100644
index 0000000..5a9bac4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1/dblp-splits-3_1.3.query.aql
@@ -0,0 +1,145 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperLeft in dataset('DBLP')
+ let $lenLeft := len(counthashed-word-tokens($paperLeft.title))
+ let $tokensLeft :=
+ for $tokenUnranked in counthashed-word-tokens($paperLeft.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefix_tokenLeft in subset-collection(
+ $tokensLeft,
+ 0,
+ prefix-len-jaccard(len($tokensLeft), .5f))
+
+ for $paperRight in dataset('DBLP')
+ let $lenRight := len(counthashed-word-tokens($paperRight.title))
+ let $tokensRight :=
+ for $tokenUnranked in counthashed-word-tokens($paperRight.title)
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $token in counthashed-word-tokens($paper.title)
+ group by $tokenGroupped := $token with $paper
+ order by count($paper), $tokenGroupped
+ return $tokenGroupped
+ where $tokenUnranked = $tokenRanked
+ order by $i
+ return $i
+ for $prefix_tokenRight in subset-collection(
+ $tokensRight,
+ 0,
+ prefix-len-jaccard(len($tokensRight), .5f))
+
+ where $prefix_tokenLeft = $prefix_tokenRight
+
+ let $sim := similarity-jaccard-prefix(
+ $lenLeft,
+ $tokensLeft,
+ $lenRight,
+ $tokensRight,
+ $prefix_tokenLeft,
+ .5f)
+ where $sim >= .5f and $paperLeft.id < $paperRight.id
+ group by $idLeft := $paperLeft.id, $idRight := $paperRight.id with $sim
+ return {'idLeft': $idLeft, 'idRight': $idRight, 'sim': $sim[0]}
+
+for $paperLeft in dataset('DBLP')
+for $paperRight in dataset('DBLP')
+where $ridpair.idLeft = $paperLeft.id and $ridpair.idRight = $paperRight.id
+order by $paperLeft.id, $paperRight.id
+return {'left': $paperLeft, 'right': $paperRight, 'sim': $ridpair.sim}
+
+/*
+edu.uci.ics.aqua.common.exceptions.AquaException: Attempting to construct a nested plan with 3 operator descriptors. Currently, nested plans can only consist in linear pipelines of Asterix micro operators.
+ at edu.uci.ics.aqua.algebra.operators.physical.AbstractGroupByPhysicalOperator.buildPipelineWithProjection(AbstractGroupByPhysicalOperator.java:47)
+ at edu.uci.ics.aqua.algebra.operators.physical.AbstractGroupByPhysicalOperator.compileSubplans(AbstractGroupByPhysicalOperator.java:29)
+ at edu.uci.ics.aqua.algebra.operators.physical.PreSortedGroupByPOperator.contributeRuntimeOperator(PreSortedGroupByPOperator.java:133)
+ at edu.uci.ics.aqua.algebra.operators.logical.AbstractLogicalOperator.contributeRuntimeOperator(AbstractLogicalOperator.java:208)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:52)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compileOpRef(PlanCompiler.java:44)
+ at edu.uci.ics.aqua.jobgen.impl.PlanCompiler.compilePlan(PlanCompiler.java:30)
+ at edu.uci.ics.aqua.api.HeuristicCompilerFactoryBuilder$1$1.createJob(HeuristicCompilerFactoryBuilder.java:64)
+ at edu.uci.ics.asterix.api.common.APIFramework.compileQuery(APIFramework.java:323)
+ at edu.uci.ics.asterix.api.java.AsterixJavaClient.compile(AsterixJavaClient.java:71)
+ at edu.uci.ics.asterix.test.runtime.functions.RuntimeFunctionsTest.test(RuntimeFunctionsTest.java:150)
+ at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
+ at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
+ at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
+ at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
+ at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
+ at org.junit.runners.Suite.runChild(Suite.java:128)
+ at org.junit.runners.Suite.runChild(Suite.java:24)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
+ at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
+ at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
+
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql
deleted file mode 100644
index 6093823..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql
+++ /dev/null
@@ -1,44 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point
-}
-
-create type UserType as open{
- name: string,
- interests: <string>,
- address: AddressType,
- member_of: <
- {
- sig_id: int32,
- chapter_name: string,
- member_since: date
- }
->
-}
-
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset User(UserType)
- partitioned by key name on group1;
-load dataset User from nc1:'data/events/tiny/user.adm';
-
-write output to nc1:'rttest/fuzzyjoin_events-users-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('User')
-let $similar_users :=
- for $similar_user in dataset('User')
- where $user.interests ~= $similar_user.interests
- order by $similar_user.name
- return { "user_name": $similar_user.name }
-order by $user.name
-return { "user_name": $user.name, "similar_users": $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..89d2e94
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.1.ddl.aql
@@ -0,0 +1,26 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type AddressType as closed {
+ street: string,
+ city: string,
+ zip: string,
+ latlong: point
+}
+
+create type UserType as open{
+ name: string,
+ interests: {{string}},
+ address: AddressType,
+ member_of: {{
+ {
+ sig_id: int32,
+ chapter_name: string,
+ member_since: date
+ }
+}}
+}
+
+create dataset User(UserType) primary key name;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..b87e8a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset User
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..43b0659
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1/events-users-aqlplus_1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('User')
+let $similar_users :=
+ for $similar_user in dataset('User')
+ where $user.interests ~= $similar_user.interests
+ order by $similar_user.name
+ return { "user_name": $similar_user.name }
+order by $user.name
+return { "user_name": $user.name, "similar_users": $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql
deleted file mode 100644
index 7e4ab38..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-int-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $user2 in dataset('Users')
-where $user.interests ~= $user2.interests and $user.uid < $user2.uid
-order by $user.uid, $user2.uid
-return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..fb9f127
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..b0bd349
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1/user-int-aqlplus_1.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $user2 in dataset('Users')
+where $user.interests ~= $user2.interests and $user.uid < $user2.uid
+order by $user.uid, $user2.uid
+return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql
deleted file mode 100644
index d1e49a0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-int-aqlplus_2.adm';
-
-set simthreshold '.5f';
-
-for $user2 in dataset('Users')
-for $user in dataset('Users')
-where $user.interests ~= $user2.interests and $user.uid < $user2.uid
-order by $user.uid, $user2.uid
-return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..fb9f127
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..54e49ac
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2/user-int-aqlplus_2.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user2 in dataset('Users')
+for $user in dataset('Users')
+where $user.interests ~= $user2.interests and $user.uid < $user2.uid
+order by $user.uid, $user2.uid
+return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql
deleted file mode 100644
index bf15bf6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-int-aqlplus_3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $user2 in dataset('Users')
-where $user2.interests ~= $user.interests and $user.uid < $user2.uid
-order by $user.uid, $user2.uid
-return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.2.update.aql
new file mode 100644
index 0000000..88a8e4e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.2.update.aql
@@ -0,0 +1,8 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.3.query.aql
new file mode 100644
index 0000000..2017f1b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3/user-int-aqlplus_3.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $user2 in dataset('Users')
+where $user2.interests ~= $user.interests and $user.uid < $user2.uid
+order by $user.uid, $user2.uid
+return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql
deleted file mode 100644
index ccdd07f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-lot-aqlplus_1.1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $user2 in dataset('Users')
-where $user.lottery_numbers ~= $user2.lottery_numbers and $user.uid < $user2.uid
-let $sim := similarity-jaccard($user.lottery_numbers, $user2.lottery_numbers)
-order by $sim desc, $user.uid, $user2.uid limit 3
-return { 'user': $user, 'user2': $user2, 'sim': $sim }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.2.update.aql
new file mode 100644
index 0000000..fb9f127
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.3.query.aql
new file mode 100644
index 0000000..6bf25bd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1/user-lot-aqlplus_1.1.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $user2 in dataset('Users')
+where $user.lottery_numbers ~= $user2.lottery_numbers and $user.uid < $user2.uid
+let $sim := similarity-jaccard($user.lottery_numbers, $user2.lottery_numbers)
+order by $sim desc, $user.uid, $user2.uid limit 3
+return { 'user': $user, 'user2': $user2, 'sim': $sim }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql
deleted file mode 100644
index 3b4a6fe..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-lot-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $user2 in dataset('Users')
-where $user.lottery_numbers ~= $user2.lottery_numbers and $user.uid < $user2.uid
-order by $user.uid, $user2.uid
-return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..fb9f127
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..789f19c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1/user-lot-aqlplus_1.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $user2 in dataset('Users')
+where $user.lottery_numbers ~= $user2.lottery_numbers and $user.uid < $user2.uid
+order by $user.uid, $user2.uid
+return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql
deleted file mode 100644
index 3e970c7..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-lot-aqlplus_2.adm';
-
-set simthreshold '.5f';
-
-for $user2 in dataset('Users')
-for $user in dataset('Users')
-where $user.lottery_numbers ~= $user2.lottery_numbers and $user.uid < $user2.uid
-order by $user.uid, $user2.uid
-return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..fb9f127
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..13bcac3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2/user-lot-aqlplus_2.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user2 in dataset('Users')
+for $user in dataset('Users')
+where $user.lottery_numbers ~= $user2.lottery_numbers and $user.uid < $user2.uid
+order by $user.uid, $user2.uid
+return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql
deleted file mode 100644
index 1979ba1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-create dataverse fuzzyjoin;
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-lot-aqlplus_3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $user2 in dataset('Users')
-where $user2.lottery_numbers ~= $user.lottery_numbers and $user.uid < $user2.uid
-order by $user.uid, $user2.uid
-return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.1.ddl.aql
new file mode 100644
index 0000000..3930bdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse fuzzyjoin if exists;
+create dataverse fuzzyjoin;
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.2.update.aql
new file mode 100644
index 0000000..fb9f127
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.3.query.aql
new file mode 100644
index 0000000..2453ed2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3/user-lot-aqlplus_3.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $user2 in dataset('Users')
+where $user2.lottery_numbers ~= $user.lottery_numbers and $user.uid < $user2.uid
+order by $user.uid, $user2.uid
+return { 'user': $user, 'user2': $user2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql
deleted file mode 100644
index abbb66a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql
+++ /dev/null
@@ -1,103 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: {{string}}
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: {{string}}
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-
-load dataset Users
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
-
-load dataset Visitors
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-int-3_1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $user in dataset('Users')
- let $lenUser := len($user.interests)
- let $tokensUser :=
- for $token in $user.interests
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $user in dataset('Users')
- for $token in $user.interests
- group by $tokenGroupped := $token with $user
- order by count($user), $tokenGroupped
- return $tokenGroupped
- where $token = $tokenRanked
- order by $i
- return $i
- for $prefixTokenUser in subset-collection(
- $tokensUser,
- 0,
- prefix-len-jaccard($lenUser, .5f))
-
- for $visitor in dataset('Visitors')
- let $lenVisitor := len($visitor.interests)
- let $tokensVisitor :=
- for $token in $visitor.interests
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $user in dataset('Users')
- for $token in $user.interests
- group by $tokenGroupped := $token with $user
- order by count($user), $tokenGroupped
- return $tokenGroupped
- where $token = $tokenRanked
- order by $i
- return $i
- for $prefixTokenVisitor in subset-collection(
- $tokensVisitor,
- 0,
- prefix-len-jaccard($lenVisitor, .5f))
-
- where $prefixTokenUser = $prefixTokenVisitor
-
- let $sim := similarity-jaccard-prefix(
- $lenUser,
- $tokensUser,
- $lenVisitor,
- $tokensVisitor,
- $prefixTokenUser,
- .5f)
- where $sim >= .5f
- group by $uid := $user.uid, $vid := $visitor.vid with $sim
- return {'uid': $uid, 'vid': $vid, 'sim': $sim[0]}
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $ridpair.uid = $user.uid and $ridpair.vid = $visitor.vid
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.3.query.aql
new file mode 100644
index 0000000..89dd3a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1/user-vis-int-3_1.3.query.aql
@@ -0,0 +1,69 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $user in dataset('Users')
+ let $lenUser := len($user.interests)
+ let $tokensUser :=
+ for $token in $user.interests
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $user in dataset('Users')
+ for $token in $user.interests
+ group by $tokenGroupped := $token with $user
+ order by count($user), $tokenGroupped
+ return $tokenGroupped
+ where $token = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenUser in subset-collection(
+ $tokensUser,
+ 0,
+ prefix-len-jaccard($lenUser, .5f))
+
+ for $visitor in dataset('Visitors')
+ let $lenVisitor := len($visitor.interests)
+ let $tokensVisitor :=
+ for $token in $visitor.interests
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $user in dataset('Users')
+ for $token in $user.interests
+ group by $tokenGroupped := $token with $user
+ order by count($user), $tokenGroupped
+ return $tokenGroupped
+ where $token = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenVisitor in subset-collection(
+ $tokensVisitor,
+ 0,
+ prefix-len-jaccard($lenVisitor, .5f))
+
+ where $prefixTokenUser = $prefixTokenVisitor
+
+ let $sim := similarity-jaccard-prefix(
+ $lenUser,
+ $tokensUser,
+ $lenVisitor,
+ $tokensVisitor,
+ $prefixTokenUser,
+ .5f)
+ where $sim >= .5f
+ group by $uid := $user.uid, $vid := $visitor.vid with $sim
+ return {'uid': $uid, 'vid': $vid, 'sim': $sim[0]}
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $ridpair.uid = $user.uid and $ridpair.vid = $visitor.vid
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql
deleted file mode 100644
index 1a676c5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-int-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $user.interests ~= $visitor.interests
-order by $user.uid, $visitor.vid
-return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..863a339
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1/user-vis-int-aqlplus_1.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $user.interests ~= $visitor.interests
+order by $user.uid, $visitor.vid
+return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql
deleted file mode 100644
index 1e6e417..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-int-aqlplus_2.adm';
-
-set simthreshold '.5f';
-
-for $visitor in dataset('Visitors')
-for $user in dataset('Users')
-where $user.interests ~= $visitor.interests
-order by $user.uid, $visitor.vid
-return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..0b6c54d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2/user-vis-int-aqlplus_2.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $visitor in dataset('Visitors')
+for $user in dataset('Users')
+where $user.interests ~= $visitor.interests
+order by $user.uid, $visitor.vid
+return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql
deleted file mode 100644
index 2d39bd4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-int-aqlplus_3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $visitor.interests ~= $user.interests
-order by $user.uid, $visitor.vid
-return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.3.query.aql
new file mode 100644
index 0000000..519c6c6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3/user-vis-int-aqlplus_3.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $visitor.interests ~= $user.interests
+order by $user.uid, $visitor.vid
+return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql
deleted file mode 100644
index 4561a7a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql
+++ /dev/null
@@ -1,38 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-int-vis-user-lot-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-for $user2 in dataset('Users')
-where $user.interests ~= $visitor.interests and $visitor.lottery_numbers ~= $user2.lottery_numbers
-order by $user.uid, $visitor.vid, $user2.uid
-return {'user': $user, 'visitor': $visitor, 'user2': $user2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..4dd6e92
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1/user-vis-int-vis-user-lot-aqlplus_1.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+for $user2 in dataset('Users')
+where $user.interests ~= $visitor.interests and $visitor.lottery_numbers ~= $user2.lottery_numbers
+order by $user.uid, $visitor.vid, $user2.uid
+return {'user': $user, 'visitor': $visitor, 'user2': $user2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql
deleted file mode 100644
index 4de46a5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql
+++ /dev/null
@@ -1,102 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: {{string}}
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: {{string}}
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
-
-load dataset Visitors
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-3_1.adm';
-
-//
-// -- - Stage 3 - --
-//
-for $ridpair in
- //
- // -- - Stage 2 - --
- //
- for $user in dataset('Users')
- let $lenUser := len($user.lottery_numbers)
- let $tokensUser :=
- for $token in $user.lottery_numbers
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $user in dataset('Users')
- for $token in $user.lottery_numbers
- group by $tokenGroupped := $token with $user
- order by count($user)
- return $tokenGroupped
- where $token = $tokenRanked
- order by $i
- return $i
- for $prefixTokenUser in subset-collection(
- $tokensUser,
- 0,
- prefix-len-jaccard($lenUser, .5f))
-
- for $visitor in dataset('Visitors')
- let $lenVisitor := len($visitor.lottery_numbers)
- let $tokensVisitor :=
- for $token in $visitor.lottery_numbers
- for $tokenRanked at $i in
- //
- // -- - Stage 1 - --
- //
- for $user in dataset('Users')
- for $token in $user.lottery_numbers
- group by $tokenGroupped := $token with $user
- order by count($user)
- return $tokenGroupped
- where $token = $tokenRanked
- order by $i
- return $i
- for $prefixTokenVisitor in subset-collection(
- $tokensVisitor,
- 0,
- prefix-len-jaccard($lenVisitor, .5f))
-
- where $prefixTokenUser = $prefixTokenVisitor
-
- let $sim := similarity-jaccard-prefix(
- $lenUser,
- $tokensUser,
- $lenVisitor,
- $tokensVisitor,
- $prefixTokenUser,
- .5f)
- where $sim >= .5f
- group by $uid := $user.uid, $vid := $visitor.vid with $sim
- return {'uid': $uid, 'vid': $vid, 'sim': $sim[0]}
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $ridpair.uid = $user.uid and $ridpair.vid = $visitor.vid
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.3.query.aql
new file mode 100644
index 0000000..5d489ab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1/user-vis-lot-3_1.3.query.aql
@@ -0,0 +1,69 @@
+use dataverse fuzzyjoin;
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $user in dataset('Users')
+ let $lenUser := len($user.lottery_numbers)
+ let $tokensUser :=
+ for $token in $user.lottery_numbers
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $user in dataset('Users')
+ for $token in $user.lottery_numbers
+ group by $tokenGroupped := $token with $user
+ order by count($user)
+ return $tokenGroupped
+ where $token = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenUser in subset-collection(
+ $tokensUser,
+ 0,
+ prefix-len-jaccard($lenUser, .5f))
+
+ for $visitor in dataset('Visitors')
+ let $lenVisitor := len($visitor.lottery_numbers)
+ let $tokensVisitor :=
+ for $token in $visitor.lottery_numbers
+ for $tokenRanked at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $user in dataset('Users')
+ for $token in $user.lottery_numbers
+ group by $tokenGroupped := $token with $user
+ order by count($user)
+ return $tokenGroupped
+ where $token = $tokenRanked
+ order by $i
+ return $i
+ for $prefixTokenVisitor in subset-collection(
+ $tokensVisitor,
+ 0,
+ prefix-len-jaccard($lenVisitor, .5f))
+
+ where $prefixTokenUser = $prefixTokenVisitor
+
+ let $sim := similarity-jaccard-prefix(
+ $lenUser,
+ $tokensUser,
+ $lenVisitor,
+ $tokensVisitor,
+ $prefixTokenUser,
+ .5f)
+ where $sim >= .5f
+ group by $uid := $user.uid, $vid := $visitor.vid with $sim
+ return {'uid': $uid, 'vid': $vid, 'sim': $sim[0]}
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $ridpair.uid = $user.uid and $ridpair.vid = $visitor.vid
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor, 'sim': $ridpair.sim}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql
deleted file mode 100644
index d328366..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $user.lottery_numbers ~= $visitor.lottery_numbers
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..474752c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1/user-vis-lot-aqlplus_1.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $user.lottery_numbers ~= $visitor.lottery_numbers
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql
deleted file mode 100644
index bf0f287..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-aqlplus_2.adm';
-
-set simthreshold '.5f';
-
-for $visitor in dataset('Visitors')
-for $user in dataset('Users')
-where $user.lottery_numbers ~= $visitor.lottery_numbers
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..17d7bf0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2/user-vis-lot-aqlplus_2.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $visitor in dataset('Visitors')
+for $user in dataset('Users')
+where $user.lottery_numbers ~= $visitor.lottery_numbers
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql
deleted file mode 100644
index 72cb80c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-aqlplus_3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $visitor.lottery_numbers ~= $user.lottery_numbers
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.3.query.aql
new file mode 100644
index 0000000..afd4313
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3/user-vis-lot-aqlplus_3.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $visitor.lottery_numbers ~= $user.lottery_numbers
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql
deleted file mode 100644
index 19415d5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql
+++ /dev/null
@@ -1,38 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-aqlplus_4.adm';
-
-set simfunction 'Jaccard';
-set simthreshold '.6f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $user.lottery_numbers ~= $visitor.lottery_numbers
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.3.query.aql
new file mode 100644
index 0000000..3f84e64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4/user-vis-lot-aqlplus_4.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+set simfunction 'Jaccard';
+set simthreshold '.6f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $user.lottery_numbers ~= $visitor.lottery_numbers
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql
deleted file mode 100644
index 698b1b5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql
+++ /dev/null
@@ -1,35 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-aqlplus_5.adm';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $user.lottery_numbers ~= $visitor.lottery_numbers
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.3.query.aql
new file mode 100644
index 0000000..4070956
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5/user-vis-lot-aqlplus_5.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse fuzzyjoin;
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $user.lottery_numbers ~= $visitor.lottery_numbers
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor}
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql
deleted file mode 100644
index 6a43fa6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-int-aqlplus_1.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where $user.lottery_numbers ~= $visitor.lottery_numbers
-and $user.interests ~= $visitor.interests
-order by $user.uid, $visitor.vid
-return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.3.query.aql
new file mode 100644
index 0000000..ce272ee
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1/user-vis-lot-int-aqlplus_1.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where $user.lottery_numbers ~= $visitor.lottery_numbers
+and $user.interests ~= $visitor.interests
+order by $user.uid, $visitor.vid
+return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql
deleted file mode 100644
index 693191a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse fuzzyjoin if exists;
-
-create dataverse fuzzyjoin;
-
-use dataverse fuzzyjoin;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: <string>
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-
-load dataset Users from nc1:'data/users-visitors-small/users.json';
-load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
-
-write output to nc1:'rttest/fuzzyjoin_user-vis-lot-int-aqlplus_2.adm';
-
-set simthreshold '.5f';
-
-for $visitor in dataset('Visitors')
-for $user in dataset('Users')
-where $user.lottery_numbers ~= $visitor.lottery_numbers
-and $user.interests ~= $visitor.interests
-order by $user.uid, $visitor.vid
-return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.1.ddl.aql
new file mode 100644
index 0000000..beb47a2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.2.update.aql
new file mode 100644
index 0000000..8b3b85b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.3.query.aql
new file mode 100644
index 0000000..2f7d1d8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2/user-vis-lot-int-aqlplus_2.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $visitor in dataset('Visitors')
+for $user in dataset('Users')
+where $user.lottery_numbers ~= $visitor.lottery_numbers
+and $user.interests ~= $visitor.interests
+order by $user.uid, $visitor.vid
+return { 'user': $user, 'visitor': $visitor }
diff --git a/asterix-app/src/test/resources/runtimets/queries/groupby-orderby-count.aql b/asterix-app/src/test/resources/runtimets/queries/groupby-orderby-count.aql
deleted file mode 100644
index ce4662d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/groupby-orderby-count.aql
+++ /dev/null
@@ -1,23 +0,0 @@
-drop dataverse twitter if exists;
-create dataverse twitter;
-use dataverse twitter;
-create type Tweet as open {
- id: int32,
- tweetid: int64,
- loc: point,
- time: datetime,
- text: string
-}
-
-create external dataset TwitterData(Tweet)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/twitter/extrasmalltweets.txt"),("format"="adm"));
-
-write output to nc1:"rttest/groupby-orderby-count.adm";
-
-for $t in dataset('TwitterData')
-let $tokens := word-tokens($t.text)
-for $token in $tokens
-group by $tok := $token with $token
-order by count($token) desc, $tok asc
-return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.1.ddl.aql
new file mode 100644
index 0000000..4ec251d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a (*sequence*) file in HDFS.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 7th Jan 2013
+*/
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineType as closed {
+ content: string
+};
+
+
+create external dataset TextDataset(LineType)
+using hdfs
+(("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/textFileS"),("input-format"="sequence-input-format"),("format"="delimited-text"),("delimiter"="."));
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.2.update.aql
new file mode 100644
index 0000000..b6aae9e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a (*sequence*) file in HDFS.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 7th Jan 2013
+*/
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.3.query.aql
new file mode 100644
index 0000000..be4187e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_02/hdfs_02.3.query.aql
@@ -0,0 +1,14 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a (*sequence*) file in HDFS.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 7th Jan 2013
+*/
+use dataverse test;
+
+for $line in dataset('TextDataset')
+let $tokens := word-tokens($line.content)
+for $token in $tokens
+group by $tok := $token with $token
+order by $tok
+return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.1.ddl.aql
new file mode 100644
index 0000000..c35036a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a large (35kb) text file in HDFS.
+ The input file is sufficiently large to guarantee that # of bytes > than internal buffer of size 8192.
+ This causes a record to span across the buffer size boundaries.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 7th Jan 2013
+*/
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineType as closed {
+ content: string
+};
+
+create external dataset TextDataset(LineType)
+using hdfs
+(("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/large_text"),("input-format"="text-input-format"),("format"="delimited-text"),("delimiter"="."));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.2.update.aql
new file mode 100644
index 0000000..bfa0f61
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.2.update.aql
@@ -0,0 +1,9 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a large (35kb) text file in HDFS.
+ The input file is sufficiently large to guarantee that # of bytes > than internal buffer of size 8192.
+ This causes a record to span across the buffer size boundaries.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 7th Jan 2013
+*/
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.3.query.aql
new file mode 100644
index 0000000..dae4648
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/hdfs_03/hdfs_03.3.query.aql
@@ -0,0 +1,16 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a large (35kb) text file in HDFS.
+ The input file is sufficiently large to guarantee that # of bytes > than internal buffer of size 8192.
+ This causes a record to span across the buffer size boundaries.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 7th Jan 2013
+*/
+use dataverse test;
+
+for $line in dataset('TextDataset')
+let $tokens := word-tokens($line.content)
+for $token in $tokens
+group by $tok := $token with $token
+order by $tok
+return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.1.ddl.aql
new file mode 100644
index 0000000..77e2eb5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a file in HDFS.
+ Iterate over the contained tuples.
+* Expected Res : Success
+* Issue : 245
+* Date : 7th Jan 2013
+*/
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type LineType as closed {
+ line: string
+};
+
+create external dataset TextDataset(LineType)
+using hdfs
+(("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/asterix_info.txt"),("input-format"="text-input-format"),("format"="delimited-text"),("delimiter"="."));
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.2.update.aql
new file mode 100644
index 0000000..2b0efea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.2.update.aql
@@ -0,0 +1,8 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a file in HDFS.
+ Iterate over the contained tuples.
+* Expected Res : Success
+* Issue : 245
+* Date : 7th Jan 2013
+*/
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.3.query.aql
new file mode 100644
index 0000000..653ee6c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hdfs/issue_245_hdfs/issue_245_hdfs.3.query.aql
@@ -0,0 +1,11 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a file in HDFS.
+ Iterate over the contained tuples.
+* Expected Res : Success
+* Issue : 245
+* Date : 7th Jan 2013
+*/
+use dataverse test;
+
+for $x in dataset('TextDataset')
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql
new file mode 100644
index 0000000..e961f0a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Use hint (cardinality) for the created dataset.
+* Expected Res : Success
+* Date : 30th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLPadm(DBLPType)
+primary key id
+hints(cardinality=200);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql
new file mode 100644
index 0000000..c2543f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql
@@ -0,0 +1,15 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Use hint (cardinality) for the created dataset.
+* Expected Res : Success
+* Date : 30th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+load dataset DBLPadm
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/part-00000.adm,nc1://data/dblp-small/part-00001.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql
new file mode 100644
index 0000000..0334be7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql
@@ -0,0 +1,14 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Use hint (cardinality) for the created dataset.
+* Expected Res : Success
+* Date : 30th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+for $paper in dataset('DBLPadm')
+order by $paper.id
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql
new file mode 100644
index 0000000..0df8528
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a (*sequence*) file in HDFS.
+ Provide hint(cardinality) when creating the dataset.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 30th Jan 2013
+*/
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type LineType as closed {
+ content: string
+};
+
+create external dataset TextDataset(LineType)
+using hdfs
+(("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/textFileS"),("input-format"="sequence-input-format"),("format"="delimited-text"),("delimiter"="."))
+hints(cardinality=10);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql
new file mode 100644
index 0000000..0ac9748
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql
@@ -0,0 +1,7 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a (*sequence*) file in HDFS.
+ Provide hint(cardinality) when creating the dataset.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 30th Jan 2013
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql
new file mode 100644
index 0000000..42fe34b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql
@@ -0,0 +1,16 @@
+/*
+* Description : Create an external dataset that contains a tuples, the lines from a (*sequence*) file in HDFS.
+ Provide hint(cardinality) when creating the dataset.
+ Perform a word-count over the data in the dataset.
+* Expected Res : Success
+* Date : 30th Jan 2013
+*/
+
+use dataverse test;
+
+for $line in dataset('TextDataset')
+let $tokens := word-tokens($line.content)
+for $token in $tokens
+group by $tok := $token with $token
+order by $tok
+return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql
new file mode 100644
index 0000000..ca09806
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Use hint (cardinality) for the feed dataset.
+ Begin ingestion using a fully qualified name and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 30th Jan 2013
+ */
+drop dataverse feeds if exists;
+create dataverse feeds;
+use dataverse feeds;
+
+create type TweetType as closed {
+ id: string,
+ username : string,
+ location : string,
+ text : string,
+ timestamp : string
+}
+
+create feed dataset TweetFeed(TweetType)
+using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
+(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
+primary key id
+hints(cardinality=200);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql
new file mode 100644
index 0000000..7851440
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Use hint (cardinality) for the feed dataset.
+ Begin ingestion using a fully qualified name and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 30th Jan 2013
+ */
+
+use dataverse feeds;
+
+begin feed feeds.TweetFeed;
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql
new file mode 100644
index 0000000..efa1f9c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Create a feed dataset that uses the feed simulator adapter.
+ Use hint (cardinality) for the feed dataset.
+ Begin ingestion using a fully qualified name and verify contents of the dataset post completion.
+ * Expected Res : Success
+ * Date : 30th Jan 2013
+ */
+
+use dataverse feeds;
+
+for $x in dataset('TweetFeed')
+return $x
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/ifthenelse_01.aql b/asterix-app/src/test/resources/runtimets/queries/ifthenelse_01.aql
deleted file mode 100644
index 1da06a7..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/ifthenelse_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-use dataverse test;
-
-write output to nc1:"rttest/ifthenelse_01.adm";
-
-if (2>1) then
- 20
-else
- 10
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.1.ddl.aql
new file mode 100644
index 0000000..1b990be
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.1.ddl.aql
@@ -0,0 +1,43 @@
+/*
+ * Description : Equi joins two datasets, Customers and Orders, based on the customer id.
+ * Given the 'indexnl' hint we expect the join to be transformed
+ * into an indexed nested-loop join using Customers' primary index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ cashBack: int32,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float,
+ items: [int32]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+create dataset Orders(OrderType) primary key oid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.2.update.aql
new file mode 100644
index 0000000..e94207f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Equi joins two datasets, Customers and Orders, based on the customer id.
+ * Given the 'indexnl' hint we expect the join to be transformed
+ * into an indexed nested-loop join using Customers' primary index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.3.query.aql
new file mode 100644
index 0000000..1f6d89e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-primary-equi-join/btree-primary-equi-join.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Equi joins two datasets, Customers and Orders, based on the customer id.
+ * Given the 'indexnl' hint we expect the join to be transformed
+ * into an indexed nested-loop join using Customers' primary index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $c in dataset('Customers')
+for $o in dataset('Orders')
+where $c.cid /*+ indexnl */ = $o.cid
+order by $c.cid, $o.oid
+return {"cid":$c.cid, "oid": $o.oid}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.1.ddl.aql
new file mode 100644
index 0000000..442a8df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Equi joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.2.update.aql
new file mode 100644
index 0000000..78a8e47
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Equi joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.3.ddl.aql
new file mode 100644
index 0000000..070ebdb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Equi joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index title_index on DBLP(authors);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.4.query.aql
new file mode 100644
index 0000000..ed73df6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/btree-secondary-equi-join/btree-secondary-equi-join.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Equi joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+where $a.authors /*+ indexnl */ = $b.authors
+order by $a.id, $b.id
+return {"aid": $a.id, "bid": $b.id, "authors": $a.authors}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.1.ddl.aql
new file mode 100644
index 0000000..e24c6d7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.1.ddl.aql
@@ -0,0 +1,27 @@
+/*
+ * Description : Joins two datasets on the intersection of their point attributes.
+ * The dataset 'MyData1' has an RTree index, and we expect the
+ * join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle,
+ circle: circle
+}
+
+create dataset MyData1(MyRecord) primary key id;
+create dataset MyData2(MyRecord) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.2.update.aql
new file mode 100644
index 0000000..ead81a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Joins two datasets on the intersection of their point attributes.
+ * The dataset 'MyData1' has an RTree index, and we expect the
+ * join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset MyData1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
+
+load dataset MyData2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.3.ddl.aql
new file mode 100644
index 0000000..391501b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Joins two datasets on the intersection of their point attributes.
+ * The dataset 'MyData1' has an RTree index, and we expect the
+ * join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index rtree_index on MyData1(point) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.query.aql
new file mode 100644
index 0000000..de3062e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Joins two datasets on the intersection of their point attributes.
+ * The dataset 'MyData1' has an RTree index, and we expect the
+ * join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('MyData1')
+for $b in dataset('MyData2')
+where spatial-intersect($a.point, $b.point) and $a.id != $b.id
+order by $a.id, $b.id
+return {"aid": $a.id, "bid": $b.id, "apt": $a.point, "bp": $b.point}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.1.ddl.aql
new file mode 100644
index 0000000..754a23c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Test that BTree index is used in query plan
+ * : define the BTree index on a composite key (fname,lanme)
+ * : predicate => where $l.fname > "Julio" and $l.lname > "Mattocks" and
+ * $l.fname <= "Micco" and $l.lname < "Vangieson"
+ * Expected Result : Success
+ * Issue : Issue 174
+ * Date : 5th Feb, 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Emp as closed {
+id:int32,
+fname:string,
+lname:string,
+age:int32,
+dept:string
+}
+
+create dataset employee(Emp) primary key id;
+
+create index idx_employee_f_l_name on employee(fname,lname);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.2.update.aql
new file mode 100644
index 0000000..ba6c29e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.2.update.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Test that BTree index is used in query plan
+ * : define the BTree index on a composite key (fname,lanme)
+ * : predicate => where $l.fname > "Julio" and $l.lname > "Mattocks" and
+ * $l.fname <= "Micco" and $l.lname < "Vangieson"
+ * Expected Result : Success
+ * Issue : Issue 174
+ * Date : 5th Feb, 2013
+ */
+
+use dataverse test;
+
+load dataset employee
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/names.adm"),("format"="delimited-text"),("delimiter"="|"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.3.query.aql
new file mode 100644
index 0000000..dddd46f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key-mixed-intervals/btree-index-composite-key-mixed-intervals.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Test that BTree index is used in query plan
+ * : define the BTree index on a composite key (fname,lanme)
+ * : predicate => where $l.fname > "Julio" and $l.lname > "Mattocks" and
+ * $l.fname <= "Micco" and $l.lname < "Vangieson"
+ * Expected Result : Success
+ * Issue : Issue 174
+ * Date : 5th Feb, 2013
+ */
+
+use dataverse test;
+
+for $l in dataset('employee')
+where $l.fname > "Julio" and $l.lname > "Mattocks" and $l.fname <= "Micco" and $l.lname < "Vangieson"
+order by $l.id
+return $l
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.1.ddl.aql
new file mode 100644
index 0000000..5103c09
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Description : Test that BTree index is used in query plan
+ * : define the BTree index on a composite key (fname,lanme)
+ * : predicate => where $l.fname="Julio" and $l.lname="Isa"
+ * Expected Result : Success
+ * Issue : Issue 162
+ * Date : 7th August 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Emp as closed {
+id:int32,
+fname:string,
+lname:string,
+age:int32,
+dept:string
+}
+
+create dataset employee(Emp) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.2.update.aql
new file mode 100644
index 0000000..b3251a8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.2.update.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Test that BTree index is used in query plan
+ * : define the BTree index on a composite key (fname,lanme)
+ * : predicate => where $l.fname="Julio" and $l.lname="Isa"
+ * Expected Result : Success
+ * Issue : Issue 162
+ * Date : 7th August 2012
+ */
+
+use dataverse test;
+
+load dataset employee
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/names.adm"),("format"="delimited-text"),("delimiter"="|"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.3.ddl.aql
new file mode 100644
index 0000000..8a7bafe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.3.ddl.aql
@@ -0,0 +1,6 @@
+
+use dataverse test;
+
+// create secondary index
+
+create index idx_employee_f_l_name on employee(fname,lname);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.4.query.aql
new file mode 100644
index 0000000..dff06ea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-composite-key/btree-index-composite-key.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Test that BTree index is used in query plan
+ * : define the BTree index on a composite key (fname,lanme)
+ * : predicate => where $l.fname="Julio" and $l.lname="Isa"
+ * Expected Result : Success
+ * Issue : Issue 162
+ * Date : 7th August 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('employee')
+where $l.fname="Julio" and $l.lname="Isa"
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.1.ddl.aql
new file mode 100644
index 0000000..4ed0993
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+ * Description : Test that multiple subtrees in the same query
+ * can be rewritten with secondary BTree indexes.
+ * Guards against regression to issue 204.
+ * Expected Result : Success
+ * Issue : Issue 204
+ */
+
+drop dataverse tpch if exists;
+create dataverse tpch;
+use dataverse tpch;
+
+create type OrderType as open {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create dataset Orders(OrderType) primary key o_orderkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.2.update.aql
new file mode 100644
index 0000000..d6e52bd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.2.update.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test that multiple subtrees in the same query
+ * can be rewritten with secondary BTree indexes.
+ * Guards against regression to issue 204.
+ * Expected Result : Success
+ * Issue : Issue 204
+ */
+
+use dataverse tpch;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.3.ddl.aql
new file mode 100644
index 0000000..2489b15
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.3.ddl.aql
@@ -0,0 +1,6 @@
+
+use dataverse tpch;
+
+// create secondary index on Orders(o_custkey)
+
+create index idx_Orders_Custkey on Orders(o_custkey);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.4.query.aql
new file mode 100644
index 0000000..8d7faab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple/btree-index-rewrite-multiple.4.query.aql
@@ -0,0 +1,24 @@
+/*
+ * Description : Test that multiple subtrees in the same query
+ * can be rewritten with secondary BTree indexes.
+ * Guards against regression to issue 204.
+ * Expected Result : Success
+ * Issue : Issue 204
+ */
+
+use dataverse tpch;
+
+for $o in dataset('Orders')
+for $o2 in dataset('Orders')
+where $o.o_custkey = 20 and $o2.o_custkey = 10
+and $o.o_orderstatus < $o2.o_orderstatus
+order by $o.o_orderkey, $o2.o_orderkey
+return {
+ "o_orderkey": $o.o_orderkey,
+ "o_custkey": $o.o_custkey,
+ "o_orderstatus": $o.o_orderstatus,
+ "o_orderkey2": $o2.o_orderkey,
+ "o_custkey2": $o2.o_custkey,
+ "o_orderstatus2": $o2.o_orderstatus
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.1.ddl.aql
new file mode 100644
index 0000000..80e9b17
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.1.ddl.aql
@@ -0,0 +1,21 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.2.update.aql
new file mode 100644
index 0000000..a1c40f1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.3.ddl.aql
new file mode 100644
index 0000000..7548774
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.3.ddl.aql
@@ -0,0 +1,6 @@
+
+use dataverse test;
+
+// create secondary index on Customers(age)
+
+create index age_index on Customers(age);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.4.query.aql
new file mode 100644
index 0000000..86e1e8d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/cust-index-age-nullable/cust-index-age-nullable.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+where $c.age < 20
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.1.ddl.aql
new file mode 100644
index 0000000..d9ca825
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
+create index ngram_index on DBLP(title) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.2.update.aql
new file mode 100644
index 0000000..830e08a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.3.query.aql
new file mode 100644
index 0000000..866b045
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-contains/fuzzy-inverted-index-ngram-contains.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.1.ddl.aql
new file mode 100644
index 0000000..7afd29a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
+create index ngram_index on DBLP(authors) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.2.update.aql
new file mode 100644
index 0000000..830e08a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.3.query.aql
new file mode 100644
index 0000000..45ac926
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance-panic/fuzzy-inverted-index-ngram-edit-distance-panic.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $ed := edit-distance-check($o.authors, "Amihay Motro", 5)
+where $ed[0]
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..7afd29a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
+create index ngram_index on DBLP(authors) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.2.update.aql
new file mode 100644
index 0000000..830e08a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.3.query.aql
new file mode 100644
index 0000000..0f4c003
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-edit-distance/fuzzy-inverted-index-ngram-edit-distance.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $ed := edit-distance-check($o.authors, "Amihay Motro", 1)
+where $ed[0]
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.1.ddl.aql
new file mode 100644
index 0000000..d9ca825
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
+create index ngram_index on DBLP(title) type fuzzy ngram(3);
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.2.update.aql
new file mode 100644
index 0000000..830e08a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.3.query.aql
new file mode 100644
index 0000000..79b65bb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ngram-jaccard/fuzzy-inverted-index-ngram-jaccard.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(gram-tokens($o.title, 3, false), gram-tokens("Transactions for Cooperative Environments", 3, false), 0.5f)
+where $jacc[0]
+return $o
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.1.ddl.aql
new file mode 100644
index 0000000..8a57319
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
+create index interests_index on Customers(interests) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.2.update.aql
new file mode 100644
index 0000000..063b172
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.3.query.aql
new file mode 100644
index 0000000..d4a4f60
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance-panic/fuzzy-inverted-index-olist-edit-distance-panic.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $ed := edit-distance-check($c.interests, ["computers", "wine", "walking"], 3)
+where $ed[0]
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..8a57319
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
+create index interests_index on Customers(interests) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.2.update.aql
new file mode 100644
index 0000000..063b172
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.3.query.aql
new file mode 100644
index 0000000..7ebd73e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-edit-distance/fuzzy-inverted-index-olist-edit-distance.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $ed := edit-distance-check($c.interests, ["computers", "wine", "walking"], 1)
+where $ed[0]
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..8a57319
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
+create index interests_index on Customers(interests) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.2.update.aql
new file mode 100644
index 0000000..063b172
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.3.query.aql
new file mode 100644
index 0000000..27a838ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-olist-jaccard/fuzzy-inverted-index-olist-jaccard.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $jacc := similarity-jaccard-check($c.interests, ["databases", "computers", "wine"], 0.7f)
+where $jacc[0]
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..3e2562a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.1.ddl.aql
@@ -0,0 +1,25 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
+create index interests_index on Customers(interests) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.2.update.aql
new file mode 100644
index 0000000..0deeabc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.3.query.aql
new file mode 100644
index 0000000..27a838ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-ulist-jaccard/fuzzy-inverted-index-ulist-jaccard.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $jacc := similarity-jaccard-check($c.interests, ["databases", "computers", "wine"], 0.7f)
+where $jacc[0]
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.1.ddl.aql
new file mode 100644
index 0000000..326b264
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
+create index keyword_index on DBLP(title) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.2.update.aql
new file mode 100644
index 0000000..830e08a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.3.query.aql
new file mode 100644
index 0000000..d6de89d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-contains/fuzzy-inverted-index-word-contains.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.1.ddl.aql
new file mode 100644
index 0000000..326b264
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
+create index keyword_index on DBLP(title) type fuzzy keyword;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.2.update.aql
new file mode 100644
index 0000000..830e08a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.3.query.aql
new file mode 100644
index 0000000..7ce908c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/fuzzy-inverted-index-word-jaccard/fuzzy-inverted-index-word-jaccard.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
new file mode 100644
index 0000000..49c6b3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.3.ddl.aql
new file mode 100644
index 0000000..4fbadcd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.3.ddl.aql
@@ -0,0 +1,6 @@
+
+use dataverse test;
+
+// create secondary index of type ngram on DBLP(title)
+
+create index ngram_index on DBLP(title) type ngram(3);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.query.aql
new file mode 100644
index 0000000..d6de89d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
new file mode 100644
index 0000000..49c6b3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.3.ddl.aql
new file mode 100644
index 0000000..ad6365d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.3.ddl.aql
@@ -0,0 +1,4 @@
+
+use dataverse test;
+
+create index ngram_index on DBLP(authors) type ngram(3);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.query.aql
new file mode 100644
index 0000000..953f942
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $ed := edit-distance-check($o.authors, "Amihay Motro", 5)
+where $ed[0]
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..49c6b3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.3.ddl.aql
new file mode 100644
index 0000000..2a43a57
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index ngram_index on DBLP(authors) type ngram(3);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.query.aql
new file mode 100644
index 0000000..70421c2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $ed := edit-distance-check($o.authors, "Amihay Motro", 1)
+where $ed[0]
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
new file mode 100644
index 0000000..49c6b3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.3.ddl.aql
new file mode 100644
index 0000000..4209874
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.query.aql
new file mode 100644
index 0000000..5d9ad67
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(gram-tokens($o.title, 3, false), gram-tokens("Transactions for Cooperative Environments", 3, false), 0.5f)
+where $jacc[0]
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql
new file mode 100644
index 0000000..b2dc701
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql
@@ -0,0 +1,22 @@
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.2.update.aql
new file mode 100644
index 0000000..5b72d8a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.3.ddl.aql
new file mode 100644
index 0000000..5356b79
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.3.ddl.aql
@@ -0,0 +1,4 @@
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.query.aql
new file mode 100644
index 0000000..d4a4f60
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $ed := edit-distance-check($c.interests, ["computers", "wine", "walking"], 3)
+where $ed[0]
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..dfc0f4e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql
@@ -0,0 +1,24 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.2.update.aql
new file mode 100644
index 0000000..5b72d8a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.3.ddl.aql
new file mode 100644
index 0000000..6d7c0cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.query.aql
new file mode 100644
index 0000000..7ebd73e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $ed := edit-distance-check($c.interests, ["computers", "wine", "walking"], 1)
+where $ed[0]
+order by $c.cid
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..dfc0f4e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql
@@ -0,0 +1,24 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.2.update.aql
new file mode 100644
index 0000000..5b72d8a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.3.ddl.aql
new file mode 100644
index 0000000..5356b79
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.3.ddl.aql
@@ -0,0 +1,4 @@
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.query.aql
new file mode 100644
index 0000000..27a838ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $jacc := similarity-jaccard-check($c.interests, ["databases", "computers", "wine"], 0.7f)
+where $jacc[0]
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..a350a46
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql
@@ -0,0 +1,24 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create nodegroup group1 if not exists on nc1;
+
+create dataset Customers(CustomerType)
+ primary key cid on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.2.update.aql
new file mode 100644
index 0000000..079983b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.3.ddl.aql
new file mode 100644
index 0000000..5356b79
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.3.ddl.aql
@@ -0,0 +1,4 @@
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.query.aql
new file mode 100644
index 0000000..27a838ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+let $jacc := similarity-jaccard-check($c.interests, ["databases", "computers", "wine"], 0.7f)
+where $jacc[0]
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
new file mode 100644
index 0000000..49c6b3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.3.ddl.aql
new file mode 100644
index 0000000..c8db25b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.3.ddl.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.query.aql
new file mode 100644
index 0000000..d6de89d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+where contains($o.title, "Multimedia")
+order by $o.id
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
new file mode 100644
index 0000000..49c6b3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.3.ddl.aql
new file mode 100644
index 0000000..93b64c1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.query.aql
new file mode 100644
index 0000000..7ce908c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('DBLP')
+let $jacc := similarity-jaccard-check(word-tokens($o.title), word-tokens("Transactions for Cooperative Environments"), 0.5f)
+where $jacc[0]
+return $o
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.1.ddl.aql
new file mode 100644
index 0000000..2cfb39a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+use dataverse tpch;
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.2.update.aql
new file mode 100644
index 0000000..2ed1a52
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.3.ddl.aql
new file mode 100644
index 0000000..a92308f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse tpch;
+
+create index idx_Orders_Custkey on Orders(o_custkey) ;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.4.query.aql
new file mode 100644
index 0000000..6d18b32
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive-open/orders-index-custkey-conjunctive-open.4.query.aql
@@ -0,0 +1,10 @@
+use dataverse tpch;
+
+for $o in dataset('Orders')
+where
+ $o.o_custkey = 40 and $o.o_totalprice > 150000.0
+order by $o.o_orderkey
+return {
+ "o_orderkey": $o.o_orderkey,
+ "o_custkey": $o.o_custkey
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.1.ddl.aql
new file mode 100644
index 0000000..2cfb39a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+use dataverse tpch;
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.2.update.aql
new file mode 100644
index 0000000..2ed1a52
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.3.ddl.aql
new file mode 100644
index 0000000..ed3fab0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse tpch;
+
+create index idx_Orders_Custkey on Orders(o_custkey);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.4.query.aql
new file mode 100644
index 0000000..6d18b32
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-conjunctive/orders-index-custkey-conjunctive.4.query.aql
@@ -0,0 +1,10 @@
+use dataverse tpch;
+
+for $o in dataset('Orders')
+where
+ $o.o_custkey = 40 and $o.o_totalprice > 150000.0
+order by $o.o_orderkey
+return {
+ "o_orderkey": $o.o_orderkey,
+ "o_custkey": $o.o_custkey
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.aql
new file mode 100644
index 0000000..b541c58
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.aql
@@ -0,0 +1,22 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+use dataverse tpch;
+
+create type OrderType as open {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset Orders(OrderType)
+ primary key o_orderkey on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.2.update.aql
new file mode 100644
index 0000000..0d60097
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.3.ddl.aql
new file mode 100644
index 0000000..ed3fab0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse tpch;
+
+create index idx_Orders_Custkey on Orders(o_custkey);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.4.query.aql
new file mode 100644
index 0000000..5d47296
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey-open/orders-index-custkey-open.4.query.aql
@@ -0,0 +1,10 @@
+use dataverse tpch;
+
+for $o in dataset('Orders')
+where
+ $o.o_custkey = 40
+order by $o.o_orderkey
+return {
+ "o_orderkey": $o.o_orderkey,
+ "o_custkey": $o.o_custkey
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.1.ddl.aql
new file mode 100644
index 0000000..2cfb39a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+use dataverse tpch;
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.2.update.aql
new file mode 100644
index 0000000..0d60097
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.3.ddl.aql
new file mode 100644
index 0000000..ed3fab0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse tpch;
+
+create index idx_Orders_Custkey on Orders(o_custkey);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.4.query.aql
new file mode 100644
index 0000000..5d47296
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/orders-index-custkey/orders-index-custkey.4.query.aql
@@ -0,0 +1,10 @@
+use dataverse tpch;
+
+for $o in dataset('Orders')
+where
+ $o.o_custkey = 40
+order by $o.o_orderkey
+return {
+ "o_orderkey": $o.o_orderkey,
+ "o_custkey": $o.o_custkey
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.1.ddl.aql
new file mode 100644
index 0000000..530d7a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+use dataverse test;
+
+create type LineItemType as open {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.2.update.aql
new file mode 100644
index 0000000..7ab39fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.3.ddl.aql
new file mode 100644
index 0000000..a3572c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.3.ddl.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+create index idx_LineItem_partkey on LineItem(l_linenumber);
+create index idx_LineItem_suppkey on LineItem(l_suppkey);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.4.query.aql
new file mode 100644
index 0000000..62c9e84
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search-open/range-search-open.4.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+where $c.l_suppkey < 100 and $c.l_suppkey>5
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.1.ddl.aql
new file mode 100644
index 0000000..5281e04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse test if exists;
+
+create dataverse test;
+use dataverse test;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.2.update.aql
new file mode 100644
index 0000000..7ab39fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.3.ddl.aql
new file mode 100644
index 0000000..75edda0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.3.ddl.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+create index idx_LineItem_partkey on LineItem(l_linenumber);
+create index idx_LineItem_suppkey on LineItem(l_suppkey);
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.4.query.aql
new file mode 100644
index 0000000..7d79f2b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/range-search/range-search.4.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $c in dataset('LineItem')
+where $c.l_suppkey < 100 and $c.l_suppkey>5
+order by $c.l_orderkey, $c.l_linenumber
+return $c
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.1.ddl.aql
new file mode 100644
index 0000000..77b9ef2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point?,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.2.update.aql
new file mode 100644
index 0000000..2ac581c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialDataNulls.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.3.ddl.aql
new file mode 100644
index 0000000..b6a123e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index rtree_index_point on MyData(point) type rtree;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.query.aql
new file mode 100644
index 0000000..9d067bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-polygon(create-point(4.0,1.0), create-point(4.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.1.ddl.aql
new file mode 100644
index 0000000..9de9b5e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.2.update.aql
new file mode 100644
index 0000000..d845d68
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.3.ddl.aql
new file mode 100644
index 0000000..b6a123e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index rtree_index_point on MyData(point) type rtree;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.query.aql
new file mode 100644
index 0000000..9d067bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-polygon(create-point(4.0,1.0), create-point(4.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.1.ddl.aql
new file mode 100644
index 0000000..52fa76f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.1.ddl.aql
@@ -0,0 +1,19 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as closed {
+ id: int32,
+ point: point,
+ kwds: string,
+ line1: line,
+ line2: line,
+ poly1: polygon,
+ poly2: polygon,
+ rec: rectangle,
+ circle: circle
+}
+
+create dataset MyData(MyRecord)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.2.update.aql
new file mode 100644
index 0000000..d845d68
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.3.ddl.aql
new file mode 100644
index 0000000..b6a123e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.3.ddl.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+create index rtree_index_point on MyData(point) type rtree;
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.4.query.aql
new file mode 100644
index 0000000..9d067bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/rtree-secondary-index/rtree-secondary-index.4.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-polygon(create-point(4.0,1.0), create-point(4.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql b/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql
deleted file mode 100644
index f01b16d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-use dataverse tpch;
-
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-create index idx_Orders_Custkey on Orders(o_custkey) ;
-
-write output to nc1:"rttest/index_orders-index-custkey-conjunctive.adm";
-
-for $o in dataset('Orders')
-where
- $o.o_custkey = 40 and $o.o_totalprice > 150000.0
-order by $o.o_orderkey
-return {
- "o_orderkey": $o.o_orderkey,
- "o_custkey": $o.o_custkey
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql b/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql
deleted file mode 100644
index 7bc7320..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-use dataverse tpch;
-
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-create index idx_Orders_Custkey on Orders(o_custkey);
-
-write output to nc1:"rttest/index_orders-index-custkey.adm";
-
-for $o in dataset('Orders')
-where
- $o.o_custkey = 40
-order by $o.o_orderkey
-return {
- "o_orderkey": $o.o_orderkey,
- "o_custkey": $o.o_custkey
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql b/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql
deleted file mode 100644
index ea0b4ef..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql
+++ /dev/null
@@ -1,42 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-use dataverse test;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-create index idx_LineItem_partkey on LineItem(l_linenumber);
-create index idx_LineItem_suppkey on LineItem(l_suppkey);
-
-write output to nc1:"rttest/index_range-search.adm";
-for $c in dataset('LineItem')
-where $c.l_suppkey < 100 and $c.l_suppkey>5
-order by $c.l_orderkey, $c.l_linenumber
-return $c
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql b/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql
deleted file mode 100644
index 71c5630..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql
+++ /dev/null
@@ -1,33 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as closed {
- id: int32,
- point: point,
- kwds: string,
- line1: line,
- line2: line,
- poly1: polygon,
- poly2: polygon,
- rec: rectangle
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset MyData(MyRecord)
- partitioned by key id on group1;
-
-load dataset MyData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-create index rtree_index_point on MyData(point) type rtree;
-
-
-write output to nc1:"rttest/index_rtree-secondary-index.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, create-polygon(create-point(4.0,1.0), create-point(4.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
-order by $o.id
-return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.1.ddl.aql
new file mode 100644
index 0000000..9839997
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.2.update.aql
new file mode 100644
index 0000000..3c90bca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.3.ddl.aql
new file mode 100644
index 0000000..067e129
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.3.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on Customers(name) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.query.aql
new file mode 100644
index 0000000..5ea4feb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $ed := edit-distance($a.name, $b.name)
+where $ed <= 4 and $a.cid < $b.cid
+order by $ed, $a.cid, $b.cid
+return { "a": $a.name, "b": $b.name, "ed": $ed }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..8c1dcf7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.2.update.aql
new file mode 100644
index 0000000..fd5c673
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.3.ddl.aql
new file mode 100644
index 0000000..331eac8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on Customers(name) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.query.aql
new file mode 100644
index 0000000..f7389e8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where edit-distance($a.name, $b.name) <= 4 and $a.cid < $b.cid
+order by $a.cid, $b.cid
+return { "a": $a.name, "b": $b.name }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..3e8cbdf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.1.ddl.aql
@@ -0,0 +1,32 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..9388959
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..55cfe1f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.3.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..dcd5245
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+let $jacc := similarity-jaccard(gram-tokens($a.title, 3, false), gram-tokens($b.title, 3, false))
+where $jacc >= 0.5f and $a.id < $b.id
+order by $jacc, $a.id, $b.id
+return { "a": $a.title, "b": $b.title, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.1.ddl.aql
new file mode 100644
index 0000000..2f83f29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.2.update.aql
new file mode 100644
index 0000000..319c927
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.3.ddl.aql
new file mode 100644
index 0000000..987a971
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.query.aql
new file mode 100644
index 0000000..4364545
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+where similarity-jaccard(gram-tokens($a.title, 3, false), gram-tokens($b.title, 3, false)) >= 0.5f
+ and $a.id < $b.id
+order by $a.id, $b.id
+return { "a": $a.title, "b": $b.title }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.1.ddl.aql
new file mode 100644
index 0000000..85540fd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.2.update.aql
new file mode 100644
index 0000000..a288228
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.3.ddl.aql
new file mode 100644
index 0000000..4a1206f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.3.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.query.aql
new file mode 100644
index 0000000..d904c09
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $ed := edit-distance($a.interests, $b.interests)
+where len($a.interests) > 2 and len($b.interests) > 2 and $ed <= 1 and $a.cid < $b.cid
+order by $ed, $a.cid, $b.cid
+return { "a": $a.interests, "b": $b.interests, "ed": $ed }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..f7184e3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.2.update.aql
new file mode 100644
index 0000000..b298b25
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.3.ddl.aql
new file mode 100644
index 0000000..8aa959a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.query.aql
new file mode 100644
index 0000000..b9221da
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where len($a.interests) > 2 and len($b.interests) > 2 and edit-distance($a.interests, $b.interests) <= 1 and $a.cid < $b.cid
+order by $a.cid, $b.cid
+return { "a": $a.interests, "b": $b.interests }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..48d67bd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..3505c80
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..7e1363e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.3.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..8dda04e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $jacc := /*+ indexnl */similarity-jaccard($a.interests, $b.interests)
+where $jacc >= 0.9f and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $jacc, $a.cid, $b.cid
+return { "a": $a.interests, "b": $b.interests, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..fd62a68
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.2.update.aql
new file mode 100644
index 0000000..0a87342
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.3.ddl.aql
new file mode 100644
index 0000000..1aab524
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.query.aql
new file mode 100644
index 0000000..0af3efe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where /*+ indexnl */ similarity-jaccard($a.interests, $b.interests) >= 0.9f
+ and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $a.cid, $b.cid
+return { "a": $a.interests, "b": $b.interests }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..c8243dc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..2136ee7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..536a1c7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.3.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..b7b056e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $jacc := /*+ indexnl */ similarity-jaccard($a.interests, $b.interests)
+where $jacc >= 0.9f and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $jacc, $a.cid, $b.cid
+return { "a": $a.interests, "b": $b.interests, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..621a16f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.2.update.aql
new file mode 100644
index 0000000..f183f5e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.3.ddl.aql
new file mode 100644
index 0000000..08dd82d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.query.aql
new file mode 100644
index 0000000..57fd37c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where /*+ indexnl */ similarity-jaccard($a.interests, $b.interests) >= 0.9f
+ and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $a.cid, $b.cid
+return { "a": $a.interests, "b": $b.interests }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..4b89bd3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.1.ddl.aql
@@ -0,0 +1,32 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..0a2a629
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..b403681
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.3.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..6faa6a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+let $jacc := similarity-jaccard(word-tokens($a.title), word-tokens($b.title))
+where $jacc >= 0.5f and $a.id < $b.id
+order by $jacc, $a.id, $b.id
+return { "a": $a.title, "b": $b.title, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.1.ddl.aql
new file mode 100644
index 0000000..4ede1c3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.2.update.aql
new file mode 100644
index 0000000..a166535
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.3.ddl.aql
new file mode 100644
index 0000000..8539f7c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.query.aql
new file mode 100644
index 0000000..3db8b5f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We expect the top-level equi join introduced because of surrogate optimization to be removed, since it is not necessary.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+where similarity-jaccard(word-tokens($a.title), word-tokens($b.title)) >= 0.5f
+ and $a.id < $b.id
+order by $a.id, $b.id
+return { "a": $a.title, "b": $b.title }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.1.ddl.aql
new file mode 100644
index 0000000..8937d31
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.2.update.aql
new file mode 100644
index 0000000..7943637
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.3.ddl.aql
new file mode 100644
index 0000000..6e89a58
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on Customers(name) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.query.aql
new file mode 100644
index 0000000..fae1b49
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $ed := edit-distance($a.name, $b.name)
+where $ed <= 4 and $a.cid < $b.cid
+order by $ed, $a.cid, $b.cid
+return { "arec": $a, "brec": $b, "ed": $ed }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..85ffd04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.2.update.aql
new file mode 100644
index 0000000..2b2b0a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.3.ddl.aql
new file mode 100644
index 0000000..e1a575c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on Customers(name) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.query.aql
new file mode 100644
index 0000000..af3f92f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their names.
+ * Customers has a 3-gram index on name, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where edit-distance($a.name, $b.name) <= 4 and $a.cid < $b.cid
+order by $a.cid, $b.cid
+return { "arec": $a, "brec": $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..3a23b8b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..8fbfdb9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..f033aac
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..e7fc13e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+let $jacc := similarity-jaccard(gram-tokens($a.title, 3, false), gram-tokens($b.title, 3, false))
+where $jacc >= 0.5f and $a.id < $b.id
+order by $jacc, $a.id, $b.id
+return { "arec": $a, "brec": $b, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.1.ddl.aql
new file mode 100644
index 0000000..ca6ba44
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.2.update.aql
new file mode 100644
index 0000000..93233c1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.3.ddl.aql
new file mode 100644
index 0000000..7ca5559
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index ngram_index on DBLP(title) type ngram(3);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.4.query.aql
new file mode 100644
index 0000000..b237130
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ngram-jaccard/ngram-jaccard.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' 3-gram tokens.
+ * DBLP has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+where similarity-jaccard(gram-tokens($a.title, 3, false), gram-tokens($b.title, 3, false)) >= 0.5f
+ and $a.id < $b.id
+order by $a.id, $b.id
+return { "arec": $a, "brec": $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.1.ddl.aql
new file mode 100644
index 0000000..4888062
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.2.update.aql
new file mode 100644
index 0000000..c3af774
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.3.ddl.aql
new file mode 100644
index 0000000..93801ae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.query.aql
new file mode 100644
index 0000000..d9a7177
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $ed := edit-distance($a.interests, $b.interests)
+where len($a.interests) > 2 and len($b.interests) > 2 and $ed <= 1 and $a.cid < $b.cid
+order by $ed, $a.cid, $b.cid
+return { "arec": $a, "brec": $b, "ed": $ed }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..ee77aef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.2.update.aql
new file mode 100644
index 0000000..e846058
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.3.ddl.aql
new file mode 100644
index 0000000..23753d7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.4.query.aql
new file mode 100644
index 0000000..de75bfd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-edit-distance/olist-edit-distance.4.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the edit-distance function of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where len($a.interests) > 2 and len($b.interests) > 2 and edit-distance($a.interests, $b.interests) <= 1 and $a.cid < $b.cid
+order by $a.cid, $b.cid
+return { "arec": $a, "brec": $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..d920ee7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..575be21
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..85e97a1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..851c116
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $jacc := /*+ indexnl */similarity-jaccard($a.interests, $b.interests)
+where $jacc >= 0.9f and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $jacc, $a.cid, $b.cid
+return { "a": $a, "b": $b, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..a40bfc8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: [string],
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.2.update.aql
new file mode 100644
index 0000000..e86922d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k_olist/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.3.ddl.aql
new file mode 100644
index 0000000..fa43878
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.4.query.aql
new file mode 100644
index 0000000..61efa58
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/olist-jaccard/olist-jaccard.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest lists.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where /*+ indexnl */ similarity-jaccard($a.interests, $b.interests) >= 0.9f
+ and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $a.cid, $b.cid
+return { "a": $a, "b": $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..97c776b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..3c344a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..206215a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..3b2b968
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+let $jacc := /*+ indexnl */ similarity-jaccard($a.interests, $b.interests)
+where $jacc >= 0.9f and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $jacc, $a.cid, $b.cid
+return { "a": $a, "b": $b, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.1.ddl.aql
new file mode 100644
index 0000000..dc3c320
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as closed {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create dataset Customers(CustomerType) primary key cid;
+
+create dataset Customers2(CustomerType) primary key cid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.2.update.aql
new file mode 100644
index 0000000..7a61d5cf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
+load dataset Customers2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/co1k/customer.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.3.ddl.aql
new file mode 100644
index 0000000..de55309
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index interests_index on Customers(interests) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.4.query.aql
new file mode 100644
index 0000000..7570905
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/ulist-jaccard/ulist-jaccard.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Fuzzy joins two datasets, Customers and Customers2, based on the Jaccard similarity of their interest sets.
+ * Customers has a keyword index on interests, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('Customers')
+for $b in dataset('Customers2')
+where /*+ indexnl */ similarity-jaccard($a.interests, $b.interests) >= 0.9f
+ and $a.cid < $b.cid and len($a.interests) > 1 and len($b.interests) > 1
+order by $a.cid, $b.cid
+return { "a": $a, "b": $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.1.ddl.aql
new file mode 100644
index 0000000..719949b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.2.update.aql
new file mode 100644
index 0000000..3064796
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.3.ddl.aql
new file mode 100644
index 0000000..b8fbe01
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.3.ddl.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.query.aql
new file mode 100644
index 0000000..f8ada76
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * We test the inlining of variables that enable the select to be pushed into the join for subsequent optimization with an index.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+let $jacc := similarity-jaccard(word-tokens($a.title), word-tokens($b.title))
+where $jacc >= 0.5f and $a.id < $b.id
+order by $jacc, $a.id, $b.id
+return { "arec": $a, "brec": $b, "jacc": $jacc }
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.1.ddl.aql
new file mode 100644
index 0000000..c134018
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.2.update.aql
new file mode 100644
index 0000000..5a307f6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.3.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.3.ddl.aql
new file mode 100644
index 0000000..092ca3e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.3.ddl.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+create index keyword_index on DBLP(title) type keyword;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.4.query.aql b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.4.query.aql
new file mode 100644
index 0000000..29a98c0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/inverted-index-join/word-jaccard/word-jaccard.4.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Fuzzy joins two datasets, DBLP and CSX, based on the similarity-jaccard function of their titles' word tokens.
+ * DBLP has a keyword index on title, and we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+for $b in dataset('CSX')
+where similarity-jaccard(word-tokens($a.title), word-tokens($b.title)) >= 0.5f
+ and $a.id < $b.id
+order by $a.id, $b.id
+return { "arec": $a, "brec": $b }
diff --git a/asterix-app/src/test/resources/runtimets/queries/is-null_01.aql b/asterix-app/src/test/resources/runtimets/queries/is-null_01.aql
deleted file mode 100644
index ca6ac7a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/is-null_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/is-null_01.adm";
-
-[is-null(null), is-null(10)]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.1.ddl.aql
new file mode 100644
index 0000000..230315e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.1.ddl.aql
@@ -0,0 +1,31 @@
+/*
+ * Description : Left-outer joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.2.update.aql
new file mode 100644
index 0000000..923f6e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Left-outer joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.3.query.aql
new file mode 100644
index 0000000..edcb9b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285-2/query_issue285-2.3.query.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Left-outer joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ *
+ * TODO(@Sattam): given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ *
+ * regression test 2 for issue 285--having an order by and limit for the outer loop relation
+ *
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+order by $a.id
+limit 10
+return {
+"aid": $a.id,
+"bids": for $b in dataset('CSX')
+where $a.authors = $b.authors
+order by $b.id
+return $b.id
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.1.ddl.aql
new file mode 100644
index 0000000..a04adc8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.1.ddl.aql
@@ -0,0 +1,35 @@
+/*
+ * Description : Left-outer joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title.
+ *
+ * TODO(@Sattam): given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ *
+ * regression test for issue 285
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create type CSXType as closed {
+ id: int32,
+ csxid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.2.update.aql
new file mode 100644
index 0000000..923f6e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Left-outer joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.3.query.aql
new file mode 100644
index 0000000..f5ff114
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue285/query_issue285.3.query.aql
@@ -0,0 +1,23 @@
+/*
+ * Description : Left-outer joins two datasets, DBLP and CSX, based on their title.
+ * DBLP has a secondary btree index on title, and given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ *
+ * TODO(@Sattam): given the 'indexnl' hint
+ * we expect the join to be transformed into an indexed nested-loop join.
+ *
+ * regression test for issue 285--having an order by for the outer loop relation
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('DBLP')
+order by $a.id
+return {
+"aid": $a.id,
+"bids": for $b in dataset('CSX')
+where $a.authors = $b.authors
+order by $b.id
+return $b.id
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01.aql
deleted file mode 100644
index c4bbeae..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_any-collection-member_01.adm";
-
-let $x := {{1,1,1}}
-return $x[?]
-
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_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/list/any-collection-member_01/any-collection-member_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.2.update.aql
new file mode 100644
index 0000000..d148bc8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.2.update.aql
@@ -0,0 +1,2 @@
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.3.query.aql
new file mode 100644
index 0000000..8912343
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/any-collection-member_01/any-collection-member_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := {{1,1,1}}
+return $x[?]
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/get-item_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01.aql
deleted file mode 100644
index 5bdd362..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/get-item_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_get-item_01.adm";
-
-let $x := [1, 2, 3, 4]
-return $x[2]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_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/list/get-item_01/get-item_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.3.query.aql
new file mode 100644
index 0000000..696e52b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/get-item_01/get-item_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $x := [1, 2, 3, 4]
+return $x[2]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/len_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_01.aql
deleted file mode 100644
index bd9fb11..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/len_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_len_01.adm";
-
-for $l in [1]
-return [
- len([]), len([1]), len([1, 2]), len([1, 2, 3]),
- len({{}}), len({{1}}), len({{1, 2}}), len({{1, 2, 3}})]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_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/list/len_01/len_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.3.query.aql
new file mode 100644
index 0000000..9df5697
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/len_01/len_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $l in [1]
+return [
+ len([]), len([1]), len([1, 2]), len([1, 2, 3]),
+ len({{}}), len({{1}}), len({{1, 2}}), len({{1, 2, 3}})]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/len_null_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01.aql
deleted file mode 100644
index 3966c12..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/len_null_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_len_null_01.adm";
-
-let $n := null
-return {"len1": len([]), "len2": $n}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_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/list/len_null_01/len_null_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.3.query.aql
new file mode 100644
index 0000000..34b6dd3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/len_null_01/len_null_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $n := null
+return {"len1": len([]), "len2": $n}
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_01.aql
deleted file mode 100644
index fe89111..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/listify_01.aql
+++ /dev/null
@@ -1,14 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_listify_01.adm";
-
-let $token_list :=
- for $token in [1, 2, 3] return $token
-return $token_list
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_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/list/listify_01/listify_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.3.query.aql
new file mode 100644
index 0000000..b9bc2fa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_01/listify_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $token_list :=
+ for $token in [1, 2, 3] return $token
+return $token_list
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_02.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_02.aql
deleted file mode 100644
index 4fe1e0d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/listify_02.aql
+++ /dev/null
@@ -1,14 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_listify_02.adm";
-
-let $token_list :=
- for $token in ["foo", "bar"] return $token
-return $token_list
-
-
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.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/list/listify_02/listify_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.3.query.aql
new file mode 100644
index 0000000..56c66de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_02/listify_02.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $token_list :=
+ for $token in ["foo", "bar"] return $token
+return $token_list
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.1.ddl.aql
new file mode 100644
index 0000000..21e1bcc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test that a listify on a nullable type creates a homogeneous list of type ANY.
+ * Guards against regression to issue 186.
+ * Expected Result : Success
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.2.update.aql
new file mode 100644
index 0000000..3eea8d8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test that a listify on a nullable type creates a homogeneous list of type ANY.
+ * Guards against regression to issue 186.
+ * Expected Result : Success
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.3.query.aql
new file mode 100644
index 0000000..b1a00ef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/listify_03/listify_03.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Test that a listify on a nullable type creates a homogeneous list of type ANY.
+ * Guards against regression to issue 186.
+ * Expected Result : Success
+ */
+
+use dataverse test;
+
+// The for prohibits the subplan from being eliminated.
+for $x in [1, 2]
+let $y := (for $i in [[1,2,3],[10,20,30],[-2,-5,0]] return min($i))
+return min($y)
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01.aql
deleted file mode 100644
index f1e369b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_ordered-list-constructor_01.adm";
-
-[ "foo", "bar", "foobar" ]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_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/list/ordered-list-constructor_01/ordered-list-constructor_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.3.query.aql
new file mode 100644
index 0000000..9d130d5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_01/ordered-list-constructor_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+[ "foo", "bar", "foobar" ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02.aql
deleted file mode 100644
index c8d5262..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_ordered-list-constructor_02.adm";
-
-[ ["foo", "bar"], ["foobar"] ]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.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/list/ordered-list-constructor_02/ordered-list-constructor_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.3.query.aql
new file mode 100644
index 0000000..35535b9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_02/ordered-list-constructor_02.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+[ ["foo", "bar"], ["foobar"] ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.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/list/ordered-list-constructor_03/ordered-list-constructor_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.3.query.aql
new file mode 100644
index 0000000..05c6029
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/ordered-list-constructor_03/ordered-list-constructor_03.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+[ null, null, null ]
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01.aql
deleted file mode 100644
index d63232c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_scan-collection_01.adm";
-
-for $u in [1, 2, 3]
-return $u
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_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/list/scan-collection_01/scan-collection_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.3.query.aql
new file mode 100644
index 0000000..82cd800
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/scan-collection_01/scan-collection_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $u in [1, 2, 3]
+return $u
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/union_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_01.aql
deleted file mode 100644
index 74671d5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/union_01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_union_01.adm";
-
-for $x in
-({{1,3}} union {{1,2}})
-order by $x
-return $x
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_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/list/union_01/union_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.3.query.aql
new file mode 100644
index 0000000..515a6f4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/union_01/union_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $x in
+({{1,3}} union {{1,2}})
+order by $x
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/union_02.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_02.aql
deleted file mode 100644
index dd9616d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/union_02.aql
+++ /dev/null
@@ -1,20 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_union_02.adm";
-
-for $z in (
-(
-for $x in {{3,2}}
-return $x
-)
-union
-(
-for $y in {{2,1}}
-return $y
-)
-)
-order by $z
-return $z
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.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/list/union_02/union_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.3.query.aql
new file mode 100644
index 0000000..05abdbc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/union_02/union_02.3.query.aql
@@ -0,0 +1,16 @@
+use dataverse test;
+
+for $z in (
+(
+for $x in {{3,2}}
+return $x
+)
+union
+(
+for $y in {{2,1}}
+return $y
+)
+)
+order by $z
+return $z
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01.aql
deleted file mode 100644
index bc6f935..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_unordered-list-constructor_01.adm";
-
-{{ "foo", "bar", "foobar" }}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_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/list/unordered-list-constructor_01/unordered-list-constructor_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.3.query.aql
new file mode 100644
index 0000000..df00119
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_01/unordered-list-constructor_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+{{ "foo", "bar", "foobar" }}
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02.aql
deleted file mode 100644
index 267db4d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/list_unordered-list-constructor_02.adm";
-
-{{ {{"foo"}}, {{"bar", "foobar"}} }}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.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/list/unordered-list-constructor_02/unordered-list-constructor_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.3.query.aql
new file mode 100644
index 0000000..a69024f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_02/unordered-list-constructor_02.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+{{ {{"foo"}}, {{"bar", "foobar"}} }}
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.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/list/unordered-list-constructor_03/unordered-list-constructor_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.3.query.aql
new file mode 100644
index 0000000..86365cf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/list/unordered-list-constructor_03/unordered-list-constructor_03.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+{{ null, null, null }}
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql
new file mode 100644
index 0000000..0846e6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Create and load a dataset but with an unspecified data format.
+ * Expected Res : Failure
+ * Date : 16 Jan 2012
+ */
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Schema as closed{
+id: int32,
+age: int32,
+name: string
+}
+
+create dataset onektup(Schema)
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql
new file mode 100644
index 0000000..1c780d6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create and load a dataset but with an unspecified data format.
+ * Expected Res : Failure
+ * Date : 16 Jan 2012
+ */
+use dataverse test;
+
+load dataset onektup
+using localfs(("path"="nc1:///tmp/one.adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql
new file mode 100644
index 0000000..6e60c76
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create and load a dataset but with an unspecified data format.
+ * Expected Res : Failure
+ * Date : 16 Jan 2012
+ */
+use dataverse test;
+
+for $l in dataset('onektup')
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.1.ddl.aql
new file mode 100644
index 0000000..b9683dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Description : Load dataset with float numbers containing "E-4f"
+ * Expected Res : Success
+ * Date : 01 Apr 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as closed {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create dataset Customers(CustomerType)
+primary key cid;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.2.update.aql
new file mode 100644
index 0000000..f0671ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Load dataset with float numbers containing "E-4f"
+ * Expected Res : Success
+ * Date : 01 Apr 2013
+ */
+
+use dataverse test;
+
+load dataset Customers
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/customer-tiny-neg.adm"),("format"="adm")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.3.query.aql
new file mode 100644
index 0000000..1d2c9b6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue289_query/issue289_query.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Load dataset with float numbers containing "E-4f"
+ * Expected Res : Success
+ * Date : 01 Apr 2013
+ */
+
+use dataverse test;
+
+count(
+for $l in dataset('Customers')
+return $l
+)
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.1.ddl.aql
new file mode 100644
index 0000000..b8dd663
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Create and load a dataset but provide an invalid path argument with a missing ':'
+ * Expected Res : Failure
+ * Date : 5 Apr 2013
+ */
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Schema as closed{
+id: int32,
+age: int32,
+name: string
+}
+
+create dataset onektup(Schema)
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.2.update.aql
new file mode 100644
index 0000000..27d8215
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create and load a dataset but provide an invalid path with a missing ':'
+ * Expected Res : Failure
+ * Date : 5 Apr 2013
+ */
+use dataverse test;
+
+load dataset onektup
+using localfs(("path"="nc1///tmp/one.adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_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/misc/float_01/float_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.3.query.aql
new file mode 100644
index 0000000..7d00ff3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/float_01/float_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $f in [1f, 1F, 1.1f, 1.1F, .1f, .1F]
+return $f
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.1.ddl.aql
new file mode 100644
index 0000000..4a5848c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse twitter if exists;
+create dataverse twitter;
+
+use dataverse twitter;
+
+create type Tweet as open {
+ id: int32,
+ tweetid: int64,
+ loc: point,
+ time: datetime,
+ text: string
+}
+
+create external dataset TwitterData(Tweet)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/extrasmalltweets.txt"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.3.query.aql
new file mode 100644
index 0000000..f45c101
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/groupby-orderby-count/groupby-orderby-count.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse twitter;
+
+for $t in dataset('TwitterData')
+let $tokens := word-tokens($t.text)
+for $token in $tokens
+group by $tok := $token with $token
+order by count($token) desc, $tok asc
+return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.1.ddl.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.1.ddl.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.3.query.aql
new file mode 100644
index 0000000..8f33bf4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/ifthenelse_01/ifthenelse_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+if (2>1) then
+ 20
+else
+ 10
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_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/misc/is-null_01/is-null_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.3.query.aql
new file mode 100644
index 0000000..7725698
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/is-null_01/is-null_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+[is-null(null), is-null(10)]
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.1.ddl.aql
new file mode 100644
index 0000000..67ad586
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type UserType as open {
+ uid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create type VisitorType as open {
+ vid: int32,
+ name: string,
+ lottery_numbers: [int32],
+ interests: {{string}}
+}
+
+create dataset Users(UserType) primary key uid;
+create dataset Visitors(VisitorType) primary key vid;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.2.update.aql
new file mode 100644
index 0000000..caa966a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+load dataset Users
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
+
+load dataset Visitors
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.3.query.aql
new file mode 100644
index 0000000..f905f63
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/nested-loop-join_01/nested-loop-join_01.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $user in dataset('Users')
+for $visitor in dataset('Visitors')
+where len($user.lottery_numbers) = len($visitor.lottery_numbers)
+order by $user.uid, $visitor.vid
+return {'user': $user, 'visitor': $visitor, 'user-lottery_numbers-len': len($user.lottery_numbers), 'visitor-lottery_numbers-len': len($visitor.lottery_numbers)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.1.ddl.aql
new file mode 100644
index 0000000..da25235
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.1.ddl.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tries to partition a dataset by a non-existent field
+ * Expected Result: An error reporting that this is not allowed
+ * Author: zheilbron
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open{
+name1:string
+}
+
+create dataset testds(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.2.update.aql
new file mode 100644
index 0000000..253fd75
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tries to partition a dataset by a non-existent field
+ * Expected Result: An error reporting that this is not allowed
+ * Author: zheilbron
+ */
+
+use dataverse test;
+
+insert into dataset testds({"name1":"John","name2":"Smith"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.3.query.aql
new file mode 100644
index 0000000..05a6afe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/partition-by-nonexistent-field/partition-by-nonexistent-field.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tries to partition a dataset by a non-existent field
+ * Expected Result: An error reporting that this is not allowed
+ * Author: zheilbron
+ */
+
+use dataverse test;
+
+for $l in dataset('testds')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.1.ddl.aql
new file mode 100644
index 0000000..ba4e9c7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.3.query.aql
new file mode 100644
index 0000000..439c244
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/range_01/range_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in range(20,30)
+return $x
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_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/misc/tid_01/tid_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.3.query.aql
new file mode 100644
index 0000000..49e017a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/tid_01/tid_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $x at $i in ["a","b","c"]
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_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/misc/year_01/year_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.3.query.aql
new file mode 100644
index 0000000..5a2fb7b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/misc/year_01/year_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+year("1996-12-01")
diff --git a/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql b/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql
deleted file mode 100644
index 876648b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql
+++ /dev/null
@@ -1,39 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type UserType as open {
- uid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: {{string}}
-}
-
-create type VisitorType as open {
- vid: int32,
- name: string,
- lottery_numbers: [int32],
- interests: {{string}}
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
-
-load dataset Users
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/users-visitors-small/users.json"),("format"="adm"));
-
-load dataset Visitors
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/users-visitors-small/visitors.json"),("format"="adm"));
-
-write output to nc1:'rttest/nested-loop-join_01.adm';
-
-for $user in dataset('Users')
-for $visitor in dataset('Visitors')
-where len($user.lottery_numbers) = len($visitor.lottery_numbers)
-order by $user.uid, $visitor.vid
-return {'user': $user, 'visitor': $visitor, 'user-lottery_numbers-len': len($user.lottery_numbers), 'visitor-lottery_numbers-len': len($visitor.lottery_numbers)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql
new file mode 100644
index 0000000..70c3d0e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Test case Name : nestrecord.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type AddressType as open{
+ street: string,
+ city: string
+}
+
+create type testtype as open {
+ name: string,
+ id: string,
+ address: AddressType?
+}
+
+create dataset testds(testtype) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql
new file mode 100644
index 0000000..bca3929
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case Name : nestrecord.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds (
+{ "id": "001", "name": "Person One", "address": {"street": "3019 DBH", "city": "Irvine", "zip": 92697} }
+);
+
+insert into dataset testds (
+{ "id": "002", "name": "Person Two" }
+);
+
+insert into dataset testds (
+{ "id": "003", "name": "Person Three", "address": {"street": "2019 DBH", "city": "Irvine"} }
+);
+
+insert into dataset testds (
+{ "id": "004", "name": "Person Four", "home": {"street": "2019 DBH", "city": {"name": "Irvine", "zip": 92697} } }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql
new file mode 100644
index 0000000..24a3cb1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : nestrecord.aql
+ * Description : verify the static casting of nest record constants
+ * Expected Result : Success
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.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/numeric/abs0/abs0.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.3.query.aql
new file mode 100644
index 0000000..b86c67a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs0/abs0.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-0")
+let $c1 := int16("-0")
+let $c2 := int32("-0")
+let $c3 := int64("-0")
+let $c4 := int8("0")
+let $c5 := int16("0")
+let $c6 := int32("0")
+let $c7 := int64("0")
+return {"f0": numeric-abs($c0), "f1": numeric-abs($c1),"f2": numeric-abs($c2), "f3": numeric-abs($c3),
+ "f4": numeric-abs($c4),"f5": numeric-abs($c5) ,"f6": numeric-abs($c6), "f7": numeric-abs($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.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/numeric/abs1/abs1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.3.query.aql
new file mode 100644
index 0000000..cac32e5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs1/abs1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+let $c1 := int16("-23")
+let $c2 := int32("-29")
+let $c3 := int64("-21")
+let $c4 := int8("20")
+let $c5 := int16("22")
+let $c6 := int32("23")
+let $c7 := int64("27")
+return {"f0": numeric-abs($c0), "f1": numeric-abs($c1),"f2": numeric-abs($c2), "f3": numeric-abs($c3),
+ "f4": numeric-abs($c4),"f5": numeric-abs($c5) ,"f6": numeric-abs($c6), "f7": numeric-abs($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.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/numeric/abs2/abs2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.3.query.aql
new file mode 100644
index 0000000..4307a04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs2/abs2.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := float("-20.1")
+let $c1 := float("-20.56e-30")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+let $c5 := float("-0.0")
+let $c6 := float("0.0")
+return {"f0": numeric-abs($c0), "f1": numeric-abs($c1),"f2": numeric-abs($c2),
+ "f3": numeric-abs($c3),"f4": numeric-abs($c4),"f5": numeric-abs($c5), "f6": numeric-abs($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.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/numeric/abs3/abs3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.3.query.aql
new file mode 100644
index 0000000..691654f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs3/abs3.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := double("-20.1")
+let $c1 := double("-20.56e-30")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+let $c5 := double("-0.0")
+let $c6 := double("0.0")
+return {"d0": numeric-abs($c0), "d1": numeric-abs($c1),"d2": numeric-abs($c2),
+ "d3": numeric-abs($c3),"d4": numeric-abs($c4),"d5": numeric-abs($c5), "d6": numeric-abs($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.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/numeric/abs4/abs4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.3.query.aql
new file mode 100644
index 0000000..1c490cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/abs4/abs4.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+return {"f0": numeric-abs($c0), "f1": numeric-abs(-1.11),"f2": numeric-abs(12.9), "f3": numeric-abs(1.11)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_double.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double.aql
deleted file mode 100644
index 7275ddd..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/add_double.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_add_double.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c6+$c1,"result2": $c6+$c2,"result3": $c6+$c3,"result4": $c6+$c4,"result5": $c6+$c5, "result6": $c6+$c6, "result7": $c6+$c8 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.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/numeric/add_double/add_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.3.query.aql
new file mode 100644
index 0000000..d8e5e03
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_double/add_double.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c6+$c1,"result2": $c6+$c2,"result3": $c6+$c3,"result4": $c6+$c4,"result5": $c6+$c5, "result6": $c6+$c6, "result7": $c6+$c8 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_float.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float.aql
deleted file mode 100644
index c833d1a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/add_float.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_add_float.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c5+$c1,"result2": $c5+$c2,"result3": $c5+$c3,"result4": $c5+$c4,"result5": $c5+$c5, "result6": $c5+$c6, "result7": $c6+$c8 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.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/numeric/add_float/add_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.3.query.aql
new file mode 100644
index 0000000..821de17
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_float/add_float.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c5+$c1,"result2": $c5+$c2,"result3": $c5+$c3,"result4": $c5+$c4,"result5": $c5+$c5, "result6": $c5+$c6, "result7": $c6+$c8 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16.aql
deleted file mode 100644
index 9d4c98b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_add_int16.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c2+$c1,"result2": $c2+$c2,"result3": $c2+$c3,"result4": $c2+$c4,"result5": $c2+$c5, "result6": $c2+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.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/numeric/add_int16/add_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.3.query.aql
new file mode 100644
index 0000000..042d5fc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int16/add_int16.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c2+$c1,"result2": $c2+$c2,"result3": $c2+$c3,"result4": $c2+$c4,"result5": $c2+$c5, "result6": $c2+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32.aql
deleted file mode 100644
index 51dda5a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_add_int32.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c3+$c1,"result2": $c3+$c2,"result3": $c3+$c3,"result4": $c3+$c4,"result5": $c3+$c5, "result6": $c3+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.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/numeric/add_int32/add_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.3.query.aql
new file mode 100644
index 0000000..8580f06
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int32/add_int32.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c3+$c1,"result2": $c3+$c2,"result3": $c3+$c3,"result4": $c3+$c4,"result5": $c3+$c5, "result6": $c3+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64.aql
deleted file mode 100644
index 64fc6a5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_add_int64.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c4+$c1,"result2": $c4+$c2,"result3": $c4+$c3,"result4": $c4+$c4,"result5": $c4+$c5, "result6": $c4+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.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/numeric/add_int64/add_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.3.query.aql
new file mode 100644
index 0000000..7b1805d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int64/add_int64.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c4+$c1,"result2": $c4+$c2,"result3": $c4+$c3,"result4": $c4+$c4,"result5": $c4+$c5, "result6": $c4+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8.aql
deleted file mode 100644
index 9d3bb3f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_add_int8.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c1+$c1,"result2": $c1+$c2,"result3": $c1+$c3,"result4": $c1+$c4,"result5": $c1+$c5, "result6": $c1+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.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/numeric/add_int8/add_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.3.query.aql
new file mode 100644
index 0000000..42566d7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/add_int8/add_int8.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c1+$c1,"result2": $c1+$c2,"result3": $c1+$c3,"result4": $c1+$c4,"result5": $c1+$c5, "result6": $c1+$c6, "result7": $c6+$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.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/numeric/ceiling0/ceiling0.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.3.query.aql
new file mode 100644
index 0000000..b5d24d7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling0/ceiling0.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-0")
+let $c1 := int16("-0")
+let $c2 := int32("-0")
+let $c3 := int64("-0")
+let $c4 := int8("0")
+let $c5 := int16("0")
+let $c6 := int32("0")
+let $c7 := int64("0")
+return {"f0": numeric-ceiling($c0), "f1": numeric-ceiling($c1),"f2": numeric-ceiling($c2), "f3": numeric-ceiling($c3),
+ "f4": numeric-ceiling($c4),"f5": numeric-ceiling($c5) ,"f6": numeric-ceiling($c6), "f7": numeric-ceiling($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.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/numeric/ceiling1/ceiling1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.3.query.aql
new file mode 100644
index 0000000..b40dc003
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling1/ceiling1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+let $c1 := int16("-23")
+let $c2 := int32("-29")
+let $c3 := int64("-21")
+let $c4 := int8("20")
+let $c5 := int16("22")
+let $c6 := int32("23")
+let $c7 := int64("27")
+return {"f0": numeric-ceiling($c0), "f1": numeric-ceiling($c1),"f2": numeric-ceiling($c2), "f3": numeric-ceiling($c3),
+ "f4": numeric-ceiling($c4),"f5": numeric-ceiling($c5) ,"f6": numeric-ceiling($c6), "f7": numeric-ceiling($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.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/numeric/ceiling2/ceiling2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.3.query.aql
new file mode 100644
index 0000000..6d6b7a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling2/ceiling2.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := float("20.1")
+let $c1 := float("-20.56e-30")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+let $c5 := float("-0.0")
+let $c6 := float("0.0")
+return {"f0": numeric-ceiling($c0), "f1": numeric-ceiling($c1),"f2": numeric-ceiling($c2),
+ "f3": numeric-ceiling($c3),"f4": numeric-ceiling($c4),"f5": numeric-ceiling($c5), "f6": numeric-ceiling($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.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/numeric/ceiling3/ceiling3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.3.query.aql
new file mode 100644
index 0000000..51ecbf5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling3/ceiling3.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := double("20.1")
+let $c1 := double("-20.56e-30")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+let $c5 := double("-0.0")
+let $c6 := double("0.0")
+return {"d0": numeric-ceiling($c0), "d1": numeric-ceiling($c1),"d2": numeric-ceiling($c2),
+ "d3": numeric-ceiling($c3),"d4": numeric-ceiling($c4),"d5": numeric-ceiling($c5), "d6": numeric-ceiling($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.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/numeric/ceiling4/ceiling4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.3.query.aql
new file mode 100644
index 0000000..4d3b3ef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/ceiling4/ceiling4.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+return {"f0": numeric-ceiling($c0), "f1": numeric-ceiling(-1.11),"f2": numeric-ceiling(12.9), "f3": numeric-ceiling(1.11)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double.aql
deleted file mode 100644
index 9b3412d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_divide_double.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c6/$c1,"result2": $c6/$c2,"result3": $c6/$c3,"result4": $c6/$c4,"result5": $c6/$c5, "result6": $c6/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.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/numeric/divide_double/divide_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.3.query.aql
new file mode 100644
index 0000000..71027c5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_double/divide_double.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c6/$c1,"result2": $c6/$c2,"result3": $c6/$c3,"result4": $c6/$c4,"result5": $c6/$c5, "result6": $c6/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float.aql
deleted file mode 100644
index ac8b2cb..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_divide_float.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c5/$c1,"result2": $c5/$c2,"result3": $c5/$c3,"result4": $c5/$c4,"result5": $c5/$c5, "result6": $c5/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.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/numeric/divide_float/divide_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.3.query.aql
new file mode 100644
index 0000000..2f3ba46
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_float/divide_float.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c5/$c1,"result2": $c5/$c2,"result3": $c5/$c3,"result4": $c5/$c4,"result5": $c5/$c5, "result6": $c5/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16.aql
deleted file mode 100644
index afda7f5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_divide_int16.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c2/$c1,"result2": $c2/$c2,"result3": $c2/$c3,"result4": $c2/$c4,"result5": $c2/$c5, "result6": $c2/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.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/numeric/divide_int16/divide_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.3.query.aql
new file mode 100644
index 0000000..a441651
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int16/divide_int16.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c2/$c1,"result2": $c2/$c2,"result3": $c2/$c3,"result4": $c2/$c4,"result5": $c2/$c5, "result6": $c2/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32.aql
deleted file mode 100644
index b5305c3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_divide_int32.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c3/$c1,"result2": $c3/$c2,"result3": $c3/$c3,"result4": $c3/$c4,"result5": $c3/$c5, "result6": $c3/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.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/numeric/divide_int32/divide_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.3.query.aql
new file mode 100644
index 0000000..2362f53
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int32/divide_int32.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c3/$c1,"result2": $c3/$c2,"result3": $c3/$c3,"result4": $c3/$c4,"result5": $c3/$c5, "result6": $c3/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64.aql
deleted file mode 100644
index f4239b1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_divide_int64.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c4/$c1,"result2": $c4/$c2,"result3": $c4/$c3,"result4": $c4/$c4,"result5": $c4/$c5, "result6": $c4/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.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/numeric/divide_int64/divide_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.3.query.aql
new file mode 100644
index 0000000..f8bbe0d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int64/divide_int64.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c4/$c1,"result2": $c4/$c2,"result3": $c4/$c3,"result4": $c4/$c4,"result5": $c4/$c5, "result6": $c4/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8.aql
deleted file mode 100644
index a38ba28..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_divide_int8.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c1/$c1,"result2": $c1/$c2,"result3": $c1/$c3,"result4": $c1/$c4,"result5": $c1/$c5, "result6": $c1/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.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/numeric/divide_int8/divide_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.3.query.aql
new file mode 100644
index 0000000..274d86b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/divide_int8/divide_int8.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c1/$c1,"result2": $c1/$c2,"result3": $c1/$c3,"result4": $c1/$c4,"result5": $c1/$c5, "result6": $c1/$c6, "result7": $c6/$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.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/numeric/floor0/floor0.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.3.query.aql
new file mode 100644
index 0000000..64bec24
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor0/floor0.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-0")
+let $c1 := int16("-0")
+let $c2 := int32("-0")
+let $c3 := int64("-0")
+let $c4 := int8("0")
+let $c5 := int16("0")
+let $c6 := int32("0")
+let $c7 := int64("0")
+return {"f0": numeric-floor($c0), "f1": numeric-floor($c1),"f2": numeric-floor($c2), "f3": numeric-floor($c3),
+ "f4": numeric-floor($c4),"f5": numeric-floor($c5) ,"f6": numeric-floor($c6), "f7": numeric-floor($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.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/numeric/floor1/floor1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.3.query.aql
new file mode 100644
index 0000000..2edc17a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor1/floor1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+let $c1 := int16("-23")
+let $c2 := int32("-29")
+let $c3 := int64("-21")
+let $c4 := int8("20")
+let $c5 := int16("22")
+let $c6 := int32("23")
+let $c7 := int64("27")
+return {"f0": numeric-floor($c0), "f1": numeric-floor($c1),"f2": numeric-floor($c2), "f3": numeric-floor($c3),
+ "f4": numeric-floor($c4),"f5": numeric-floor($c5) ,"f6": numeric-floor($c6), "f7": numeric-floor($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.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/numeric/floor2/floor2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.3.query.aql
new file mode 100644
index 0000000..89c408d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor2/floor2.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := float("20.1")
+let $c1 := float("-20.56e-30")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+let $c5 := float("-0.0")
+let $c6 := float("0.0")
+return {"f0": numeric-floor($c0), "f1": numeric-floor($c1),"f2": numeric-floor($c2),
+ "f3": numeric-floor($c3),"f4": numeric-floor($c4),"f5": numeric-floor($c5), "f6": numeric-floor($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.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/numeric/floor3/floor3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.3.query.aql
new file mode 100644
index 0000000..66b2183
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor3/floor3.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := double("20.1")
+let $c1 := double("-20.56e-30")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+let $c5 := double("-0.0")
+let $c6 := double("0.0")
+return {"d0": numeric-floor($c0), "d1": numeric-floor($c1),"d2": numeric-floor($c2),
+ "d3": numeric-floor($c3),"d4": numeric-floor($c4),"d5": numeric-floor($c5), "d6": numeric-floor($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.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/numeric/floor4/floor4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.3.query.aql
new file mode 100644
index 0000000..77c6069
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/floor4/floor4.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+return {"f0": numeric-floor($c0), "f1": numeric-floor(-1.11),"f2": numeric-floor(12.9), "f3": numeric-floor(1.11)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double.aql
deleted file mode 100644
index 3e74b2d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_multiply_double.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c6*$c1,"result2": $c6*$c2,"result3": $c6*$c3,"result4": $c6*$c4,"result5": $c6*$c5, "result6": $c6*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.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/numeric/multiply_double/multiply_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.3.query.aql
new file mode 100644
index 0000000..b28a063
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_double/multiply_double.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c6*$c1,"result2": $c6*$c2,"result3": $c6*$c3,"result4": $c6*$c4,"result5": $c6*$c5, "result6": $c6*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float.aql
deleted file mode 100644
index 64a5601..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_multiply_float.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c5*$c1,"result2": $c5*$c2,"result3": $c5*$c3,"result4": $c5*$c4,"result5": $c5*$c5, "result6": $c5*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.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/numeric/multiply_float/multiply_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.3.query.aql
new file mode 100644
index 0000000..eff6419
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_float/multiply_float.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c5*$c1,"result2": $c5*$c2,"result3": $c5*$c3,"result4": $c5*$c4,"result5": $c5*$c5, "result6": $c5*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16.aql
deleted file mode 100644
index 18c3dd8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_multiply_int16.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c2*$c1,"result2": $c2*$c2,"result3": $c2*$c3,"result4": $c2*$c4,"result5": $c2*$c5, "result6": $c2*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.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/numeric/multiply_int16/multiply_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.3.query.aql
new file mode 100644
index 0000000..fa32d80
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int16/multiply_int16.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c2*$c1,"result2": $c2*$c2,"result3": $c2*$c3,"result4": $c2*$c4,"result5": $c2*$c5, "result6": $c2*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32.aql
deleted file mode 100644
index 72d29c3..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_multiply_int32.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c3*$c1,"result2": $c3*$c2,"result3": $c3*$c3,"result4": $c3*$c4,"result5": $c3*$c5, "result6": $c3*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.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/numeric/multiply_int32/multiply_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.3.query.aql
new file mode 100644
index 0000000..ba40d6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int32/multiply_int32.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c3*$c1,"result2": $c3*$c2,"result3": $c3*$c3,"result4": $c3*$c4,"result5": $c3*$c5, "result6": $c3*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64.aql
deleted file mode 100644
index c734dc7..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_multiply_int64.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c4*$c1,"result2": $c4*$c2,"result3": $c4*$c3,"result4": $c4*$c4,"result5": $c4*$c5, "result6": $c4*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.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/numeric/multiply_int64/multiply_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.3.query.aql
new file mode 100644
index 0000000..3d68417
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int64/multiply_int64.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c4*$c1,"result2": $c4*$c2,"result3": $c4*$c3,"result4": $c4*$c4,"result5": $c4*$c5, "result6": $c4*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8.aql
deleted file mode 100644
index f65b61d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_multiply_int8.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c1*$c1,"result2": $c1*$c2,"result3": $c1*$c3,"result4": $c1*$c4,"result5": $c1*$c5, "result6": $c1*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.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/numeric/multiply_int8/multiply_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.3.query.aql
new file mode 100644
index 0000000..12f0792
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/multiply_int8/multiply_int8.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c1*$c1,"result2": $c1*$c2,"result3": $c1*$c3,"result4": $c1*$c4,"result5": $c1*$c5, "result6": $c1*$c6, "result7": $c6*$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.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/numeric/round-half-to-even0/round-half-to-even0.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.3.query.aql
new file mode 100644
index 0000000..6c5e177
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even0/round-half-to-even0.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-0")
+let $c1 := int16("-0")
+let $c2 := int32("-0")
+let $c3 := int64("-0")
+let $c4 := int8("0")
+let $c5 := int16("0")
+let $c6 := int32("0")
+let $c7 := int64("0")
+return {"f0": numeric-round-half-to-even($c0), "f1": numeric-round-half-to-even($c1),"f2": numeric-round-half-to-even($c2), "f3": numeric-round-half-to-even($c3),
+ "f4": numeric-round-half-to-even($c4),"f5": numeric-round-half-to-even($c5) ,"f6": numeric-round-half-to-even($c6), "f7": numeric-round-half-to-even($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.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/numeric/round-half-to-even1/round-half-to-even1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.3.query.aql
new file mode 100644
index 0000000..271b0c3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even1/round-half-to-even1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+let $c1 := int16("-23")
+let $c2 := int32("-29")
+let $c3 := int64("-21")
+let $c4 := int8("20")
+let $c5 := int16("22")
+let $c6 := int32("23")
+let $c7 := int64("27")
+return {"f0": numeric-round-half-to-even($c0), "f1": numeric-round-half-to-even($c1),"f2": numeric-round-half-to-even($c2), "f3": numeric-round-half-to-even($c3),
+ "f4": numeric-round-half-to-even($c4),"f5": numeric-round-half-to-even($c5) ,"f6": numeric-round-half-to-even($c6), "f7": numeric-round-half-to-even($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.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/numeric/round-half-to-even2/round-half-to-even2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.3.query.aql
new file mode 100644
index 0000000..f420b2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even2/round-half-to-even2.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+
+let $c0 := float("0.5")
+let $c1 := float("-20.5")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+let $c5 := float("-0.0")
+let $c6 := float("0.0")
+return {"f0": numeric-round-half-to-even($c0), "f1": numeric-round-half-to-even($c1),"f2": numeric-round-half-to-even($c2),
+ "f3": numeric-round-half-to-even($c3),"f4": numeric-round-half-to-even($c4),"f5": numeric-round-half-to-even($c5), "f6": numeric-round-half-to-even($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.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/numeric/round-half-to-even20/round-half-to-even20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.3.query.aql
new file mode 100644
index 0000000..d14fb40
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even20/round-half-to-even20.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-0")
+let $c1 := int16("-0")
+let $c2 := int32("-0")
+let $c3 := int64("-0")
+let $c4 := int8("0")
+let $c5 := int16("0")
+let $c6 := int32("0")
+let $c7 := int64("0")
+return {"f0": numeric-round-half-to-even($c0,2), "f1": numeric-round-half-to-even($c1,2),"f2": numeric-round-half-to-even($c2,2), "f3": numeric-round-half-to-even($c3,2),
+ "f4": numeric-round-half-to-even($c4,2),"f5": numeric-round-half-to-even($c5,2) ,"f6": numeric-round-half-to-even($c6,2), "f7": numeric-round-half-to-even($c7,2)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.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/numeric/round-half-to-even21/round-half-to-even21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.3.query.aql
new file mode 100644
index 0000000..958a63d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even21/round-half-to-even21.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+let $c1 := int16("-23")
+let $c2 := int32("-29")
+let $c3 := int64("-21")
+let $c4 := int8("20")
+let $c5 := int16("22")
+let $c6 := int32("23")
+let $c7 := int64("27")
+return {"f0": numeric-round-half-to-even($c0,2), "f1": numeric-round-half-to-even($c1,2),"f2": numeric-round-half-to-even($c2,2), "f3": numeric-round-half-to-even($c3,2),
+ "f4": numeric-round-half-to-even($c4,2),"f5": numeric-round-half-to-even($c5,2) ,"f6": numeric-round-half-to-even($c6,2), "f7": numeric-round-half-to-even($c7,2)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.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/numeric/round-half-to-even22/round-half-to-even22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.3.query.aql
new file mode 100644
index 0000000..e9aa46c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even22/round-half-to-even22.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := float("0.555")
+let $c1 := float("0.322")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+let $c5 := float("-0.0")
+let $c6 := float("0.0")
+return {"d0": numeric-round-half-to-even($c0,2), "d1": numeric-round-half-to-even($c1,2),"d2": numeric-round-half-to-even($c2,3),
+ "d3": numeric-round-half-to-even($c3,4),"d4": numeric-round-half-to-even($c4,5),"d5": numeric-round-half-to-even($c5,6), "d6": numeric-round-half-to-even($c6,0)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.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/numeric/round-half-to-even23/round-half-to-even23.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.3.query.aql
new file mode 100644
index 0000000..8fe4615
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even23/round-half-to-even23.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := double("0.555")
+let $c1 := double("0.322")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+let $c5 := double("-0.0")
+let $c6 := double("0.0")
+return {"d0": numeric-round-half-to-even($c0,2), "d1": numeric-round-half-to-even($c1,2),"d2": numeric-round-half-to-even($c2,3),
+ "d3": numeric-round-half-to-even($c3,4),"d4": numeric-round-half-to-even($c4,5),"d5": numeric-round-half-to-even($c5,6), "d6": numeric-round-half-to-even($c6,0)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.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/numeric/round-half-to-even24/round-half-to-even24.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.3.query.aql
new file mode 100644
index 0000000..9b3095f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even24/round-half-to-even24.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+let $c0 := double("0.015")
+let $c1 := double("0.025")
+let $c2 := double("3.567812E+3")
+let $c3 := double("4.7564E-3")
+let $c4 := double("35612.25")
+return {"d0": numeric-round-half-to-even($c0,2), "d1": numeric-round-half-to-even($c1,2),"d2": numeric-round-half-to-even($c2,2),
+ "d3": numeric-round-half-to-even($c3,2),"d4": numeric-round-half-to-even($c4,-2)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.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/numeric/round-half-to-even3/round-half-to-even3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.3.query.aql
new file mode 100644
index 0000000..e9c4587
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even3/round-half-to-even3.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := double("0.5")
+let $c1 := double("-20.5")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+let $c5 := double("-0.0")
+let $c6 := double("0.0")
+return {"d0": numeric-round-half-to-even($c0), "d1": numeric-round-half-to-even($c1), "d2": numeric-round-half-to-even($c2),
+ "d3": numeric-round-half-to-even($c3), "d4": numeric-round-half-to-even($c4), "d5": numeric-round-half-to-even($c5), "d6": numeric-round-half-to-even($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.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/numeric/round-half-to-even4/round-half-to-even4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.3.query.aql
new file mode 100644
index 0000000..b678603
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even4/round-half-to-even4.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $c0 := double("1.5")
+let $c1 := double("2.5")
+return {"d0": numeric-round-half-to-even($c0), "d1": numeric-round-half-to-even($c1)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.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/numeric/round-half-to-even5/round-half-to-even5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.3.query.aql
new file mode 100644
index 0000000..63a6acd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round-half-to-even5/round-half-to-even5.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+return {"f0": numeric-round-half-to-even($c0), "f1": numeric-round-half-to-even(-1.5),"f2": numeric-round-half-to-even(12.5), "f3": numeric-round-half-to-even(1.5)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.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/numeric/round0/round0.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.3.query.aql
new file mode 100644
index 0000000..3ecd6a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round0/round0.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-0")
+let $c1 := int16("-0")
+let $c2 := int32("-0")
+let $c3 := int64("-0")
+let $c4 := int8("0")
+let $c5 := int16("0")
+let $c6 := int32("0")
+let $c7 := int64("0")
+return {"f0": numeric-round($c0), "f1": numeric-round($c1),"f2": numeric-round($c2), "f3": numeric-round($c3),
+ "f4": numeric-round($c4),"f5": numeric-round($c5) ,"f6": numeric-round($c6), "f7": numeric-round($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.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/numeric/round1/round1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.3.query.aql
new file mode 100644
index 0000000..5a66f35
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round1/round1.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+let $c1 := int16("-23")
+let $c2 := int32("-29")
+let $c3 := int64("-21")
+let $c4 := int8("20")
+let $c5 := int16("22")
+let $c6 := int32("23")
+let $c7 := int64("27")
+return {"f0": numeric-round($c0), "f1": numeric-round($c1),"f2": numeric-round($c2), "f3": numeric-round($c3),
+ "f4": numeric-round($c4),"f5": numeric-round($c5) ,"f6": numeric-round($c6), "f7": numeric-round($c7)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.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/numeric/round2/round2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.3.query.aql
new file mode 100644
index 0000000..941b606
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round2/round2.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := float("20.1")
+let $c1 := float("-20.56e-30")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+let $c5 := float("-0.0")
+let $c6 := float("0.0")
+return {"f0": numeric-round($c0), "f1": numeric-round($c1),"f2": numeric-round($c2),
+ "f3": numeric-round($c3),"f4": numeric-round($c4),"f5": numeric-round($c5), "f6": numeric-round($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.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/numeric/round3/round3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.3.query.aql
new file mode 100644
index 0000000..90aa1e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round3/round3.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c0 := double("20.1")
+let $c1 := double("-20.56e-30")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+let $c5 := double("-0.0")
+let $c6 := double("0.0")
+return {"d0": numeric-round($c0), "d1": numeric-round($c1),"d2": numeric-round($c2),
+ "d3": numeric-round($c3),"d4": numeric-round($c4),"d5": numeric-round($c5), "d6": numeric-round($c6)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.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/numeric/round4/round4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.3.query.aql
new file mode 100644
index 0000000..49646b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/round4/round4.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c0 := int8("-20")
+return {"f0": numeric-round($c0), "f1": numeric-round(-1.11),"f2": numeric-round(12.9), "f3": numeric-round(1.11)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double.aql
deleted file mode 100644
index 46115b6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_subtract_double.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c6 -$c1,"result2": $c6 -$c2,"result3": $c6 -$c3,"result4": $c6 -$c4,"result5": $c6 -$c5, "result6": $c6 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.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/numeric/subtract_double/subtract_double.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.3.query.aql
new file mode 100644
index 0000000..c30a09d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_double/subtract_double.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c6 -$c1,"result2": $c6 -$c2,"result3": $c6 -$c3,"result4": $c6 -$c4,"result5": $c6 -$c5, "result6": $c6 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float.aql
deleted file mode 100644
index e20e43c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_subtract_float.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c5 -$c1,"result2": $c5 -$c2,"result3": $c5 -$c3,"result4": $c5 -$c4,"result5": $c5 -$c5, "result6": $c5 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.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/numeric/subtract_float/subtract_float.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.3.query.aql
new file mode 100644
index 0000000..db4d076
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_float/subtract_float.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c5 -$c1,"result2": $c5 -$c2,"result3": $c5 -$c3,"result4": $c5 -$c4,"result5": $c5 -$c5, "result6": $c5 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16.aql
deleted file mode 100644
index 3fea866..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_subtract_int16.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c2 -$c1,"result2": $c2 -$c2,"result3": $c2 -$c3,"result4": $c2 -$c4,"result5": $c2 -$c5, "result6": $c2 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.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/numeric/subtract_int16/subtract_int16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.3.query.aql
new file mode 100644
index 0000000..bdc786c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int16/subtract_int16.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c2 -$c1,"result2": $c2 -$c2,"result3": $c2 -$c3,"result4": $c2 -$c4,"result5": $c2 -$c5, "result6": $c2 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32.aql
deleted file mode 100644
index b668402..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_subtract_int32.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c3 -$c1,"result2": $c3 -$c2,"result3": $c3 -$c3,"result4": $c3 -$c4,"result5": $c3 -$c5, "result6": $c3 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.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/numeric/subtract_int32/subtract_int32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.3.query.aql
new file mode 100644
index 0000000..e280613
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int32/subtract_int32.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c3 -$c1,"result2": $c3 -$c2,"result3": $c3 -$c3,"result4": $c3 -$c4,"result5": $c3 -$c5, "result6": $c3 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64.aql
deleted file mode 100644
index cb8cdda..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_subtract_int64.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c4 -$c1,"result2": $c4 -$c2,"result3": $c4 -$c3,"result4": $c4 -$c4,"result5": $c4 -$c5, "result6": $c4 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.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/numeric/subtract_int64/subtract_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.3.query.aql
new file mode 100644
index 0000000..53bb82a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int64/subtract_int64.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c4 -$c1,"result2": $c4 -$c2,"result3": $c4 -$c3,"result4": $c4 -$c4,"result5": $c4 -$c5, "result6": $c4 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8.aql
deleted file mode 100644
index f9afed0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_subtract_int8.adm";
-
-let $c1 := int8("+1")
-let $c2 := int16("2")
-let $c3 := int32("+3")
-let $c4 := int64("-4")
-let $c5 := float("-5.5f")
-let $c6 := double("-6.5d")
-let $c7 := [1]
-let $c8 := $c7[1]
-return {"result1": $c1 -$c1,"result2": $c1 -$c2,"result3": $c1 -$c3,"result4": $c1 -$c4,"result5": $c1 -$c5, "result6": $c1 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.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/numeric/subtract_int8/subtract_int8.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.3.query.aql
new file mode 100644
index 0000000..79d11a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/subtract_int8/subtract_int8.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := int8("+1")
+let $c2 := int16("2")
+let $c3 := int32("+3")
+let $c4 := int64("-4")
+let $c5 := float("-5.5f")
+let $c6 := double("-6.5d")
+let $c7 := [1]
+let $c8 := $c7[1]
+return {"result1": $c1 -$c1,"result2": $c1 -$c2,"result3": $c1 -$c3,"result4": $c1 -$c4,"result5": $c1 -$c5, "result6": $c1 -$c6, "result7": $c6 -$c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01.aql
deleted file mode 100644
index d10860c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_double_01.adm";
-
-let $c1 := double("-20.56e-30")
-let $c2 := double("NaN")
-let $c3 := double("INF")
-let $c4 := double("-INF")
-return {"double1": numeric-unary-minus($c1),"double2": numeric-unary-minus($c2),"double3": numeric-unary-minus($c3),"double4": numeric-unary-minus($c4)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_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/numeric/unary-minus_double_01/unary-minus_double_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.3.query.aql
new file mode 100644
index 0000000..169ca39
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_01/unary-minus_double_01.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := double("-20.56e-30")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+return {"double1": numeric-unary-minus($c1),"double2": numeric-unary-minus($c2),"double3": numeric-unary-minus($c3),"double4": numeric-unary-minus($c4)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02.aql
deleted file mode 100644
index e13a929..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_double_02.adm";
-
-let $c1 := double("-20.56e-30")
-let $c2 := double("NaN")
-let $c3 := double("INF")
-let $c4 := double("-INF")
-return {"double1": -$c1,"double2": -$c2,"double3": -$c3,"double4": -$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.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/numeric/unary-minus_double_02/unary-minus_double_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.3.query.aql
new file mode 100644
index 0000000..faab506
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_double_02/unary-minus_double_02.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := double("-20.56e-30")
+let $c2 := double("NaN")
+let $c3 := double("INF")
+let $c4 := double("-INF")
+return {"double1": -$c1,"double2": -$c2,"double3": -$c3,"double4": -$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01.aql
deleted file mode 100644
index fe7d11c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_float_01.adm";
-
-let $c1 := float("-80.20f")
-let $c2 := float("NaN")
-let $c3 := float("INF")
-let $c4 := float("-INF")
-return {"float1": numeric-unary-minus($c1),"float2": numeric-unary-minus($c2),"float3": numeric-unary-minus($c3),"float4": numeric-unary-minus($c4)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_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/numeric/unary-minus_float_01/unary-minus_float_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.3.query.aql
new file mode 100644
index 0000000..e5e0071
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_01/unary-minus_float_01.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := float("-80.20f")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+return {"float1": numeric-unary-minus($c1),"float2": numeric-unary-minus($c2),"float3": numeric-unary-minus($c3),"float4": numeric-unary-minus($c4)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02.aql
deleted file mode 100644
index 9c0d590..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_float_02.adm";
-
-let $c1 := float("-80.20f")
-let $c2 := float("NaN")
-let $c3 := float("INF")
-let $c4 := float("-INF")
-return {"float1": -$c1,"float2": -$c2,"float3": -$c3,"float4": -$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.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/numeric/unary-minus_float_02/unary-minus_float_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.3.query.aql
new file mode 100644
index 0000000..a57e8a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_float_02/unary-minus_float_02.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := float("-80.20f")
+let $c2 := float("NaN")
+let $c3 := float("INF")
+let $c4 := float("-INF")
+return {"float1": -$c1,"float2": -$c2,"float3": -$c3,"float4": -$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01.aql
deleted file mode 100644
index 10a5b69..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_int_01.adm";
-
-let $c1 := int8("+80")
-let $c2 := int16("160")
-let $c3 := int32("+320")
-let $c4 := int64("-640")
-return {"int8": numeric-unary-minus($c1),"int16": numeric-unary-minus($c2),"int32": numeric-unary-minus($c3),"int64": numeric-unary-minus($c4)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_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/numeric/unary-minus_int_01/unary-minus_int_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.3.query.aql
new file mode 100644
index 0000000..660e55f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_01/unary-minus_int_01.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := int8("+80")
+let $c2 := int16("160")
+let $c3 := int32("+320")
+let $c4 := int64("-640")
+return {"int8": numeric-unary-minus($c1),"int16": numeric-unary-minus($c2),"int32": numeric-unary-minus($c3),"int64": numeric-unary-minus($c4)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02.aql
deleted file mode 100644
index 58acf8b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_int_02.adm";
-
-let $c1 := int8("+80")
-let $c2 := int16("160")
-let $c3 := int32("+320")
-let $c4 := int64("-640")
-return {"int8": -$c1,"int16": -$c2,"int32": -$c3,"int64": -$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.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/numeric/unary-minus_int_02/unary-minus_int_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.3.query.aql
new file mode 100644
index 0000000..2a9e116
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_int_02/unary-minus_int_02.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := int8("+80")
+let $c2 := int16("160")
+let $c3 := int32("+320")
+let $c4 := int64("-640")
+return {"int8": -$c1,"int16": -$c2,"int32": -$c3,"int64": -$c4}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null.aql
deleted file mode 100644
index 13b3e26..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/numeric_unary-minus_null.adm";
-
-let $l := [1]
-let $c := $l[1]
-return {"nullField": -$c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.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/numeric/unary-minus_null/unary-minus_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.3.query.aql
new file mode 100644
index 0000000..411d370
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/numeric/unary-minus_null/unary-minus_null.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $l := [1]
+let $c := $l[1]
+return {"nullField": -$c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.1.ddl.aql
new file mode 100644
index 0000000..fcc576b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Testcase Name : c2c-w-optional.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * : The schema includes one optional field named optnl_fld.
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as closed {
+id:int32,
+description:string,
+name:string,
+optnl_fld:string?
+}
+
+create dataset T1(TestType) primary key id;
+
+create dataset T2(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.2.update.aql
new file mode 100644
index 0000000..89c4d1b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.2.update.aql
@@ -0,0 +1,21 @@
+/*
+ * Testcase Name : c2c-w-optional.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * : The schema includes one optional field named optnl_fld.
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake",
+"optnl_fld":"optional data goes here"
+}
+);
+
+insert into dataset T2(for $l in dataset("T1") return $l );
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.3.query.aql
new file mode 100644
index 0000000..8afe5b1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-optional/c2c-w-option.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Testcase Name : c2c-w-optional.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * : The schema includes one optional field named optnl_fld.
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+use dataverse test;
+
+for $d in dataset("T2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.1.ddl.aql
new file mode 100644
index 0000000..4e4cc66
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Testcase Name : c2c-wo-optional.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * : The schema includes one optional field named optnl_fld.
+ * : Note that the optional field in source dataset does not hold any data.
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as closed {
+id:int32,
+description:string,
+name:string,
+optnl_fld:string?
+}
+
+create dataset T1(TestType) primary key id;
+
+create dataset T2(TestType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.2.update.aql
new file mode 100644
index 0000000..b4da91b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.2.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Testcase Name : c2c-wo-optional.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * : The schema includes one optional field named optnl_fld.
+ * : Note that the optional field in source dataset does not hold any data.
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake"
+}
+);
+
+insert into dataset T2(for $l in dataset("T1") return $l );
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.3.query.aql
new file mode 100644
index 0000000..4b5434c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-optional/c2c-wo-optional.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Testcase Name : c2c-wo-optional.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * : The schema includes one optional field named optnl_fld.
+ * : Note that the optional field in source dataset does not hold any data.
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+use dataverse test;
+
+for $d in dataset("T2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql
new file mode 100644
index 0000000..d1c4720
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql
@@ -0,0 +1,24 @@
+/*
+ * Testcase Name : c2c.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as closed {
+id:int32,
+description:string,
+name:string
+}
+
+// source dataset
+create dataset T1(TestType) primary key id;
+
+// target dataset
+create dataset T2(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql
new file mode 100644
index 0000000..aa6fb93
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql
@@ -0,0 +1,19 @@
+/*
+ * Testcase Name : c2c.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake"
+}
+);
+
+insert into dataset T2(for $l in dataset("T1") return $l );
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql
new file mode 100644
index 0000000..e938d42
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Testcase Name : c2c.aql
+ * Description : Insert data into target datase by doing a select on source dataset.
+ * : Here both source and target datasets are internal datasets
+ * Success : Yes
+ * Date : 23rd May 2012
+ */
+
+use dataverse test;
+
+for $d in dataset("T2")
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql
new file mode 100644
index 0000000..c37d5e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : heterog-list01.aql
+ * Description : To test insertion of an array of objects into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 14th April 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type BatterType as {
+id:int32,
+descrpt:string
+}
+
+create type TestType as closed {
+id:int32,
+description:string,
+name:string,
+batters:[[BatterType]]
+}
+
+create dataset T1(TestType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql
new file mode 100644
index 0000000..621d562
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : heterog-list01.aql
+ * Description : To test insertion of an array of objects into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 14th April 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake",
+"batters":[[ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} ]] }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql
new file mode 100644
index 0000000..3f23e35
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : heterog-list01.aql
+ * Description : To test insertion of an array of objects into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 14th April 2012
+ */
+
+use dataverse test;
+
+for $d in dataset("T1")
+order by $d.id
+return $d
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql
new file mode 100644
index 0000000..dbc67fa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+ * Test case Name : heterog-list01.aql
+ * Description : To test insertion of an array of objects into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 14th April 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type BatterType as {
+id:int32,
+descrpt:string
+}
+
+create type TestType as closed {
+id:int32,
+description:string,
+name:string,
+batters:{{BatterType}}
+}
+
+create dataset T1(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql
new file mode 100644
index 0000000..5a1bd10
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : heterog-list01.aql
+ * Description : To test insertion of an array of objects into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 14th April 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake",
+"batters":{{ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} }} }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql
new file mode 100644
index 0000000..3f23e35
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : heterog-list01.aql
+ * Description : To test insertion of an array of objects into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 14th April 2012
+ */
+
+use dataverse test;
+
+for $d in dataset("T1")
+order by $d.id
+return $d
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql
new file mode 100644
index 0000000..6426aa3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : heterog-list02.aql
+ * Description : To test insertion of an array of arrays into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 28th May 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type BatterType as {
+id:int32,
+descrpt:string
+}
+
+create type TestType as {
+id:int32,
+description:string,
+name:string,
+batters:[[BatterType]]
+}
+
+create dataset T1(TestType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql
new file mode 100644
index 0000000..98bc444
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Test case Name : heterog-list02.aql
+ * Description : To test insertion of an array of arrays into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 28th May 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake",
+"batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql
new file mode 100644
index 0000000..7f7c177
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : heterog-list02.aql
+ * Description : To test insertion of an array of arrays into internal dataset.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 28th May 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('T1')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql
new file mode 100644
index 0000000..497a358
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql
@@ -0,0 +1,27 @@
+/*
+ * Test case Name : heterog-list03.aql
+ * Description : To test insertion of an array of arrays into internal dataset.
+ * : batters field is optional in this scenario.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 28th May 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type BatterType as {
+id:int32,
+descrpt:string
+}
+
+create type TestType as {
+id:int32,
+description:string,
+name:string,
+batters:[[BatterType]]?
+}
+
+create dataset T1(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql
new file mode 100644
index 0000000..427703d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Test case Name : heterog-list03.aql
+ * Description : To test insertion of an array of arrays into internal dataset.
+ * : batters field is optional in this scenario.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 28th May 2012
+ */
+
+use dataverse test;
+
+insert into dataset T1({
+"id":1234,
+"description":"donut",
+"name":"Cake",
+"batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql
new file mode 100644
index 0000000..abae0ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : heterog-list03.aql
+ * Description : To test insertion of an array of arrays into internal dataset.
+ * : batters field is optional in this scenario.
+ * : Heterogenous list construction.
+ * Success : Yes
+ * Date : 28th May 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('T1')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql
new file mode 100644
index 0000000..4a4565b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Test case Name : open-closed-01.aql
+ * Description : This test is intended to test insertion of additional data into an open type
+ * Expected Result : Success
+ * Date : April 2 2012
+ */
+
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type testType as{
+id : int32,
+name : string
+}
+
+create dataset testds(testType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql
new file mode 100644
index 0000000..524ce33
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : open-closed-01.aql
+ * Description : This test is intended to test insertion of additional data into an open type
+ * Expected Result : Success
+ * Date : April 2 2012
+ */
+
+use dataverse test;
+
+insert into dataset testds({"id": 123, "name": "John Doe", "hobbies": {{ "scuba", "music" }} }
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql
new file mode 100644
index 0000000..e69d32a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case Name : open-closed-01.aql
+ * Description : This test is intended to test insertion of additional data into an open type
+ * Expected Result : Success
+ * Date : April 2 2012
+ */
+
+use dataverse test;
+
+for $l in dataset("testds")
+order by $l.id
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql
new file mode 100644
index 0000000..33ba479
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql
@@ -0,0 +1,28 @@
+/*
+ * Test case name : open-closed-12.aql
+ * Description : Select from dataset two and insert into dataset one, both datasets are of open type.
+ * : In this case, both datasets are of same schema
+ * Success : Yes
+ * Date : 27 March 2012
+ */
+
+drop dataverse testdv2 if exists;
+
+create dataverse testdv2;
+
+use dataverse testdv2;
+
+create type testtype01 as open {
+ id: string,
+ name: string
+}
+
+create type testtype02 as open {
+id : string,
+name : string
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql
new file mode 100644
index 0000000..0361970
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql
@@ -0,0 +1,27 @@
+/*
+ * Test case name : open-closed-12.aql
+ * Description : Select from dataset two and insert into dataset one, both datasets are of open type.
+ * : In this case, both datasets are of same schema
+ * Success : Yes
+ * Date : 27 March 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
+);
+
+insert into dataset testds02 (
+{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
+);
+
+insert into dataset testds02 (
+{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
+);
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql
new file mode 100644
index 0000000..76dd7b0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case name : open-closed-12.aql
+ * Description : Select from dataset two and insert into dataset one, both datasets are of open type.
+ * : In this case, both datasets are of same schema
+ * Success : Yes
+ * Date : 27 March 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds01")
+order by $d.id
+return $d
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql
new file mode 100644
index 0000000..3b1d16b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Testcase name : open-closed-14.aql
+ * Description : insert into target dataset - select * from source dataset
+ * : in this case dataset1 and dataset2 are fo different schema.
+ * Success : This test should succeed.
+ * Date : March 27 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as closed {
+ id: string,
+ name: string?
+}
+
+create type testtype02 as closed {
+ id: string
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql
new file mode 100644
index 0000000..110d965
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql
@@ -0,0 +1,35 @@
+/*
+ * Testcase name : open-closed-14.aql
+ * Description : insert into target dataset - select * from source dataset
+ * : in this case dataset1 and dataset2 are fo different schema.
+ * Success : This test should succeed.
+ * Date : March 27 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds01 (
+{ "id": "001" }
+);
+
+insert into dataset testds01 (
+{ "id": "002", "name": "John Doe" }
+);
+
+insert into dataset testds02 (
+{ "id": "003" }
+);
+
+insert into dataset testds02 (
+{ "id": "004" }
+);
+
+insert into dataset testds02 (
+{ "id": "005" }
+);
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql
new file mode 100644
index 0000000..49a8459
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Testcase name : open-closed-14.aql
+ * Description : insert into target dataset - select * from source dataset
+ * : in this case dataset1 and dataset2 are fo different schema.
+ * Success : This test should succeed.
+ * Date : March 27 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset("testds01")
+order by $d.id
+return $d
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql
new file mode 100644
index 0000000..d7d7cc2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Testcase Name : open-closed-15.aql
+ * Description : Test closed type dataset (with primitives).
+ * : Create Index on int 32 field
+ * : Insert data into primitives and retrieve data.
+ * Success : Yes this test should PASS!
+ * Date : March 30th 2012
+ */
+
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type Schema as closed{
+id_8: int8,
+id_16: int16,
+id_32: int32,
+id_64: int64,
+fp : float,
+name: string,
+dt: date,
+tm: time,
+dt_tm: datetime,
+lat_lon: point
+}
+
+create dataset tdtst(Schema) primary key id_32;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql
new file mode 100644
index 0000000..6a470a1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql
@@ -0,0 +1,29 @@
+/*
+ * Testcase Name : open-closed-15.aql
+ * Description : Test closed type dataset (with primitives).
+ * : Create Index on int 32 field
+ * : Insert data into primitives and retrieve data.
+ * Success : Yes this test should PASS!
+ * Date : March 30th 2012
+ */
+
+use dataverse test;
+
+insert into dataset tdtst(
+let $f1:=time("10:50:56:200+05:00")
+let $f2:=datetime("2011-12-31T14:00:00-10:00")
+let $f3:=point("100.0,200.0")
+return {
+"id_8":100,
+"id_16":1011,
+"id_32":23455,
+"id_64":34567,
+"fp":87.61863f,
+"name":"John",
+"dt":"03-21-1982",
+"tm": $f1,
+"dt_tm": $f2,
+"lat_lon": $f3
+}
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql
new file mode 100644
index 0000000..43cb80a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Testcase Name : open-closed-15.aql
+ * Description : Test closed type dataset (with primitives).
+ * : Create Index on int 32 field
+ * : Insert data into primitives and retrieve data.
+ * Success : Yes this test should PASS!
+ * Date : March 30th 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('tdtst')
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql
new file mode 100644
index 0000000..f77e5e2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql
@@ -0,0 +1,27 @@
+/*
+ * Testcase Name : open-closed-16.aql
+ * Description : Test open type dataset (with primitives).
+ * : Create Index on int 32 field
+ * : Insert data into primitives and retrieve data.
+ * Success : Yes this test should PASS!
+ * Date : March 30th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Schema as open{
+id_8: int8,
+id_16: int16,
+id_32: int32,
+id_64: int64,
+fp : float,
+name: string,
+dt: date,
+tm: time,
+dt_tm: datetime,
+lat_lon: point
+}
+
+create dataset tdtst(Schema) primary key id_32;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql
new file mode 100644
index 0000000..f154dda
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql
@@ -0,0 +1,28 @@
+/*
+ * Testcase Name : open-closed-16.aql
+ * Description : Test open type dataset (with primitives).
+ * : Create Index on int 32 field
+ * : Insert data into primitives and retrieve data.
+ * Success : Yes this test should PASS!
+ * Date : March 30th 2012
+ */
+
+use dataverse test;
+
+insert into dataset tdtst(
+let $f1:=time("10:50:56:200+05:00")
+let $f2:=datetime("2011-12-31T14:00:00-10:00")
+let $f3:=point("100.0,200.0")
+return {
+"id_8":100,
+"id_16":1011,
+"id_32":23455,
+"id_64":34567,
+"fp":87.61863f,
+"name":"John",
+"dt":"03-21-1982",
+"tm": $f1,
+"dt_tm": $f2,
+"lat_lon": $f3
+}
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql
new file mode 100644
index 0000000..a1a841a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Testcase Name : open-closed-16.aql
+ * Description : Test open type dataset (with primitives).
+ * : Create Index on int 32 field
+ * : Insert data into primitives and retrieve data.
+ * Success : Yes this test should PASS!
+ * Date : March 30th 2012
+ */
+use dataverse test;
+
+for $l in dataset('tdtst')
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql
new file mode 100644
index 0000000..12461e9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+ * Testcase Name : open-closed-17.aql
+ * Description : Test open type dataset by inserting additional data along with inserting data for existing fields.
+ * Success : Yes
+ * Date : March 30th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Schema as open{
+id_8: int8,
+id_16: int16,
+id_32: int32,
+id_64: int64,
+fp : float,
+name: string,
+dt: date,
+tm: time,
+dt_tm: datetime,
+lat_lon: point
+}
+
+create dataset tdtst(Schema) primary key id_32;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql
new file mode 100644
index 0000000..2474e62
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql
@@ -0,0 +1,27 @@
+/*
+ * Testcase Name : open-closed-17.aql
+ * Description : Test open type dataset by inserting additional data along with inserting data for existing fields.
+ * Success : Yes
+ * Date : March 30th 2012
+ */
+
+use dataverse test;
+
+insert into dataset tdtst(
+let $f1:=time("10:50:56:200+05:00")
+let $f2:=datetime("2011-12-31T14:00:00-10:00")
+let $f3:=point("100.0,200.0")
+return {
+"id_8":100,
+"id_16":1011,
+"id_32":23455,
+"id_64":34567,
+"fp":87.61863f,
+"name":"John",
+"dt":"03-21-1982",
+"tm": $f1,
+"dt_tm": $f2,
+"lat_lon": $f3,
+"mydata":{{"this is my additional data"}}
+}
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql
new file mode 100644
index 0000000..ee8c2c2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Testcase Name : open-closed-17.aql
+ * Description : Test open type dataset by inserting additional data along with inserting data for existing fields.
+ * Success : Yes
+ * Date : March 30th 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('tdtst')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql
new file mode 100644
index 0000000..de32b75
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql
@@ -0,0 +1,33 @@
+/*
+ * Test case name : open-closed-19.aql
+ * Description : Insert into open type internal dataset by querying another internal dataset
+ * : In this case source dataset has (n+n) fields and the target dataset has only n fields
+ * Success : Yes
+ * Date : 29 April 2012
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as open {
+id:int32
+}
+
+create dataset dtst01(TestType) primary key id;
+
+insert into dtst01({"id":137});
+insert into dtst01({"id":117});
+insert into dtst01({"id":127});
+insert into dtst01({"id":147});
+
+create type Emp as open {
+id:int32,
+name:string,
+age:int8,
+sex:string,
+dob:date
+}
+
+create dataset employee(Emp) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql
new file mode 100644
index 0000000..9627702
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case name : open-closed-19.aql
+ * Description : Insert into open type internal dataset by querying another internal dataset
+ * : In this case source dataset has (n+n) fields and the target dataset has only n fields
+ * Success : Yes
+ * Date : 29 April 2012
+ */
+
+
+use dataverse test;
+
+for $l in dataset('dtst01')
+retunr $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql
new file mode 100644
index 0000000..9627702
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case name : open-closed-19.aql
+ * Description : Insert into open type internal dataset by querying another internal dataset
+ * : In this case source dataset has (n+n) fields and the target dataset has only n fields
+ * Success : Yes
+ * Date : 29 April 2012
+ */
+
+
+use dataverse test;
+
+for $l in dataset('dtst01')
+retunr $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql
new file mode 100644
index 0000000..9a80b41
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Test case name : open-closed-20.aql
+ * Description : Insert into open type internal dataset by querying another internal dataset which is of open type with nullable fields
+ * : In this case source dataset has (n+n) fields and the target dataset has only n fields, but has no intial records in it.
+ * : In this scenario, the source dataset (open) has some optional fields
+ * Success : Yes
+ * Date : May 01 2012
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as open {
+id:int32
+}
+
+create dataset dtst01(TestType) primary key id;
+
+create type Emp as open {
+id:int32,
+name:string,
+age:int8,
+sex:string?,
+dob:date?
+}
+
+create dataset employee(Emp) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql
new file mode 100644
index 0000000..4e96d0b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql
@@ -0,0 +1,24 @@
+/*
+ * Test case name : open-closed-20.aql
+ * Description : Insert into open type internal dataset by querying another internal dataset which is of open type with nullable fields
+ * : In this case source dataset has (n+n) fields and the target dataset has only n fields, but has no intial records in it.
+ * : In this scenario, the source dataset (open) has some optional fields
+ * Success : Yes
+ * Date : May 01 2012
+ */
+
+use dataverse test;
+
+insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
+insert into dataset employee({"id":202,"name":"John Smith","age":30,date("1982-05-23")});
+insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
+insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1960-01-08")});
+insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":date("1975-01-08")});
+insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"dob":date("1969-11-02")});
+insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":date("1976-06-09")});
+insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M"});
+insert into dataset employee({"id":208,"name":"Mike Carey","age":42});
+insert into dataset employee({"id":221,"name":"Mariam","age":40,"sex":"F","dob":date("1970-01-09"),"desgination":{{"dsg":"Department Manager"}}});
+
+insert into dataset dtst01(for $l in dataset('employee') return $l);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql
new file mode 100644
index 0000000..17454d0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case name : open-closed-20.aql
+ * Description : Insert into open type internal dataset by querying another internal dataset which is of open type with nullable fields
+ * : In this case source dataset has (n+n) fields and the target dataset has only n fields, but has no intial records in it.
+ * : In this scenario, the source dataset (open) has some optional fields
+ * Success : Yes
+ * Date : May 01 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('dtst01')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql
new file mode 100644
index 0000000..33cb737
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql
@@ -0,0 +1,27 @@
+/*
+ * Test case name : open-closed-21.aql
+ * Description : Insert into open type internal dataset by querying another open type internal dataset
+ * : In this case source dataset has (n+n) fields and the target dataset has only 1 field, but has no intial records in it.
+ * Success : Yes
+ * Date : 29 April 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as open {
+id:int32
+}
+
+create dataset dtst01(TestType) primary key id;
+
+create type Emp as open {
+id:int32,
+name:string,
+age:int8,
+sex:string,
+dob:date
+}
+
+create dataset employee(Emp) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql
new file mode 100644
index 0000000..7f5abaa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql
@@ -0,0 +1,22 @@
+/*
+ * Test case name : open-closed-21.aql
+ * Description : Insert into open type internal dataset by querying another open type internal dataset
+ * : In this case source dataset has (n+n) fields and the target dataset has only 1 field, but has no intial records in it.
+ * Success : Yes
+ * Date : 29 April 2012
+ */
+
+use dataverse test;
+
+insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
+insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":date("1982-07-12")});
+insert into dataset employee({"id":203,"name":"John Wayne","age":62,"sex":"M","dob":date("1950-01-08")});
+insert into dataset employee({"id":204,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1972-11-12")});
+insert into dataset employee({"id":205,"name":"Raj Singh","age":37,"sex":"M","dob":date("1978-05-06")});
+insert into dataset employee({"id":206,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1965-09-03")});
+insert into dataset employee({"id":227,"name":"Mariam","age":30,"sex":"F","dob":date("1982-11-01")});
+
+insert into dataset employee({"id":228,"name":"Cathy","age":35,"sex":"F","dob":date("1976-06-11"),"desgination":{{"Department Manager"}}});
+
+insert into dataset dtst01(for $l in dataset('employee') return $l);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql
new file mode 100644
index 0000000..5066474
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Test case name : open-closed-21.aql
+ * Description : Insert into open type internal dataset by querying another open type internal dataset
+ * : In this case source dataset has (n+n) fields and the target dataset has only 1 field, but has no intial records in it.
+ * Success : Yes
+ * Date : 29 April 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('dtst01')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql
new file mode 100644
index 0000000..d09ae64
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case name : open-closed-22.aql
+ * Description : Insert into a closed type dataset which has nullable(optional) and non-nullable fields
+ * Success : Yes
+ * Date : 30 April 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Emp as closed {
+id:int32,
+name:string,
+age:int8?,
+dept:string?,
+sex:string,
+dob:date?
+}
+
+create dataset employee(Emp) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql
new file mode 100644
index 0000000..53ddcd28
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql
@@ -0,0 +1,26 @@
+/*
+ * Test case name : open-closed-22.aql
+ * Description : Insert into a closed type dataset which has nullable(optional) and non-nullable fields
+ * Success : Yes
+ * Date : 30 April 2012
+ */
+
+use dataverse test;
+
+//date("YYYY-MM-DD")
+insert into dataset employee({"id":201,"name":"John Doe","age":37,"dept":"HR","sex":"M","dob":date("1975-11-02")});
+
+insert into dataset employee({"id":202,"name":"John Smith","age":30,"dept":"Sales","sex":"M","dob":date("1982-12-12")});
+
+// all optional fields missing
+insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
+
+// missing age field
+insert into dataset employee({"id":203,"name":"Roger Sanders","dept":"Technology","sex":"M","dob":date("1970-03-12")});
+
+// all optional fields missing!
+insert into dataset employee({"id":204,"name":"Raj Singh","sex":"M"});
+
+// missing dept field
+insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1970-12-22")});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql
new file mode 100644
index 0000000..2ff0ea9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case name : open-closed-22.aql
+ * Description : Insert into a closed type dataset which has nullable(optional) and non-nullable fields
+ * Success : Yes
+ * Date : 30 April 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('employee')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql
new file mode 100644
index 0000000..5156204
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Testcase Name : open-closed-24.aql
+ * Description : Test use of additional data(open) field in create type statement
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type testType as open {
+id : int32,
+name : string,
+opt_tag : {{ string }}
+}
+
+create dataset testds(testType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql
new file mode 100644
index 0000000..87f36ff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Testcase Name : open-closed-24.aql
+ * Description : Test use of additional data(open) field in create type statement
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+use dataverse test;
+
+insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql
new file mode 100644
index 0000000..4cb3724
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Testcase Name : open-closed-24.aql
+ * Description : Test use of additional data(open) field in create type statement
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('testds')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql
new file mode 100644
index 0000000..08656e2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Testcase Name : open-closed-25.aql
+ * Description : Test use of additional data(open) optional field in create type statement
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type testType as open {
+id : int32,
+name : string,
+opt_tag : {{ string }}?
+}
+
+create dataset testds(testType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql
new file mode 100644
index 0000000..bed3bde
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Testcase Name : open-closed-25.aql
+ * Description : Test use of additional data(open) optional field in create type statement
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+use dataverse test;
+
+insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql
new file mode 100644
index 0000000..7638f42
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Testcase Name : open-closed-25.aql
+ * Description : Test use of additional data(open) optional field in create type statement
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('testds')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql
new file mode 100644
index 0000000..ecceb56
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Testcase Name : open-closed-26.aql
+ * Description : Test use of additional data(open) optional field in create type statement
+ * : No additional data is inserted (as it is declared as optional) from the insert statement.
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+drop dataverse test if exists;
+
+create dataverse test;
+
+use dataverse test;
+
+create type testType as open {
+id : int32,
+name : string,
+opt_tag : {{ string }}?
+}
+
+create dataset testds(testType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql
new file mode 100644
index 0000000..a5d3435
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql
@@ -0,0 +1,11 @@
+/*
+ * Testcase Name : open-closed-26.aql
+ * Description : Test use of additional data(open) optional field in create type statement
+ * : No additional data is inserted (as it is declared as optional) from the insert statement.
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+use dataverse test;
+
+insert into dataset testds({"id": 32,"name": "UCI"});
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql
new file mode 100644
index 0000000..0a5aa6b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Testcase Name : open-closed-26.aql
+ * Description : Test use of additional data(open) optional field in create type statement
+ * : No additional data is inserted (as it is declared as optional) from the insert statement.
+ * Success : Yes
+ * Date : 29th May 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('testds')
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql
new file mode 100644
index 0000000..041e97e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Testcase Name : open-closed-28.aql
+ * Description : Query for undeclared data from an open type internal dataset
+ * : use the every keyword in the where clause
+ * Status : Yes
+ * Date : 31st May 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as open {
+ id: string,
+ name: string
+}
+
+create type testtype02 as open {
+id : string,
+name : string
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql
new file mode 100644
index 0000000..7e2076e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql
@@ -0,0 +1,27 @@
+/*
+ * Testcase Name : open-closed-28.aql
+ * Description : Query for undeclared data from an open type internal dataset
+ * : use the every keyword in the where clause
+ * Status : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
+);
+
+insert into dataset testds02 (
+{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
+);
+
+
+insert into dataset testds02 (
+{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
+);
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql
new file mode 100644
index 0000000..919b95b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Testcase Name : open-closed-28.aql
+ * Description : Query for undeclared data from an open type internal dataset
+ * : use the every keyword in the where clause
+ * Status : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset('testds01')
+where every $h in $d.hobbies satisfies $h='hiking'
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql
new file mode 100644
index 0000000..a89abd9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Testcase Name : open-closed-29.aql
+ * Description : Query for undeclared data from an open type internal dataset
+ * : use the some keyword in the where clause
+ * Status : Yes
+ * Date : 31st May 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as open {
+ id: string,
+ name: string
+}
+
+create type testtype02 as open {
+id : string,
+name : string
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql
new file mode 100644
index 0000000..6530d19
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql
@@ -0,0 +1,28 @@
+/*
+ * Testcase Name : open-closed-29.aql
+ * Description : Query for undeclared data from an open type internal dataset
+ * : use the some keyword in the where clause
+ * Status : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
+);
+
+insert into dataset testds02 (
+{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
+);
+
+
+insert into dataset testds02 (
+{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
+);
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql
new file mode 100644
index 0000000..ba214a4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Testcase Name : open-closed-29.aql
+ * Description : Query for undeclared data from an open type internal dataset
+ * : use the some keyword in the where clause
+ * Status : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+// select all hobbies where hiking is one of the hobbies
+for $d in dataset('testds01')
+where some $h in $d.hobbies satisfies $h='hiking'
+order by $d.id
+return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql
new file mode 100644
index 0000000..c7b7c4f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Test case Name : open-closed-30.aql
+ * Description : Query undeclared data using every in the WHERE clause
+ * : where every $h in $d.hobbies satisfies $h='hiking'
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as open {
+ id: string
+}
+
+create type testtype02 as open {
+id : string,
+name : string
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql
new file mode 100644
index 0000000..c83f467
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql
@@ -0,0 +1,28 @@
+/*
+ * Test case Name : open-closed-30.aql
+ * Description : Query undeclared data using every in the WHERE clause
+ * : where every $h in $d.hobbies satisfies $h='hiking'
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
+);
+
+insert into dataset testds02 (
+{ "id": "102", "name": "Roger Sanders", "hobbies": {{"fishing", "dance"}}}
+);
+
+
+insert into dataset testds02 (
+{ "id": "203", "name": "Phil Smith", "hobbies": {{"hiking", "surfing"}}}
+);
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql
new file mode 100644
index 0000000..644d1d8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Test case Name : open-closed-30.aql
+ * Description : Query undeclared data using every in the WHERE clause
+ * : where every $h in $d.hobbies satisfies $h='hiking'
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset('testds01')
+where every $h in $d.hobbies satisfies $h='hiking'
+order by $d.id
+return $d.hobbies
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql
new file mode 100644
index 0000000..c787988
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql
@@ -0,0 +1,23 @@
+/*
+ * Test case Name : open-closed-31.aql
+ * Description :
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as open {
+ id: string
+}
+
+create type testtype02 as open {
+id : string,
+name : string
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql
new file mode 100644
index 0000000..ee54e2e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql
@@ -0,0 +1,27 @@
+/*
+ * Test case Name : open-closed-31.aql
+ * Description :
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
+);
+
+insert into dataset testds02 (
+{ "id": "102", "name": "Roger Sanders", "hobbies": {{"fishing", "dance"}}}
+);
+
+
+insert into dataset testds02 (
+{ "id": "203", "name": "Phil Smith", "hobbies": {{"hiking", "surfing"}}}
+);
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql
new file mode 100644
index 0000000..e1412a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : open-closed-31.aql
+ * Description :
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset('testds01')
+where some $h in $d.hobbies satisfies $h='hiking'
+order by $d.id
+return $d.hobbies
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql
new file mode 100644
index 0000000..a5d88df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql
@@ -0,0 +1,29 @@
+/*
+ * Test case Name : open-closed-32.aql
+ * Description : INSERT into target (closed type) internal dataset by doing SELECT on (closed type) source internal dataset
+ * : then query the target internal dataset for data enclosed within {{ }} braces, in this case interests field.
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as open {
+id: string
+}
+
+create type testtype02 as closed {
+id : string,
+name : string,
+sex : string,
+dept : string,
+salary : int32,
+interests : {{string}}
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql
new file mode 100644
index 0000000..4c40301
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql
@@ -0,0 +1,29 @@
+/*
+ * Test case Name : open-closed-32.aql
+ * Description : INSERT into target (closed type) internal dataset by doing SELECT on (closed type) source internal dataset
+ * : then query the target internal dataset for data enclosed within {{ }} braces, in this case interests field.
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
+
+insert into dataset testds02 (
+{ "id": "921", "name": "John Smith", "sex":"Male", "dept":"Sales", "salary":65000,"interests":{{"gardening","biking","reading","hiking","fishing"}}});
+
+insert into dataset testds02 (
+{ "id": "959", "name": "Susan Malaika", "sex":"Female", "dept":"XML Dev", "salary":200000,"interests":{{"XML","Web Services","Cloud","X-Forms","art","travelling"}}});
+
+insert into dataset testds02 (
+{ "id": "371", "name": "Tom Sawyer", "sex":"Male", "dept":"Well Being", "salary":90000,"interests":{{"tennis","scuba","running","biking"}}});
+
+// insert into open type target dataset by doing a select on the closed type (source) internal dataset
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql
new file mode 100644
index 0000000..dbf2729
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Test case Name : open-closed-32.aql
+ * Description : INSERT into target (closed type) internal dataset by doing SELECT on (closed type) source internal dataset
+ * : then query the target internal dataset for data enclosed within {{ }} braces, in this case interests field.
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset('testds01')
+where some $h in $d.interests satisfies $h='biking'
+order by $d.id
+return $d.interests
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql
new file mode 100644
index 0000000..8de22c0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Test case Name : open-closed-33.aql
+ * Description : INSERT into target (closed type) internal dataset by doing SELECT on (closed type) source internal dataset
+ * : then query the target internal dataset for data enclosed within {{ }} braces, in this case interests field.
+ * : Here the interests field is optional.
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+drop dataverse testdv2 if exists;
+create dataverse testdv2;
+use dataverse testdv2;
+
+create type testtype01 as open {
+id: string
+}
+
+create type testtype02 as closed {
+id : string,
+name : string,
+sex : string,
+dept : string,
+salary : int32,
+interests : {{string}}?
+}
+
+create dataset testds01(testtype01) primary key id;
+
+create dataset testds02(testtype02) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql
new file mode 100644
index 0000000..ef41d1d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql
@@ -0,0 +1,30 @@
+/*
+ * Test case Name : open-closed-33.aql
+ * Description : INSERT into target (closed type) internal dataset by doing SELECT on (closed type) source internal dataset
+ * : then query the target internal dataset for data enclosed within {{ }} braces, in this case interests field.
+ * : Here the interests field is optional.
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+insert into dataset testds02 (
+{ "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
+
+insert into dataset testds02 (
+{ "id": "921", "name": "John Smith", "sex":"Male", "dept":"Sales", "salary":65000,"interests":{{"gardening","biking","reading","hiking","fishing"}}});
+
+insert into dataset testds02 (
+{ "id": "959", "name": "Susan Malaika", "sex":"Female", "dept":"XML Dev", "salary":200000,"interests":{{"XML","Web Services","Cloud","X-Forms","art","travelling"}}});
+
+insert into dataset testds02 (
+{ "id": "371", "name": "Tom Sawyer", "sex":"Male", "dept":"Well Being", "salary":90000,"interests":{{"tennis","scuba","running","biking"}}});
+
+// insert into open type target dataset by doing a select on the closed type (source) internal dataset
+
+insert into dataset testds01(
+for $d in dataset("testds02")
+return $d
+);
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql
new file mode 100644
index 0000000..93c39d4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Test case Name : open-closed-33.aql
+ * Description : INSERT into target (closed type) internal dataset by doing SELECT on (closed type) source internal dataset
+ * : then query the target internal dataset for data enclosed within {{ }} braces, in this case interests field.
+ * : Here the interests field is optional.
+ * Success : Yes
+ * Date : 31st May 2012
+ */
+
+use dataverse testdv2;
+
+for $d in dataset('testds01')
+where some $h in $d.interests satisfies $h='biking'
+order by $d.id
+return $d.interests
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.1.ddl.aql
new file mode 100644
index 0000000..53dc601
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : This test case is to verify the fix for issue134
+ : https://code.google.com/p/asterixdb/issues/detail?id=134
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.2.update.aql
new file mode 100644
index 0000000..53dc601
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : This test case is to verify the fix for issue134
+ : https://code.google.com/p/asterixdb/issues/detail?id=134
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.3.query.aql
new file mode 100644
index 0000000..59c94b6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue134/query-issue134.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : This test case is to verify the fix for issue134
+ : https://code.google.com/p/asterixdb/issues/detail?id=134
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+let $a:=true
+return {{[1,2,3,4,5],[6,5,3,8,9],[44,22,66,-1,0,99.9]}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.1.ddl.aql
new file mode 100644
index 0000000..a17a20d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue166
+ : https://code.google.com/p/asterixdb/issues/detail?id=166
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.2.update.aql
new file mode 100644
index 0000000..a17a20d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue166
+ : https://code.google.com/p/asterixdb/issues/detail?id=166
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.3.query.aql
new file mode 100644
index 0000000..b907bb2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue166/query-issue166.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : This test case is to verify the fix for issue166
+ : https://code.google.com/p/asterixdb/issues/detail?id=166
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+let $a := [[1,2,3],[4,5,6,7]]
+return $a[1]
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.1.ddl.aql
new file mode 100644
index 0000000..8e33f17
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : This test case is to verify the fix for issue208
+ : https://code.google.com/p/asterixdb/issues/detail?id=208
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+drop dataverse OpenSocialNetworkData if exists;
+create dataverse OpenSocialNetworkData;
+
+use dataverse OpenSocialNetworkData;
+
+create type TwitterUserType as open {
+screen-name: string,
+lang: string,
+friends_count: int32,
+statuses_count: int32,
+name: string,
+followers_count: int32
+}
+
+create type TweetMessageType as open {
+tweetid: string,
+tweetid-copy: string,
+send-time-copy: datetime
+}
+
+create dataset TweetMessages(TweetMessageType)
+primary key tweetid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.2.update.aql
new file mode 100644
index 0000000..404fb35
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.2.update.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : This test case is to verify the fix for issue208
+ : https://code.google.com/p/asterixdb/issues/detail?id=208
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+use dataverse OpenSocialNetworkData;
+
+load dataset TweetMessages
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/tw_messages.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.3.query.aql
new file mode 100644
index 0000000..e0a0d2b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue208/query-issue208.3.query.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : This test case is to verify the fix for issue208
+ : https://code.google.com/p/asterixdb/issues/detail?id=208
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+use dataverse OpenSocialNetworkData;
+
+for $t in dataset('TweetMessages')
+where $t.send-time >= datetime('2005-04-13T17:17:22') and
+$t.send-time <= datetime('2011-04-13T17:18:22')
+group by $uid := $t.user.screen-name with $t
+order by $uid
+return {
+ "user": $uid,
+ "count": count($t)
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.1.ddl.aql
new file mode 100644
index 0000000..39a1510
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.1.ddl.aql
@@ -0,0 +1,35 @@
+/*
+ * Description : This test case is to verify the fix for issue236
+ : https://code.google.com/p/asterixdb/issues/detail?id=236
+ * Expected Res : Success
+ * Date : 20 Dec. 2012
+ */
+
+drop dataverse SocialNetworkData if exists;
+
+create dataverse SocialNetworkData;
+use dataverse SocialNetworkData;
+
+create type TwitterUserType as open {
+screen-name: string,
+lang: string,
+friends_count: int32,
+statuses_count: int32,
+name: string,
+followers_count: int32
+}
+
+create type TweetMessageType as closed {
+tweetid: string,
+tweetid-copy: string,
+user: TwitterUserType,
+sender-location: point?,
+send-time: datetime,
+send-time-copy: datetime,
+referred-topics: {{ string }},
+message-text: string
+}
+
+create dataset TweetMessages(TweetMessageType)
+primary key tweetid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.2.update.aql
new file mode 100644
index 0000000..fcb04b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.2.update.aql
@@ -0,0 +1,23 @@
+/*
+ * Description : This test case is to verify the fix for issue236
+ : https://code.google.com/p/asterixdb/issues/detail?id=236
+ * Expected Res : Success
+ * Date : 20 Dec. 2012
+ */
+
+
+use dataverse SocialNetworkData;
+
+insert into dataset TweetMessages(
+{
+"tweetid": "1111387810",
+"tweetid-copy": "1111387810",
+"user": { "screen-name": "TonyNapier#786", "lang": "en", "friends_count": 4241366,
+"statuses_count": 97, "name": "Tony Napier", "followers_count": 5984113 },
+"sender-location": point("29.24,78.35"),
+"send-time": datetime("2011-11-24T14:24:51.000Z"),
+"send-time-copy": datetime("2011-11-24T14:24:51.000Z"),
+"referred-topics": {{ "sprint", "wireless" }},
+"message-text": " love sprint its wireless is mind-blowing:)"
+});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.3.query.aql
new file mode 100644
index 0000000..ffa269b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue236/query-issue236.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : This test case is to verify the fix for issue236
+ : https://code.google.com/p/asterixdb/issues/detail?id=236
+ * Expected Res : Success
+ * Date : 20 Dec. 2012
+ */
+
+use dataverse SocialNetworkData;
+
+for $r in dataset('TweetMessages')
+return $r
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.1.ddl.aql
new file mode 100644
index 0000000..4f27231
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue29
+ : https://code.google.com/p/asterixdb/issues/detail?id=29
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.2.update.aql
new file mode 100644
index 0000000..4f27231
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue29
+ : https://code.google.com/p/asterixdb/issues/detail?id=29
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.3.query.aql
new file mode 100644
index 0000000..5951a74
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue29/query-issue29.3.query.aql
@@ -0,0 +1,68 @@
+/*
+ * Description : This test case is to verify the fix for issue29
+ : https://code.google.com/p/asterixdb/issues/detail?id=29
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+let $tweets :=
+{{
+ {
+ "tweetid": "1023",
+ "user": {
+ "screen-name": "dflynn24",
+ "lang": "en",
+ "friends_count": 46,
+ "statuses_count": 987,
+ "name": "danielle flynn",
+ "followers_count": 47
+ },
+ "sender-location": "40.904177,-72.958996",
+ "send-time": "2010-02-21T11:56:02-05:00",
+ "referred-topics": {{ "verizon" }},
+ "message-text": "i need a #verizon phone like nowwwww! :("
+ },
+ {
+ "tweetid": "1024",
+ "user": {
+ "screen-name": "miriamorous",
+ "lang": "en",
+ "friends_count": 69,
+ "statuses_count": 1068,
+ "name": "Miriam Songco",
+ "followers_count": 78
+ },
+ "send-time": "2010-02-21T11:11:43-08:00",
+ "referred-topics": {{ "commercials", "verizon", "att" }},
+ "message-text": "#verizon & #att #commercials, so competitive"
+ },
+ {
+ "tweetid": "1025",
+ "user": {
+ "screen-name": "dj33",
+ "lang": "en",
+ "friends_count": 96,
+ "statuses_count": 1696,
+ "name": "Don Jango",
+ "followers_count": 22
+ },
+ "send-time": "2010-02-21T12:38:44-05:00",
+ "referred-topics": {{ "charlotte" }},
+ "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
+ },
+ {
+ "tweetid": "1026",
+ "user": {
+ "screen-name": "reallyleila",
+ "lang": "en",
+ "friends_count": 106,
+ "statuses_count": 107,
+ "name": "Leila Samii",
+ "followers_count": 52
+ },
+ "send-time": "2010-02-21T21:31:57-06:00",
+ "referred-topics": {{ "verizon", "at&t", "iphone" }},
+ "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
+ }
+}}
+return $tweets
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.1.ddl.aql
new file mode 100644
index 0000000..22f04ff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue55 query 1
+ : https://code.google.com/p/asterixdb/issues/detail?id=55
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.2.update.aql
new file mode 100644
index 0000000..22f04ff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue55 query 1
+ : https://code.google.com/p/asterixdb/issues/detail?id=55
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.3.query.aql
new file mode 100644
index 0000000..6053fff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55-1/query-issue55-1.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : This test case is to verify the fix for issue55 query 1
+ : https://code.google.com/p/asterixdb/issues/detail?id=55
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+let $l := [1.1f, 1.0f, 1.2f, 0.9, 1.3, 1, 2]
+for $i in $l
+for $j in $l
+return [$i, $j, "=", $i = $j, "<", $i < $j, "<=", $i <= $j, ">", $i > $j, ">=", $i >= $j]
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.1.ddl.aql
new file mode 100644
index 0000000..489f515
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : This test case is to verify the fix for issue55 query 2
+ : https://code.google.com/p/asterixdb/issues/detail?id=55
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.2.update.aql
new file mode 100644
index 0000000..489f515
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : This test case is to verify the fix for issue55 query 2
+ : https://code.google.com/p/asterixdb/issues/detail?id=55
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.3.query.aql
new file mode 100644
index 0000000..174d71c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-issue55/query-issue55.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : This test case is to verify the fix for issue55 query 2
+ : https://code.google.com/p/asterixdb/issues/detail?id=55
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+for $x in [[1,3],[4,5,2],[-1,-3,0],["a"]]
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.1.ddl.aql
new file mode 100644
index 0000000..81160d1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Insert open data into internal dataset and query the open data
+ * Expected Result : Success
+ * Date : 23rd October 2012
+ * Notes : This test was written to cover the scenario which is used in the proposal.
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TweetMessageType as open {
+tweetid : string,
+user : {
+ screen-name: string,
+ lang: string,
+ friends_count: int32,
+ statuses_count: int32,
+ name: string,
+ followers_count: int32
+}, sender-location: point?,
+ send-time: datetime,
+ referred-topics: {{ string }},
+ message-text: string
+};
+
+create dataset TweetMessages(TweetMessageType)
+primary key tweetid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.2.update.aql
new file mode 100644
index 0000000..fc08626
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.2.update.aql
@@ -0,0 +1,75 @@
+/*
+ * Description : Insert open data into internal dataset and query the open data
+ * Expected Result : Success
+ * Date : 23rd October 2012
+ * Notes : This test was written to cover the scenario which is used in the proposal.
+ */
+
+
+use dataverse test;
+
+insert into dataset TweetMessages(
+ {
+ "tweetid": "1023",
+ "user": {
+ "screen-name": "dflynn24",
+ "lang": "en",
+ "friends_count": 46,
+ "statuses_count": 987,
+ "name": "danielle flynn",
+ "followers_count": 47
+ },
+ "sender-location": create-point(40.904177,-72.958996),
+ "send-time": datetime("2010-02-21T11:56:02-05:00"),
+ "referred-topics": {{ "verizon" }},
+ "message-text": "i need a #verizon phone like nowwwww! : ("
+ });
+
+insert into dataset TweetMessages(
+ {
+ "tweetid": "1024",
+ "user": {
+ "screen-name": "miriamorous",
+ "lang": "en",
+ "friends_count": 69,
+ "statuses_count": 1068,
+ "name": "Miriam Songco",
+ "followers_count": 78
+ },
+ "send-time": datetime("2010-02-21T11:11:43-08:00"),
+ "referred-topics": {{ "commercials", "verizon", "att" }},
+ "message-text": "#verizon & #att #commercials, so competitive"
+ });
+
+insert into dataset TweetMessages(
+ {
+ "tweetid": "1025",
+ "user": {
+ "screen-name": "dj33",
+ "lang": "en",
+ "friends_count": 96,
+ "send-time": "2010-02-21T11:56:02-05:00",
+ "statuses_count": 1696,
+ "name": "Don Jango",
+ "followers_count": 22
+ },
+ "send-time": datetime("2010-02-21T12:38:44-05:00"),
+ "referred-topics": {{ "charlotte" }},
+ "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
+ });
+
+insert into dataset TweetMessages(
+ { "tweetid": "1026",
+ "user": {
+ "screen-name": "reallyleila",
+ "lang": "en",
+ "friends_count": 106,
+ "statuses_count": 107,
+ "name": "Leila Samii",
+ "followers_count": 52
+ },
+ "send-time": datetime("2010-02-21T21:31:57-06:00"),
+ "referred-topics": {{ "verizon", "at&t", "iphone" }},
+ "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
+});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.3.query.aql
new file mode 100644
index 0000000..f91bb83
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal/query-proposal.3.query.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Insert open data into internal dataset and query the open data
+ * Expected Result : Success
+ * Date : 23rd October 2012
+ * Notes : This test was written to cover the scenario which is used in the proposal.
+ */
+
+use dataverse test;
+
+for $tp1 in (
+ for $tweet in dataset('TweetMessages')
+ where some $topic in $tweet.referred-topics satisfies contains($topic, 'verizon')
+ for $tp in $tweet.referred-topics
+ return
+ { "topic": $tp }
+)
+group by $tp2 := $tp1.topic with $tp1
+order by $tp2
+return { "topic": $tp2, "count": count($tp1) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.1.ddl.aql
new file mode 100644
index 0000000..1dcceb8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.1.ddl.aql
@@ -0,0 +1,30 @@
+/*
+ * Description : Insert open data into internal dataset and query the open data
+ * Expected Result : Success
+ * Date : 23rd October 2012
+ * Notes : This test was written to cover the scenario which is used in the proposal.
+ * : this is another variant of the test in query-proposal.aql
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TweetMessageType as open {
+tweetid : string,
+user : {
+ screen-name: string,
+ lang: string,
+ friends_count: int32,
+ statuses_count: int32,
+ name: string,
+ followers_count: int32
+}, sender-location: point?,
+ send-time: datetime,
+ referred-topics: {{ string }},
+ message-text: string
+};
+
+create dataset TweetMessages(TweetMessageType)
+primary key tweetid;
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.2.update.aql
new file mode 100644
index 0000000..47c40d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.2.update.aql
@@ -0,0 +1,75 @@
+/*
+ * Description : Insert open data into internal dataset and query the open data
+ * Expected Result : Success
+ * Date : 23rd October 2012
+ * Notes : This test was written to cover the scenario which is used in the proposal.
+ * : this is another variant of the test in query-proposal.aql
+ */
+
+use dataverse test;
+
+insert into dataset TweetMessages(
+ {
+ "tweetid": "1023",
+ "user": {
+ "screen-name": "dflynn24",
+ "lang": "en",
+ "friends_count": 46,
+ "statuses_count": 987,
+ "name": "danielle flynn",
+ "followers_count": 47
+ },
+ "sender-location": create-point(40.904177,-72.958996),
+ "send-time": datetime("2010-02-21T11:56:02-05:00"),
+ "referred-topics": {{ "verizon" }},
+ "message-text": "i need a #verizon phone like nowwwww! : ("
+ });
+
+insert into dataset TweetMessages(
+ {
+ "tweetid": "1024",
+ "user": {
+ "screen-name": "miriamorous",
+ "lang": "en",
+ "friends_count": 69,
+ "statuses_count": 1068,
+ "name": "Miriam Songco",
+ "followers_count": 78
+ },
+ "send-time": datetime("2010-02-21T11:11:43-08:00"),
+ "referred-topics": {{ "commercials", "verizon", "att" }},
+ "message-text": "#verizon & #att #commercials, so competitive"
+ });
+
+insert into dataset TweetMessages(
+ {
+ "tweetid": "1025",
+ "user": {
+ "screen-name": "dj33",
+ "lang": "en",
+ "friends_count": 96,
+ "send-time": "2010-02-21T11:56:02-05:00",
+ "statuses_count": 1696,
+ "name": "Don Jango",
+ "followers_count": 22
+ },
+ "send-time": datetime("2010-02-21T12:38:44-05:00"),
+ "referred-topics": {{ "charlotte" }},
+ "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
+ });
+
+insert into dataset TweetMessages(
+ { "tweetid": "1026",
+ "user": {
+ "screen-name": "reallyleila",
+ "lang": "en",
+ "friends_count": 106,
+ "statuses_count": 107,
+ "name": "Leila Samii",
+ "followers_count": 52
+ },
+ "send-time": datetime("2010-02-21T21:31:57-06:00"),
+ "referred-topics": {{ "verizon", "at&t", "iphone" }},
+ "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
+});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.3.query.aql
new file mode 100644
index 0000000..bb32102
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/query-proposal02/query-proposal02.3.query.aql
@@ -0,0 +1,22 @@
+/*
+ * Description : Insert open data into internal dataset and query the open data
+ * Expected Result : Success
+ * Date : 23rd October 2012
+ * Notes : This test was written to cover the scenario which is used in the proposal.
+ * : this is another variant of the test in query-proposal.aql
+ */
+
+use dataverse test;
+
+for $tweet in dataset('TweetMessages')
+ where some $reftopic in $tweet.referred-topics
+ satisfies contains($reftopic, 'verizon')
+ for $reftopic in $tweet.referred-topics
+ group by $topic := $reftopic with $tweet
+ order by $topic
+ return
+ {
+ "topic": $topic,
+ "count": count($tweet)
+ }
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01.aql
deleted file mode 100644
index 05973fa..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/quantifiers_everysat_01.adm";
-
-for $x in [10, -30]
-where every $y in [-20, -10]
- satisfies $y > $x
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_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/quantifiers/everysat_01/everysat_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.3.query.aql
new file mode 100644
index 0000000..1c6d301
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_01/everysat_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $x in [10, -30]
+where every $y in [-20, -10]
+ satisfies $y > $x
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.1.ddl.aql
new file mode 100644
index 0000000..feac764
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test Quantified Expressions
+ * : every <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.2.update.aql
new file mode 100644
index 0000000..feac764
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test Quantified Expressions
+ * : every <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.3.query.aql
new file mode 100644
index 0000000..62829aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_02/everysat_02.3.query.aql
@@ -0,0 +1,23 @@
+/*
+ * Description : Test Quantified Expressions
+ * : every <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
+let $a := [
+every $x in [1, 2] satisfies $x + $x = 3,
+every $x in [1, 1] satisfies $x + $x = 2,
+every $x in [1, 2] satisfies $x - 2 = 2,
+every $x in [2, 2] satisfies $x - 2 = 0,
+every $x in [1, 2] satisfies $x * 2 = 4,
+every $x in [1, 2] satisfies $x / 2 = 1,
+every $x in [1, 2] satisfies $x = 1 or $x = 2,
+every $x in [1, 2] satisfies $x = 1 and ($x +1) = 2,
+every $x in ["A","B","C"] satisfies $x = "A",
+every $x in [1,2,3], $y in [4,5,6] satisfies $x + $y = 5,
+every $x in [1,2,3], $y in [4,5,6] satisfies $x - $y = 5,
+every $x in [1,2,3], $y in [4,5,6] satisfies $x * $y = 10
+]
+for $i in $a
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.1.ddl.aql
new file mode 100644
index 0000000..feac764
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test Quantified Expressions
+ * : every <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.2.update.aql
new file mode 100644
index 0000000..feac764
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test Quantified Expressions
+ * : every <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.3.query.aql
new file mode 100644
index 0000000..0c3c390
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_03/everysat_03.3.query.aql
@@ -0,0 +1,27 @@
+/*
+ * Description : Test Quantified Expressions
+ * : every <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
+let $a := [
+every $x in [1, 2] satisfies avg([$x, 1]) = 1,
+every $x in ["1", "2"] satisfies string($x) = "1",
+every $x in ["1", "2"] satisfies string-length($x) = 1,
+every $x in [[1, 2],[10],[1,5,7,8]] satisfies count($x) = 1,
+every $x in [[2],[10],[8]] satisfies count($x) = 1,
+every $x in [true, false] satisfies boolean("true"),
+every $x in [true,true] satisfies not($x),
+every $x in [1,2,3], $y in [4,5,6] satisfies $x + $y = 5,
+every $x in [1,2,3], $y in [4,5,6] satisfies $x - $y = 5,
+every $x in [1,2,3], $y in [4,5,6] satisfies $x * $y = 10,
+every $x in ["ab","cd"], $y in ["ab","de"] satisfies string($x) = string($y),
+every $x in [1,2,3], $y in [4,5,6] satisfies int32($x) = int32($y),
+every $x in [1,2,3], $y in [4,5,6] satisfies float($x) = float($y),
+every $x in [1,2,3], $y in [4,5,6] satisfies double($x) = double($y),
+every $x in ["true", "false"], $y in ["false","true"] satisfies boolean($x) = boolean($y),
+every $x in ["1980-05-05T13:13:13Z", "1980-05-05T13:13:13Z"], $y in ["1980-05-05T13:13:13Z","1980-05-05T13:13:13Z"] satisfies datetime($x) = datetime($y)
+]
+for $i in $a
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.1.ddl.aql
new file mode 100644
index 0000000..3d7587b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests that universal quantification returns true/false correctly.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.2.update.aql
new file mode 100644
index 0000000..1469fb3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Tests that universal quantification returns true/false correctly.
+ * Success : Yes
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.3.query.aql
new file mode 100644
index 0000000..7742254
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/everysat_04/everysat_04.3.query.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Tests that universal quantification returns true/false correctly.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $x := [
+every $x in [false,false] satisfies $x,
+every $x in [true,false] satisfies $x,
+every $x in [false,true] satisfies $x,
+every $x in [true,true] satisfies $x,
+every $x in [false,false] satisfies not($x),
+every $x in [true,false] satisfies not($x),
+every $x in [false,true] satisfies not($x),
+every $x in [true,true] satisfies not($x)
+]
+for $i in $x
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01.aql
deleted file mode 100644
index 9837981..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/quantifiers_somesat_01.adm";
-
-for $x in [10, -30, -21, 50]
-where some $y in [-20, -40]
- satisfies $y > $x
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_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/quantifiers/somesat_01/somesat_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.3.query.aql
new file mode 100644
index 0000000..5ddac59
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_01/somesat_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $x in [10, -30, -21, 50]
+where some $y in [-20, -40]
+ satisfies $y > $x
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql
deleted file mode 100644
index 9ac6f95..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql
+++ /dev/null
@@ -1,53 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- lastorder: {
- oid: int32,
- total: float
- }
-}
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset CustomerSomeSat02(CustomerType)
- partitioned by key cid on group1;
-create dataset OrdersSomeSat02(OrderType)
- partitioned by key oid on group1;
-
-load dataset CustomerSomeSat02
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm"));
-
-load dataset OrdersSomeSat02
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm"));
-
-write output to nc1:"rttest/quantifiers_somesat_02.adm";
-
-for $x in dataset('CustomerSomeSat02')
-where some $y in dataset('OrdersSomeSat02')
- satisfies $y.cid = $x.cid
-order by $x.cid
-return $x.cid
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.1.ddl.aql
new file mode 100644
index 0000000..1b75b6c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.1.ddl.aql
@@ -0,0 +1,36 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ lastorder: {
+ oid: int32,
+ total: float
+ }
+}
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create dataset CustomerSomeSat02(CustomerType)
+ primary key cid;
+create dataset OrdersSomeSat02(OrderType)
+ primary key oid;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.2.update.aql
new file mode 100644
index 0000000..6728649
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.2.update.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+load dataset CustomerSomeSat02
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm"));
+
+load dataset OrdersSomeSat02
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.3.query.aql
new file mode 100644
index 0000000..a1bd425
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02/somesat_02.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $x in dataset('CustomerSomeSat02')
+where some $y in dataset('OrdersSomeSat02')
+ satisfies $y.cid = $x.cid
+order by $x.cid
+return $x.cid
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.1.ddl.aql
new file mode 100644
index 0000000..e6bb380
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test quantified expressions; some variable in [ordered list] satisfies expression.
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.2.update.aql
new file mode 100644
index 0000000..e6bb380
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test quantified expressions; some variable in [ordered list] satisfies expression.
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.3.query.aql
new file mode 100644
index 0000000..7a1bcb8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_03/somesat_03.3.query.aql
@@ -0,0 +1,24 @@
+/*
+ * Description : Test quantified expressions; some variable in [ordered list] satisfies expression.
+ * Expected Result : Success
+ * Date : 6th July 2012
+ */
+
+let $a := [
+some $x in [1, 2] satisfies $x + $x = 3,
+some $x in [1, 2] satisfies $x + $x = 2,
+some $x in [1, 2] satisfies $x - 2 = 2,
+some $x in [1, 2] satisfies $x - 2 = 0,
+some $x in [1, 2] satisfies $x * 2 = 4,
+some $x in [1, 2] satisfies $x / 2 = 1,
+some $x in [1, 2] satisfies avg([$x,1]) = 1,
+some $x in [1, 2] satisfies boolean("true"),
+some $x in [1, 2] satisfies boolean("false"),
+some $x in [true,false] satisfies not($x),
+some $x in [1, 2] satisfies $x = 1 or $x = 2,
+some $x in [1, 2] satisfies $x = 1 and ($x +1) = 2
+]
+for $i in $a
+return $i
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.1.ddl.aql
new file mode 100644
index 0000000..c11137a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test Quantified Expressions
+ * : some <variable-name> in [ordered-list] satisfies function expression
+ * : some <variable-name> in [ordered-list],<variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.2.update.aql
new file mode 100644
index 0000000..c11137a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test Quantified Expressions
+ * : some <variable-name> in [ordered-list] satisfies function expression
+ * : some <variable-name> in [ordered-list],<variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.3.query.aql
new file mode 100644
index 0000000..269cc31
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_04/somesat_04.3.query.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Test Quantified Expressions
+ * : some <variable-name> in [ordered-list] satisfies function expression
+ * : some <variable-name> in [ordered-list],<variable-name> in [ordered-list] satisfies expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
+let $a := [
+some $x in ["foo","foobar","foot","fox"] satisfies string-length($x) = 3,
+some $x in [[5,4,3,2],[1,2,3,4,5,6,7,8],[4,2,3,4]] satisfies count($x) = 8,
+some $x in [1, 2] satisfies $x = 1 or $x = 2,
+some $x in [1, 2] satisfies $x = 1 and ($x +1) = 2,
+some $x in ["A","B","C"] satisfies $x = "A",
+some $x in [1,2,3], $y in [4,5,6] satisfies $x + $y = 5,
+some $x in [1,2,3], $y in [4,5,6] satisfies $x - $y = 5,
+some $x in [1,2,3], $y in [4,5,6] satisfies $x * $y = 10,
+some $x in [1,2,3], $y in [4,5,6] satisfies $x / $y = 2
+]
+for $i in $a
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.1.ddl.aql
new file mode 100644
index 0000000..ad0cf1f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test Quantified Expressions
+ * : some <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies function expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.2.update.aql
new file mode 100644
index 0000000..ad0cf1f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test Quantified Expressions
+ * : some <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies function expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.3.query.aql
new file mode 100644
index 0000000..1ed4593
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_05/somesat_05.3.query.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Test Quantified Expressions
+ * : some <variable-name> in [ordered-list], <variable-name> in [ordered-list] satisfies function expression
+ * Expected Result : Success
+ * Date : 5th July 2012
+ */
+
+let $a := [
+some $x in ["foo","foobar","footnote"], $y in ["foofoo","fool","foolish","foot","foo"] satisfies string($x) = string($y),
+some $x in ["1","2","3"], $y in ["4","5","6"] satisfies int32($x) = int32($y),
+some $x in ["1.1","2.2","3.3"], $y in ["4.4","5.5","6.6"] satisfies float($x) = float($y),
+some $x in ["1.1d","2.2d","3.3d"], $y in ["4.4d","5.5d","6.6d"] satisfies double($x) = double($y),
+some $x in ["true", "false"], $y in ["false","true"] satisfies boolean($x) = boolean($y),
+some $x in ["1980-05-05T13:13:13Z", "1980-05-05T13:13:13Z"], $y in ["1980-05-05T13:13:13Z","1980-05-05T13:13:13Z"] satisfies datetime($x) = datetime($y),
+some $x in ["1985-07-05Z", "1985-07-05Z"], $y in ["1985-07-05Z","1985-07-05Z"] satisfies date($x) = date($y)
+]
+for $i in $a
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.1.ddl.aql
new file mode 100644
index 0000000..11ef023
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Tests that existential quantification returns true/false correctly.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.2.update.aql
new file mode 100644
index 0000000..6a8a5fc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.2.update.aql
@@ -0,0 +1,5 @@
+/*
+ * Description : Tests that existential quantification returns true/false correctly.
+ * Success : Yes
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.3.query.aql
new file mode 100644
index 0000000..e406cda
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_06/somesat_06.3.query.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Tests that existential quantification returns true/false correctly.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $x := [
+some $x in [false,false] satisfies $x,
+some $x in [true,false] satisfies $x,
+some $x in [false,true] satisfies $x,
+some $x in [true,true] satisfies $x,
+some $x in [false,false] satisfies not($x),
+some $x in [true,false] satisfies not($x),
+some $x in [false,true] satisfies not($x),
+some $x in [true,true] satisfies not($x)
+]
+for $i in $x
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/range_01.aql b/asterix-app/src/test/resources/runtimets/queries/range_01.aql
deleted file mode 100644
index 0f38113..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/range_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-
-write output to nc1:"rttest/range_01.adm";
-
-for $x in range(20,30)
-return $x
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql
new file mode 100644
index 0000000..b70e975
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests whether a conflict between two closed field names are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql
new file mode 100644
index 0000000..6cdae91
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Tests whether a conflict between two closed field names are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql
new file mode 100644
index 0000000..6211409
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Tests whether a conflict between two closed field names are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+use dataverse test;
+
+let $x := {"name": "john", "name": "smith"}
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01.aql
deleted file mode 100644
index 6cb32b0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-write output to nc1:"rttest/records_closed-record-constructor_01.adm";
-
-closed-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_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/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql
new file mode 100644
index 0000000..4ef8508
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+closed-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02.aql
deleted file mode 100644
index 204c56b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_closed-record-constructor_02.adm";
-
-closed-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.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/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql
new file mode 100644
index 0000000..c6e3756
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+closed-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03.aql
deleted file mode 100644
index e4378a1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_closed-record-constructor_03.adm";
-
-{"foo1": 10, "bar1": {"bar1.1": 10, "bar1.2": 20, "bar1.3": 30, "bar1.4": {"bar1.4.1": 10, "bar1.4.2": 20 } }, "foo2": 30, "bar2": 40}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.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/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql
new file mode 100644
index 0000000..7285a75
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+{"foo1": 10, "bar1": {"bar1.1": 10, "bar1.2": 20, "bar1.3": 30, "bar1.4": {"bar1.4.1": 10, "bar1.4.2": 20 } }, "foo2": 30, "bar2": 40}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName.aql
deleted file mode 100644
index 36df536..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_expFieldName.adm";
-
-for $x in ["field1", "field2"]
-return {$x: 1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql
new file mode 100644
index 0000000..e3f2bc7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql
@@ -0,0 +1,5 @@
+drop dataverse test if exists;
+create dataverse test;
+
+for $x in ["field1", "field2"]
+return {$x: 1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql
new file mode 100644
index 0000000..5c27452
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $x in ["field1", "field2"]
+return {$x: 1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01.aql
deleted file mode 100644
index b771ece..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-write output to nc1:"rttest/records_field-access-by-index_01.adm";
-
-let $x := { "foo1": 10, "bar1": 20, "foo2": 30, "bar2": 40 }
-return field-access-by-index($x,2)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_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/records/field-access-by-index_01/field-access-by-index_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql
new file mode 100644
index 0000000..d25edc6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $x := { "foo1": 10, "bar1": 20, "foo2": 30, "bar2": 40 }
+return field-access-by-index($x,2)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql
new file mode 100644
index 0000000..74de4cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Tests whether a field access on an open field (statically of type ANY) succeeds.
+ * Guards against regression to issue 207.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type TestType as open {
+ id : int32,
+ name : string
+}
+
+create dataset testds(TestType) primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql
new file mode 100644
index 0000000..42b746f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tests whether a field access on an open field (statically of type ANY) succeeds.
+ * Guards against regression to issue 207.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+insert into dataset testds({"id": 123, "name": "John Doe", "address": { "zip": 92617} });
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql
new file mode 100644
index 0000000..fdf4768
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Tests whether a field access on an open field (statically of type ANY) succeeds.
+ * Guards against regression to issue 207.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $l in dataset("testds")
+let $a := $l.address
+return $a.zip
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql
new file mode 100644
index 0000000..e8da256
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Tests whether a conflict between an open and closed field name are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type opentype as open {
+id:int32,
+fname:string
+}
+
+create dataset testds(opentype) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql
new file mode 100644
index 0000000..e91cba4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tests whether a conflict between an open and closed field name are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+use dataverse test;
+
+insert into dataset testds({'id': 1, 'fname': "name"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql
new file mode 100644
index 0000000..d8cb988
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tests whether a conflict between an open and closed field name are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+use dataverse test;
+
+for $x in dataset('testds')
+return {$x.fname: "smith", lowercase("NAME"): "john"}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql
new file mode 100644
index 0000000..25b7dad
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Tests whether a conflict between two open field names are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type opentype as open {
+fname1: string,
+fname2: string
+}
+
+create dataset testds(opentype) primary key fname1;
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql
new file mode 100644
index 0000000..20bebbe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Tests whether a conflict between two open field names are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+use dataverse test;
+
+insert into dataset testds({'fname1': "name", 'fname2': "name"});
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql
new file mode 100644
index 0000000..a8a90df
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tests whether a conflict between two open field names are detected
+ * Expected Result: An error reporting that there is a duplicate field name "name"
+ * Author: zheilbron
+ */
+
+use dataverse test;
+
+for $x in dataset('testds')
+return {$x.fname1: "john", $x.fname2: "smith"}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01.aql
deleted file mode 100644
index c64227a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_open-record-constructor_01.adm";
-
-open-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_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/records/open-record-constructor_01/open-record-constructor_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql
new file mode 100644
index 0000000..d6c8701
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+open-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02.aql
deleted file mode 100644
index 373d853..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_open-record-constructor_02.adm";
-
-open-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.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/records/open-record-constructor_02/open-record-constructor_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql
new file mode 100644
index 0000000..972ecb2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+open-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/10.aql b/asterix-app/src/test/resources/runtimets/queries/scan/10.aql
deleted file mode 100644
index 7878583..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/10.aql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* scan and print a delimited text file */
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type DBLPType as open {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset DBLP1(DBLPType)
- partitioned by key id on group1;
-
-// drop dataset DBLP1;
-load dataset DBLP1
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
-
-
-write output to nc1:"rttest/scan_10.adm";
-
-for $paper in dataset('DBLP1')
-order by $paper.id
-return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/10/10.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/10/10.1.ddl.aql
new file mode 100644
index 0000000..aad13a5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/10/10.1.ddl.aql
@@ -0,0 +1,17 @@
+/* scan and print a delimited text file */
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLP1(DBLPType)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/10/10.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/10/10.2.update.aql
new file mode 100644
index 0000000..987a489
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/10/10.2.update.aql
@@ -0,0 +1,8 @@
+/* scan and print a delimited text file */
+use dataverse test;
+
+// drop dataset DBLP1;
+load dataset DBLP1
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/10/10.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/10/10.3.query.aql
new file mode 100644
index 0000000..3f2567c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/10/10.3.query.aql
@@ -0,0 +1,6 @@
+/* scan and print a delimited text file */
+use dataverse test;
+
+for $paper in dataset('DBLP1')
+order by $paper.id
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/20.aql b/asterix-app/src/test/resources/runtimets/queries/scan/20.aql
deleted file mode 100644
index a07aab2..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/20.aql
+++ /dev/null
@@ -1,29 +0,0 @@
-/* scan and print an ADM file as a dataset of closed records */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset DBLPadm(DBLPType)
- partitioned by key id on group1;
-
-// drop dataset DBLPadm;
-load dataset DBLPadm
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/dblp-small/dblp-small.adm"),("format"="adm"));
-
-write output to nc1:"rttest/scan_20.adm";
-
-for $paper in dataset('DBLPadm')
-order by $paper.id
-return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/20/20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/20/20.1.ddl.aql
new file mode 100644
index 0000000..0e65639
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/20/20.1.ddl.aql
@@ -0,0 +1,18 @@
+/* scan and print an ADM file as a dataset of closed records */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLPadm(DBLPType)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/20/20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/20/20.2.update.aql
new file mode 100644
index 0000000..d8c9945
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/20/20.2.update.aql
@@ -0,0 +1,9 @@
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+// drop dataset DBLPadm;
+load dataset DBLPadm
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/20/20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/20/20.3.query.aql
new file mode 100644
index 0000000..6f716d7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/20/20.3.query.aql
@@ -0,0 +1,7 @@
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+for $paper in dataset('DBLPadm')
+order by $paper.id
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/30.aql b/asterix-app/src/test/resources/runtimets/queries/scan/30.aql
deleted file mode 100644
index 057bdae..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/30.aql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* scan and print 2 ADM file splits as an external dataset of closed records */
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type DBLPType as closed {
- id: int32,
- dblpid: string,
- title: string,
- authors: string,
- misc: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create external dataset DBLPsplits(DBLPType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/dblp-small/dblp-small.adm"),("format"="adm"));
-
-write output to nc1:"rttest/scan_30.adm";
-
-for $paper in dataset('DBLPsplits')
-return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/30/30.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/30/30.1.ddl.aql
new file mode 100644
index 0000000..d94e08c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/30/30.1.ddl.aql
@@ -0,0 +1,17 @@
+/* scan and print 2 ADM file splits as an external dataset of closed records */
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create external dataset DBLPsplits(DBLPType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/30/30.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/30/30.2.update.aql
new file mode 100644
index 0000000..a8cceb7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/30/30.2.update.aql
@@ -0,0 +1,2 @@
+/* scan and print 2 ADM file splits as an external dataset of closed records */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/30/30.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/30/30.3.query.aql
new file mode 100644
index 0000000..8646408
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/30/30.3.query.aql
@@ -0,0 +1,5 @@
+/* scan and print 2 ADM file splits as an external dataset of closed records */
+use dataverse test;
+
+for $paper in dataset('DBLPsplits')
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql
deleted file mode 100644
index e772502..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql
+++ /dev/null
@@ -1,44 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-
-create type AllType as open {
- id: int32,
- name: string,
- age: float,
- salary: double,
- married: boolean,
- interests: {{string}},
- children: [string],
- address: AddressType,
- dob: date,
- time: time,
- datetime: datetime,
- duration: duration,
- location2d: point,
- location3d: point3d,
- line: line,
- polygon: polygon,
- circle: circle
-
- // binary
- // union
-}
-
-
-create external dataset All(AllType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/allData.json"),("format"="adm"));
-
-write output to nc1:"rttest/scan_alltypes_01.adm";
-
-for $a in dataset('All')
-return $a
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
new file mode 100644
index 0000000..67e79fe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.1.ddl.aql
@@ -0,0 +1,37 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type AllType as open {
+ id: int32,
+ name: string,
+ age: float,
+ salary: double,
+ married: boolean,
+ interests: {{string}},
+ children: [string],
+ address: AddressType,
+ dob: date,
+ time: time,
+ datetime: datetime,
+ duration: duration,
+ location2d: point,
+ location3d: point3d,
+ line: line,
+ polygon: polygon,
+ circle: circle
+
+ // binary
+ // union
+}
+
+create external dataset All(AllType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/allData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.3.query.aql
new file mode 100644
index 0000000..2a4f95b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01/alltypes_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $a in dataset('All')
+return $a
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02.aql
new file mode 100644
index 0000000..7f01c3e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02.aql
@@ -0,0 +1,48 @@
+/*
+ * Description : Test variant syntax for dataset access (scan)
+ * : using parentheses and quotes is optional
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type AllType as open {
+ id: int32,
+ name: string,
+ age: float,
+ salary: double,
+ married: boolean,
+ interests: {{string}},
+ children: [string],
+ address: AddressType,
+ dob: date,
+ time: time,
+ datetime: datetime,
+ duration: duration,
+ location2d: point,
+ location3d: point3d,
+ line: line,
+ polygon: polygon,
+ circle: circle
+
+ // binary
+ // union
+}
+
+create external dataset All(AllType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/allData.json"),("format"="adm"));
+
+write output to nc1:"rttest/scan_alltypes_02.adm";
+
+for $a in dataset All
+return $a
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
new file mode 100644
index 0000000..8e27049
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.1.ddl.aql
@@ -0,0 +1,44 @@
+/*
+ * Description : Test variant syntax for dataset access (scan)
+ * : using parentheses and quotes is optional
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type AllType as open {
+ id: int32,
+ name: string,
+ age: float,
+ salary: double,
+ married: boolean,
+ interests: {{string}},
+ children: [string],
+ address: AddressType,
+ dob: date,
+ time: time,
+ datetime: datetime,
+ duration: duration,
+ location2d: point,
+ location3d: point3d,
+ line: line,
+ polygon: polygon,
+ circle: circle
+
+ // binary
+ // union
+}
+
+create external dataset All(AllType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/allData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.2.update.aql
new file mode 100644
index 0000000..67af24b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test variant syntax for dataset access (scan)
+ * : using parentheses and quotes is optional
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.3.query.aql
new file mode 100644
index 0000000..6402144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_02/alltypes_02.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test variant syntax for dataset access (scan)
+ * : using parentheses and quotes is optional
+ * Expected Res : Success
+ * Date : 6th March 2013
+ */
+
+use dataverse test;
+
+for $a in dataset All
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax.aql b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax.aql
new file mode 100644
index 0000000..254ecc4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax.aql
@@ -0,0 +1,22 @@
+/*
+ * Description : Tests syntax error for the changed dataset access syntax
+ * Expected Result: Syntax Error from parser
+ * Date: March 6th 2013
+ */
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Employee as closed {
+id: int32,
+name: string,
+salary: int32
+}
+
+create dataset Office(Employee)
+primary key id;
+
+insert into dataset Office({"id": 1, "name": "clerk#1", "salary":120000});
+
+for $t in dataset 'test.Office'
+return $t
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.1.ddl.aql
new file mode 100644
index 0000000..f4f165c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Tests syntax error for the changed dataset access syntax
+ * Expected Result: Syntax Error from parser
+ * Date: March 6th 2013
+ */
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type Employee as closed {
+id: int32,
+name: string,
+salary: int32
+}
+
+create dataset Office(Employee)
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.2.update.aql
new file mode 100644
index 0000000..a6cf403
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.2.update.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Tests syntax error for the changed dataset access syntax
+ * Expected Result: Syntax Error from parser
+ * Date: March 6th 2013
+ */
+use dataverse test;
+
+insert into dataset Office({"id": 1, "name": "clerk#1", "salary":120000});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.3.query.aql
new file mode 100644
index 0000000..04587fa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/invalid-scan-syntax/invalid-scan-syntax.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Tests syntax error for the changed dataset access syntax
+ * Expected Result: Syntax Error from parser
+ * Date: March 6th 2013
+ */
+use dataverse test;
+
+for $t in dataset 'test.Office'
+return $t
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.1.ddl.aql
new file mode 100644
index 0000000..7ebf213
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Include whitespace between the elements in the comma-separated list of file paths.
+* Expected Res : Success
+* Issue : 238
+* Date : 7th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLPadm(DBLPType)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.2.update.aql
new file mode 100644
index 0000000..1524cac
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.2.update.aql
@@ -0,0 +1,17 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Include whitespace between the elements in the comma-separated list of file paths.
+* Expected Res : Success
+* Issue : 238
+* Date : 7th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+// drop dataset DBLPadm;
+load dataset DBLPadm
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/part-00000.adm, nc1://data/dblp-small/part-00001.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.3.query.aql
new file mode 100644
index 0000000..e6f8a40
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_1/issue238_query_1.3.query.aql
@@ -0,0 +1,15 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Include whitespace between the elements in the comma-separated list of file paths.
+* Expected Res : Success
+* Issue : 238
+* Date : 7th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+for $paper in dataset('DBLPadm')
+order by $paper.id
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.1.ddl.aql
new file mode 100644
index 0000000..ef20dab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.1.ddl.aql
@@ -0,0 +1,26 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Include newline between the elements in the comma-separated list of file paths.
+* Expected Res : Success
+* Issue : 238
+* Date : 7th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create dataset DBLPadm(DBLPType)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.2.update.aql
new file mode 100644
index 0000000..b154222
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.2.update.aql
@@ -0,0 +1,18 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Include newline between the elements in the comma-separated list of file paths.
+* Expected Res : Success
+* Issue : 238
+* Date : 7th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+// drop dataset DBLPadm;
+load dataset DBLPadm
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/part-00000.adm,
+ nc1://data/dblp-small/part-00001.adm"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.3.query.aql
new file mode 100644
index 0000000..26bcd1a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/issue238_query_2/issue238_query_2.3.query.aql
@@ -0,0 +1,15 @@
+/*
+* Description : Create an dataset and load it from two file splits
+ Include newline between the elements in the comma-separated list of file paths.
+* Expected Res : Success
+* Issue : 238
+* Date : 7th Jan 2013
+*/
+
+/* scan and print an ADM file as a dataset of closed records */
+
+use dataverse test;
+
+for $paper in dataset('DBLPadm')
+order by $paper.id
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql
deleted file mode 100644
index f716d1c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql
+++ /dev/null
@@ -1,23 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type NumericType as open {
- id: int32,
- int8Field: int8?,
- int16Field: int16?,
- int32Field: int32?,
- int64Field: int64?,
- floatField: float?,
- doubleField: double?
-}
-
-
-create external dataset Numeric(NumericType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/numericData.adm"),("format"="adm"));
-
-write output to nc1:"rttest/scan_numeric_types_01.adm";
-
-for $a in dataset('Numeric')
-return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.1.ddl.aql
new file mode 100644
index 0000000..658bf5b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type NumericType as open {
+ id: int32,
+ int8Field: int8?,
+ int16Field: int16?,
+ int32Field: int32?,
+ int64Field: int64?,
+ floatField: float?,
+ doubleField: double?
+}
+
+create external dataset Numeric(NumericType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/numericData.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.3.query.aql
new file mode 100644
index 0000000..e9fddfb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01/numeric_types_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $a in dataset('Numeric')
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql
deleted file mode 100644
index 1ad5244..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql
+++ /dev/null
@@ -1,22 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type SpatialType as open {
- id: int32,
- point: point,
- point3d: point3d,
- line: line,
- polygon: polygon,
- circle: circle
-}
-
-create external dataset Spatial(SpatialType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/scan_spatial_types_01.adm";
-
-for $a in dataset('Spatial')
-return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.1.ddl.aql
new file mode 100644
index 0000000..73a4517
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.1.ddl.aql
@@ -0,0 +1,17 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type SpatialType as open {
+ id: int32,
+ point: point,
+ point3d: point3d,
+ line: line,
+ polygon: polygon,
+ circle: circle
+}
+
+create external dataset Spatial(SpatialType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.2.update.aql
new file mode 100644
index 0000000..d415c73
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.2.update.aql
@@ -0,0 +1,2 @@
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.3.query.aql
new file mode 100644
index 0000000..65c7a61
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01/spatial_types_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $a in dataset('Spatial')
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql
deleted file mode 100644
index 6bca691..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type SpatialType as open {
- id: int32,
- point: point,
- point3d: point3d,
- line: line,
- polygon: polygon,
- circle: circle
-}
-
-create nodegroup group1 on nc1;
-
-create dataset Spatial2(SpatialType)
- partitioned by key id on group1;
-
-load dataset Spatial2
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/spatialData.txt"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/scan_spatial_types_02.adm";
-
-for $a in dataset('Spatial2')
-return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.1.ddl.aql
new file mode 100644
index 0000000..1dc7c86
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.1.ddl.aql
@@ -0,0 +1,20 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type SpatialType as open {
+ id: int32,
+ point: point,
+ point3d: point3d,
+ line: line,
+ polygon: polygon,
+ circle: circle
+}
+
+create dataset Spatial2(SpatialType)
+ primary key id;
+
+load dataset Spatial2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/spatialData.txt"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.3.query.aql
new file mode 100644
index 0000000..0e766e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02/spatial_types_02.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $a in dataset('Spatial2')
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01.aql
deleted file mode 100644
index d5074a0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01.aql
+++ /dev/null
@@ -1,20 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TempType as open {
- id: int32,
- date: date,
- time: time,
- datetime: datetime,
- duration: duration
-}
-
-create external dataset Temp(TempType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/tempData.json"),("format"="adm"));
-
-write output to nc1:"rttest/scan_temp_types_01.adm";
-
-for $a in dataset('Temp')
-return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.1.ddl.aql
new file mode 100644
index 0000000..f73c49a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TempType as open {
+ id: int32,
+ date: date,
+ time: time,
+ datetime: datetime,
+ duration: duration
+}
+
+create external dataset Temp(TempType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/tempData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.3.query.aql
new file mode 100644
index 0000000..3d36fc9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_01/temp_types_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $a in dataset('Temp')
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql
deleted file mode 100644
index 22289ef..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TempType as closed {
- id: int32,
- date: date,
- time: time,
- datetime: datetime,
- duration: duration
-}
-
-create nodegroup group1 on nc1;
-
-create dataset Temp2(TempType)
- partitioned by key id on group1;
-
-load dataset Temp2
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/tempData.txt"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/scan_temp_types_02.adm";
-
-for $a in dataset('Temp2')
-return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.1.ddl.aql
new file mode 100644
index 0000000..6c9ef0c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TempType as closed {
+ id: int32,
+ date: date,
+ time: time,
+ datetime: datetime,
+ duration: duration
+}
+
+create dataset Temp2(TempType)
+ primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.2.update.aql
new file mode 100644
index 0000000..f042767
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset Temp2
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/nontagged/tempData.txt"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.3.query.aql
new file mode 100644
index 0000000..ffce188
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02/temp_types_02.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $a in dataset('Temp2')
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql
deleted file mode 100644
index c1bbe7e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql
+++ /dev/null
@@ -1,33 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- interests: {{string}},
- children: [ { name: string, age: int32? } ]
-}
-
-
-create nodegroup group1 if not exists on nc1;
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
-
-write output to nc1:"rttest/semistructured_count-nullable.adm";
-
-for $c in dataset('Customers')
-group by $age := $c.age with $c
-order by $age
-return { "custage": $age, "count": count($c) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.1.ddl.aql
new file mode 100644
index 0000000..f05a169
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.1.ddl.aql
@@ -0,0 +1,23 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.3.query.aql
new file mode 100644
index 0000000..f86b3ba
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable/count-nullable.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+group by $age := $c.age with $c
+order by $age
+return { "custage": $age, "count": count($c) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql
deleted file mode 100644
index b5bea3e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql
+++ /dev/null
@@ -1,33 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as open {
- number: int32,
- street: string,
- city: string
-}
-
-create type CustomerType as open {
- cid: int32,
- name: string,
- age: int32?,
- address: AddressType?,
- interests: {{string}},
- children: [ { name: string, age: int32? } ]
-}
-
-
-create nodegroup group1 if not exists on nc1;
-
-create external dataset Customers(CustomerType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
-
-write output to nc1:"rttest/semistructured_cust-filter.adm";
-
-for $c in dataset('Customers')
-where $c.age < 21
-order by $c.cid
-return { "custname":$c.name, "custage": $c.age }
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.1.ddl.aql
new file mode 100644
index 0000000..344c27f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.1.ddl.aql
@@ -0,0 +1,22 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type AddressType as open {
+ number: int32,
+ street: string,
+ city: string
+}
+
+create type CustomerType as open {
+ cid: int32,
+ name: string,
+ age: int32?,
+ address: AddressType?,
+ interests: {{string}},
+ children: [ { name: string, age: int32? } ]
+}
+
+create external dataset Customers(CustomerType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.3.query.aql
new file mode 100644
index 0000000..68d45fe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter/cust-filter.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $c in dataset('Customers')
+where $c.age < 21
+order by $c.cid
+return { "custname":$c.name, "custage": $c.age }
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql
deleted file mode 100644
index 8f44e23..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql
+++ /dev/null
@@ -1,25 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type OrderType as open {
- oid: int32,
- cid: int32,
- orderstatus: string,
- orderpriority: string,
- clerk: string,
- total: float
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create external dataset Orders(OrderType)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/semistructured/tiny01/orders.adm"),("format"="adm"));
-
-write output to nc1:"rttest/semistructured_has-param1.adm";
-
-for $o in dataset('Orders')
-where not(is-null($o.param1))
-order by $o.oid
-return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.1.ddl.aql
new file mode 100644
index 0000000..477989e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.1.ddl.aql
@@ -0,0 +1,16 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type OrderType as open {
+ oid: int32,
+ cid: int32,
+ orderstatus: string,
+ orderpriority: string,
+ clerk: string,
+ total: float
+}
+
+create external dataset Orders(OrderType)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/semistructured/tiny01/orders.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.3.query.aql
new file mode 100644
index 0000000..4247586
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1/has-param1.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('Orders')
+where not(is-null($o.param1))
+order by $o.oid
+return $o
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_01.aql
deleted file mode 100644
index 2034c38..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_edit-distance-check_01.adm";
-
-let $a := "Nalini Venkatasubramanian"
-let $b := "Nalini Wekatasupramanian"
-let $ed := edit-distance-check($a, $b, 3)
-return $ed
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_02.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_02.aql
deleted file mode 100644
index c3d5342..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_edit-distance-check_02.adm";
-
-let $a := "Nalini Venkatasubramanian"
-let $b := "Nalini Wekatasupramanian"
-let $ed := edit-distance-check($a, $b, 2)
-return $ed
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_03.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_03.aql
deleted file mode 100644
index ecf556c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_03.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_edit-distance-check_03.adm";
-
-let $a := [1, 2, 3, 4, 5, 6, 7]
-let $b := [1, 3, 4, 5, 7, 8]
-let $ed := edit-distance-check($a, $b, 3)
-return $ed
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_04.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_04.aql
deleted file mode 100644
index 80a2da6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_04.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_edit-distance-check_04.adm";
-
-let $a := [1, 2, 3, 4, 5, 6, 7]
-let $b := [1, 3, 4, 5, 7, 8]
-let $ed := edit-distance-check($a, $b, 2)
-return $ed
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.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/similarity/edit-distance-check_ints/edit-distance-check_ints.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.3.query.aql
new file mode 100644
index 0000000..1b562ce
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_ints/edit-distance-check_ints.3.query.aql
@@ -0,0 +1,13 @@
+use dataverse test;
+
+let $a := [1, 2, 3, 4, 5, 6, 7]
+let $b := [1, 3, 4, 5, 7, 8]
+let $results :=
+[
+ edit-distance-check($a, $b, 3),
+ edit-distance-check($b, $a, 3),
+ edit-distance-check($a, $b, 2),
+ edit-distance-check($b, $a, 2)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.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/similarity/edit-distance-check_strings/edit-distance-check_strings.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.3.query.aql
new file mode 100644
index 0000000..605a672
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-check_strings/edit-distance-check_strings.3.query.aql
@@ -0,0 +1,13 @@
+use dataverse test;
+
+let $a := "Nalini Venkatasubramanian"
+let $b := "Nalini Wekatasupramanian"
+let $results :=
+[
+ edit-distance-check($a, $b, 3),
+ edit-distance-check($b, $a, 3),
+ edit-distance-check($a, $b, 2),
+ edit-distance-check($b, $a, 2)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.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/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.query.aql
new file mode 100644
index 0000000..97fbd61
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $a := []
+let $b := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+let $results :=
+[
+ edit-distance-list-is-filterable($a, 0),
+ edit-distance-list-is-filterable($a, 3),
+ edit-distance-list-is-filterable($b, 0),
+ edit-distance-list-is-filterable($b, 3),
+ edit-distance-list-is-filterable($b, 8),
+ edit-distance-list-is-filterable($b, 11)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.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/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.query.aql
new file mode 100644
index 0000000..9d55ce7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.query.aql
@@ -0,0 +1,29 @@
+use dataverse test;
+
+let $a := ""
+let $b := "abcdefghij"
+let $results :=
+[
+ edit-distance-string-is-filterable($a, 0, 2, false),
+ edit-distance-string-is-filterable($a, 0, 2, true),
+ edit-distance-string-is-filterable($a, 1, 2, false),
+ edit-distance-string-is-filterable($a, 1, 2, true),
+ edit-distance-string-is-filterable($b, 0, 2, false),
+ edit-distance-string-is-filterable($b, 0, 2, true),
+ edit-distance-string-is-filterable($b, 1, 2, false),
+ edit-distance-string-is-filterable($b, 1, 2, true),
+ edit-distance-string-is-filterable($b, 4, 2, false),
+ edit-distance-string-is-filterable($b, 5, 2, true),
+ edit-distance-string-is-filterable($b, 5, 2, false),
+ edit-distance-string-is-filterable($b, 6, 2, true),
+ edit-distance-string-is-filterable($b, 0, 3, false),
+ edit-distance-string-is-filterable($b, 0, 3, true),
+ edit-distance-string-is-filterable($b, 1, 3, false),
+ edit-distance-string-is-filterable($b, 1, 3, true),
+ edit-distance-string-is-filterable($b, 2, 3, false),
+ edit-distance-string-is-filterable($b, 3, 3, true),
+ edit-distance-string-is-filterable($b, 3, 3, false),
+ edit-distance-string-is-filterable($b, 4, 3, true)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_01.aql
deleted file mode 100644
index 3365690..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_edit-distance_01.adm";
-
-let $a := "Nalini Venkatasubramanian"
-let $b := "Nalini Wekatasupramanian"
-let $ed := edit-distance($a, $b)
-return $ed
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_02.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_02.aql
deleted file mode 100644
index bf0df90..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_edit-distance_02.adm";
-
-let $a := [1, 2, 3, 4, 5, 6, 7]
-let $b := [1, 3, 4, 5, 7, 8]
-let $ed := edit-distance($a, $b)
-return $ed
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.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/similarity/edit-distance_ints/edit-distance_ints.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.3.query.aql
new file mode 100644
index 0000000..0088ee7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_ints/edit-distance_ints.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $a := [1, 2, 3, 4, 5, 6, 7]
+let $b := [1, 3, 4, 5, 7, 8]
+let $results :=
+[
+ edit-distance($a, $b),
+ edit-distance($b, $a)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.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/similarity/edit-distance_strings/edit-distance_strings.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.3.query.aql
new file mode 100644
index 0000000..6acbf89
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/edit-distance_strings/edit-distance_strings.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $a := "Nalini Venkatasubramanian"
+let $b := "Nalini Wekatasupramanian"
+let $results :=
+[
+ edit-distance($a, $b),
+ edit-distance($b, $a)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.aql
new file mode 100644
index 0000000..cad2811
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.3.query.aql
new file mode 100644
index 0000000..55fd978
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+set simfunction 'edit-distance';
+set simthreshold '2';
+
+for $paper in dataset('DBLP')
+where $paper.authors ~= "Amihay Motro"
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.aql
new file mode 100644
index 0000000..cad2811
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.query.aql
new file mode 100644
index 0000000..3fd772a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+set simfunction 'jaccard';
+set simthreshold '0.5f';
+
+for $paper in dataset('DBLP')
+where word-tokens($paper.title) ~= word-tokens("Transactions for Cooperative Environments")
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.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/similarity/prefix-len-jaccard/prefix-len-jaccard.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.3.query.aql
new file mode 100644
index 0000000..1f61b15
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard/prefix-len-jaccard.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+for $l in [1]
+return [
+ prefix-len-jaccard(5, .8f),
+ prefix-len-jaccard(5, .9f),
+ prefix-len-jaccard(10, .8f),
+ prefix-len-jaccard(10, .9f),
+ prefix-len-jaccard(15, .8f),
+ prefix-len-jaccard(15, .9f)
+]
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard_01.aql
deleted file mode 100644
index 772e64e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/prefix-len-jaccard_01.aql
+++ /dev/null
@@ -1,15 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_prefix-len-jaccard_01.adm";
-
-for $l in [1]
-return [
- prefix-len-jaccard(5, .8f),
- prefix-len-jaccard(5, .9f),
- prefix-len-jaccard(10, .8f),
- prefix-len-jaccard(10, .9f),
- prefix-len-jaccard(15, .8f),
- prefix-len-jaccard(15, .9f)
-]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_01.aql
deleted file mode 100644
index cca0f99..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard-check_01.adm";
-
-let $a := [1, 2, 3, 4, 5, 8, 9]
-let $b := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
-let $jacc := similarity-jaccard-check($a, $b, 0.7f)
-return $jacc
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_02.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_02.aql
deleted file mode 100644
index 38fe1f4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard-check_02.adm";
-
-let $a := [1, 2, 3, 4, 5, 8, 9]
-let $b := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
-let $jacc := similarity-jaccard-check($a, $b, 0.8f)
-return $jacc
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.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/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.query.aql
new file mode 100644
index 0000000..55eb8f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.query.aql
@@ -0,0 +1,26 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := [1, 2, 3, 4, 5]
+let $c := [4, 3, 5, 8, 9, 2, 1]
+let $d := [7, 5, 8, 9, 3, 10, 1, 2, 11, 4]
+let $e := [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
+let $f := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
+let $results :=
+[
+ similarity-jaccard-check($a, $b, 0.0f),
+ similarity-jaccard-check($b, $a, 0.0f),
+ similarity-jaccard-check($a, $b, 0.1f),
+ similarity-jaccard-check($b, $a, 0.1f),
+ similarity-jaccard-check($c, $d, 0.6f),
+ similarity-jaccard-check($d, $c, 0.6f),
+ similarity-jaccard-check($c, $d, 0.8f),
+ similarity-jaccard-check($d, $c, 0.8f),
+ similarity-jaccard-check($e, $f, 0.05f),
+ similarity-jaccard-check($f, $e, 0.05f),
+ similarity-jaccard-check($e, $f, 0.8f),
+ similarity-jaccard-check($f, $e, 0.8f)
+
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.aql
new file mode 100644
index 0000000..cad2811
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.query.aql
new file mode 100644
index 0000000..11e777e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $paper in dataset('DBLP')
+let $paper_tokens := word-tokens($paper.title)
+let $query_tokens := word-tokens("Environments for Cooperative Transactions")
+let $jacc := similarity-jaccard-check($paper_tokens, $query_tokens, 0.5f)
+where $jacc[0]
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.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/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.query.aql
new file mode 100644
index 0000000..83acea7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.query.aql
@@ -0,0 +1,31 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := ["abc", "bcd", "cde", "def", "efg"]
+let $c := ["efg", "abc", "cde", "def", "hij", "ijk", "bcd"]
+let $d := ["abc", "ijk", "bcd", "efg", "fgh", "ghi", "def", "hij", "jkl", "cde"]
+let $e := ["Efg", "aBc", "cdE", "DEf", "hIJ", "IjK", "BCD"]
+let $f := ["abc", "ijk", "bcd", "efg", "fgh", "ghi", "def", "hij", "jkl", "cde"]
+let $g := ["cde", "zza", "zzb", "zzc", "zwz", "za", "zbe", "zer", "zba", "zfe", "wab"]
+let $h := ["abc", "ijk", "bcd", "efg", "fgh", "ghi", "def", "hij", "jkl", "cde"]
+let $results :=
+[
+ similarity-jaccard-check($a, $b, 0.0f),
+ similarity-jaccard-check($b, $a, 0.0f),
+ similarity-jaccard-check($a, $b, 0.1f),
+ similarity-jaccard-check($b, $a, 0.1f),
+ similarity-jaccard-check($c, $d, 0.6f),
+ similarity-jaccard-check($d, $c, 0.6f),
+ similarity-jaccard-check($c, $d, 0.8f),
+ similarity-jaccard-check($d, $c, 0.8f),
+ similarity-jaccard-check($e, $f, 0.6f),
+ similarity-jaccard-check($f, $e, 0.6f),
+ similarity-jaccard-check($e, $f, 0.8f),
+ similarity-jaccard-check($f, $e, 0.8f),
+ similarity-jaccard-check($g, $h, 0.05f),
+ similarity-jaccard-check($h, $g, 0.05f),
+ similarity-jaccard-check($g, $h, 0.8f),
+ similarity-jaccard-check($h, $g, 0.8f)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.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/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.query.aql
new file mode 100644
index 0000000..46c0389
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+for $l in [1]
+return [
+ similarity-jaccard-prefix-check(3, [1, 2, 3], 3, [1, 2, 3], 1, 1f),
+ similarity-jaccard-prefix-check(3, [1, 2, 3], 3, [1, 2, 4], 1, .5f),
+ similarity-jaccard-prefix-check(3, [1, 2, 3], 3, [1, 2, 4], 1, .6f),
+ similarity-jaccard-prefix-check(3, [1, 2, 3], 9, [1, 2, 3], 1, .5f),
+ similarity-jaccard-prefix-check(4, [1, 2, 3, 4], 2, [1, 2], 1, .5f),
+ similarity-jaccard-prefix-check(4, [1, 2, 3, 4], 4, [1, 2], 1, .33f)
+]
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check_01.aql
deleted file mode 100644
index 73c7ebc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix-check_01.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard-prefix-check_01.adm";
-
-for $l in [1]
-return [
- similarity-jaccard-prefix-check(3, [1, 2, 3], 3, [1, 2, 3], 1, 1f),
-
- similarity-jaccard-prefix-check(3, [1, 2, 3], 3, [1, 2, 4], 1, .5f),
- similarity-jaccard-prefix-check(3, [1, 2, 3], 3, [1, 2, 4], 1, .6f),
-
-
- similarity-jaccard-prefix-check(3, [1, 2, 3], 9, [1, 2, 3], 1, .5f),
-
- similarity-jaccard-prefix-check(4, [1, 2, 3, 4], 2, [1, 2], 1, .5f),
- similarity-jaccard-prefix-check(4, [1, 2, 3, 4], 4, [1, 2], 1, .33f)
-]
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.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/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.query.aql
new file mode 100644
index 0000000..10db026
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+for $l in [1]
+return [
+ similarity-jaccard-prefix(3, [1, 2, 3], 3, [1, 2, 3], 1, 1f),
+ similarity-jaccard-prefix(3, [1, 2, 3], 3, [1, 2, 4], 1, .5f),
+ similarity-jaccard-prefix(3, [1, 2, 3], 3, [1, 2, 4], 1, .6f),
+ similarity-jaccard-prefix(3, [1, 2, 3], 9, [1, 2, 3], 1, .5f),
+ similarity-jaccard-prefix(4, [1, 2, 3, 4], 2, [1, 2], 1, .5f),
+ similarity-jaccard-prefix(4, [1, 2, 3, 4], 4, [1, 2], 1, .33f)
+]
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix_01.aql
deleted file mode 100644
index 35b4719..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-prefix_01.aql
+++ /dev/null
@@ -1,19 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard-prefix_01.adm";
-
-for $l in [1]
-return [
- similarity-jaccard-prefix(3, [1, 2, 3], 3, [1, 2, 3], 1, 1f),
-
- similarity-jaccard-prefix(3, [1, 2, 3], 3, [1, 2, 4], 1, .5f),
- similarity-jaccard-prefix(3, [1, 2, 3], 3, [1, 2, 4], 1, .6f),
-
-
- similarity-jaccard-prefix(3, [1, 2, 3], 9, [1, 2, 3], 1, .5f),
-
- similarity-jaccard-prefix(4, [1, 2, 3, 4], 2, [1, 2], 1, .5f),
- similarity-jaccard-prefix(4, [1, 2, 3, 4], 4, [1, 2], 1, .33f)
-]
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.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/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.query.aql
new file mode 100644
index 0000000..31c8b1b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.query.aql
@@ -0,0 +1,19 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := [1, 2, 3, 4, 5]
+let $c := [1, 2, 3, 4, 5, 8, 9]
+let $d := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
+let $results :=
+[
+ similarity-jaccard-sorted-check($a, $b, 0.0f),
+ similarity-jaccard-sorted-check($b, $a, 0.0f),
+ similarity-jaccard-sorted-check($a, $b, 0.1f),
+ similarity-jaccard-sorted-check($b, $a, 0.1f),
+ similarity-jaccard-sorted-check($c, $d, 0.6f),
+ similarity-jaccard-sorted-check($d, $c, 0.6f),
+ similarity-jaccard-sorted-check($c, $d, 0.8f),
+ similarity-jaccard-sorted-check($d, $c, 0.8f)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.aql
new file mode 100644
index 0000000..2598fe4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.query.aql
new file mode 100644
index 0000000..a8089ec
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $paper in dataset('DBLP')
+let $paper_tokens := word-tokens($paper.title)
+let $query_tokens := word-tokens("Cooperative Transactions for Environments")
+let $jacc := similarity-jaccard-sorted-check($paper_tokens, $query_tokens, 0.5f)
+where $jacc[0]
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.1.ddl.aql
new file mode 100644
index 0000000..16769de
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.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/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.query.aql
new file mode 100644
index 0000000..326b626
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.query.aql
@@ -0,0 +1,25 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := ["abc", "bcd", "cde", "def", "efg"]
+let $c := ["abc", "bcd", "cde", "def", "efg", "hij", "ijk"]
+let $d := ["abc", "bcd", "cde", "def", "efg", "fgh", "ghi", "hij", "ijk", "jkl"]
+let $e := ["Abc", "bCd", "cdE", "DEf", "eFG", "HiJ", "IJK"]
+let $f := ["abc", "bcd", "cde", "def", "efg", "fgh", "ghi", "hij", "ijk", "jkl"]
+let $results :=
+[
+ similarity-jaccard-sorted-check($a, $b, 0.0f),
+ similarity-jaccard-sorted-check($b, $a, 0.0f),
+ similarity-jaccard-sorted-check($a, $b, 0.1f),
+ similarity-jaccard-sorted-check($b, $a, 0.1f),
+ similarity-jaccard-sorted-check($c, $d, 0.6f),
+ similarity-jaccard-sorted-check($d, $c, 0.6f),
+ similarity-jaccard-sorted-check($c, $d, 0.8f),
+ similarity-jaccard-sorted-check($d, $c, 0.8f),
+ similarity-jaccard-sorted-check($e, $f, 0.6f),
+ similarity-jaccard-sorted-check($f, $e, 0.6f),
+ similarity-jaccard-sorted-check($e, $f, 0.8f),
+ similarity-jaccard-sorted-check($f, $e, 0.8f)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.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/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.query.aql
new file mode 100644
index 0000000..0915bd6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.query.aql
@@ -0,0 +1,15 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := [1, 2, 3, 4, 5]
+let $c := [1, 2, 3, 4, 5, 8, 9]
+let $d := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
+let $results :=
+[
+ similarity-jaccard-sorted($a, $b),
+ similarity-jaccard-sorted($b, $a),
+ similarity-jaccard-sorted($c, $d),
+ similarity-jaccard-sorted($d, $c)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.aql
new file mode 100644
index 0000000..cad2811
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.query.aql
new file mode 100644
index 0000000..6d6e2c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $paper in dataset('DBLP')
+let $paper_tokens := word-tokens($paper.title)
+let $query_tokens := word-tokens("Cooperative Transactions for Environments")
+where similarity-jaccard-sorted($paper_tokens, $query_tokens) >= 0.5
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.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/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.query.aql
new file mode 100644
index 0000000..2271db0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.query.aql
@@ -0,0 +1,19 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := ["abc", "bcd", "cde", "def", "efg"]
+let $c := ["abc", "bcd", "cde", "def", "efg", "hij", "ijk"]
+let $d := ["abc", "bcd", "cde", "def", "efg", "fgh", "ghi", "hij", "ijk", "jkl"]
+let $e := ["Abc", "bCd", "cdE", "DEf", "eFG", "HiJ", "IJK"]
+let $f := ["abc", "bcd", "cde", "def", "efg", "fgh", "ghi", "hij", "ijk", "jkl"]
+let $results :=
+[
+ similarity-jaccard-sorted($a, $b),
+ similarity-jaccard-sorted($b, $a),
+ similarity-jaccard-sorted($c, $d),
+ similarity-jaccard-sorted($d, $c),
+ similarity-jaccard-sorted($e, $f),
+ similarity-jaccard-sorted($f, $e)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_01.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_01.aql
deleted file mode 100644
index ae0747e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard_01.adm";
-
-let $a := [1, 2, 3, 4, 5, 8, 9]
-let $b := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
-let $jacc := similarity-jaccard($a, $b)
-return $jacc
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_02.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_02.aql
deleted file mode 100644
index d0a7e1f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard_02.adm";
-
-let $a := ["a"]
-let $b := ["b"]
-let $jacc := similarity-jaccard($a, $b)
-return $jacc
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_03.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_03.aql
deleted file mode 100644
index fd5dd21..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_03.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/similarity_similarity-jaccard_03.adm";
-
-let $a := ["a"]
-let $b := [ ]
-let $jacc := similarity-jaccard($a, $b)
-return $jacc
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.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/similarity/similarity-jaccard_ints/similarity-jaccard_ints.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.query.aql
new file mode 100644
index 0000000..a76a82a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.query.aql
@@ -0,0 +1,19 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := [1, 2, 3, 4, 5]
+let $c := [1, 2, 3, 4, 5, 8, 9]
+let $d := [1, 2, 3, 4, 5, 7, 8, 9, 10, 11]
+let $e := [4, 3, 5, 8, 9, 2, 1]
+let $f := [7, 5, 8, 9, 3, 10, 1, 2, 11, 4]
+let $results :=
+[
+ similarity-jaccard($a, $b),
+ similarity-jaccard($b, $a),
+ similarity-jaccard($c, $d),
+ similarity-jaccard($d, $c),
+ similarity-jaccard($e, $f),
+ similarity-jaccard($f, $e)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.aql
new file mode 100644
index 0000000..cad2811
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type DBLPType as closed {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset DBLP(DBLPType)
+ primary key id on group1;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.2.update.aql
new file mode 100644
index 0000000..29632d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.3.query.aql
new file mode 100644
index 0000000..86cc50f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_query/similarity-jaccard_query.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $paper in dataset('DBLP')
+let $paper_tokens := word-tokens($paper.title)
+let $query_tokens := word-tokens("Transactions for Cooperative Environments")
+where similarity-jaccard($paper_tokens, $query_tokens) >= 0.5f
+return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.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/similarity/similarity-jaccard_strings/similarity-jaccard_strings.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.query.aql
new file mode 100644
index 0000000..b7c627e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.query.aql
@@ -0,0 +1,23 @@
+use dataverse test;
+
+let $a := [ ]
+let $b := ["abc", "bcd", "cde", "def", "efg"]
+let $c := ["abc", "bcd", "cde", "def", "efg", "hij", "ijk"]
+let $d := ["abc", "bcd", "cde", "def", "efg", "fgh", "ghi", "hij", "ijk", "jkl"]
+let $e := ["efg", "abc", "cde", "def", "hij", "ijk", "bcd"]
+let $f := ["abc", "ijk", "bcd", "efg", "fgh", "ghi", "def", "hij", "jkl", "cde"]
+let $g := ["Efg", "aBc", "cdE", "DEf", "hIJ", "IjK", "BCD"]
+let $h := ["abc", "ijk", "bcd", "efg", "fgh", "ghi", "def", "hij", "jkl", "cde"]
+let $results :=
+[
+ similarity-jaccard($a, $b),
+ similarity-jaccard($b, $a),
+ similarity-jaccard($c, $d),
+ similarity-jaccard($d, $c),
+ similarity-jaccard($e, $f),
+ similarity-jaccard($f, $e),
+ similarity-jaccard($g, $h),
+ similarity-jaccard($h, $g)
+]
+for $i in $results
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering.aql
deleted file mode 100644
index 0face3b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering.aql
+++ /dev/null
@@ -1,41 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type Tweet as closed {
- id: int32,
- tweetid: int64,
- loc: point,
- time: datetime,
- text: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset TwitterData(Tweet)
- partitioned by key id on group1;
-
-
-load dataset TwitterData
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/twitter/extrasmalltweets.txt"),("format"="adm")) pre-sorted;
-
-create index rtree_index_point on TwitterData(loc) type rtree;
-
-write output to nc1:"rttest/spatial_cell-aggregation-with-filtering.adm";
-
-for $t in dataset('TwitterData')
-let $keyword := "Allergies"
-let $region := polygon("
- 33.80503407287759,-126.41235263538363
- 44.9090773200516,-126.41235263538363
- 44.9090773200516,-87.65258701038363
- 33.80503407287759,-87.65258701038363")
-
-where spatial-intersect($t.loc, $region) and
-$t.time > datetime("2011-05-15T00:00:00Z") and $t.time < datetime("2011-05-16T23:59:59Z") and
-contains($t.text, $keyword)
-group by $c := spatial-cell($t.loc, create-point(24.5,-125.5), 3.0, 3.0) with $t
-let $num := count($t)
-order by $num
-return { "cell": $c, "count": $num }
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.aql
new file mode 100644
index 0000000..11258d6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.aql
@@ -0,0 +1,18 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Tweet as closed {
+ id: int32,
+ tweetid: int64,
+ loc: point,
+ time: datetime,
+ text: string
+}
+
+create nodegroup group1 if not exists on nc1, nc2;
+
+create dataset TwitterData(Tweet)
+ primary key id on group1;
+
+create index rtree_index_point on TwitterData(loc) type rtree;
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.2.update.aql
new file mode 100644
index 0000000..f958d75
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+load dataset TwitterData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/twitter/extrasmalltweets.txt"),("format"="adm")) pre-sorted;
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.query.aql
new file mode 100644
index 0000000..9358c18
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.query.aql
@@ -0,0 +1,17 @@
+use dataverse test;
+
+for $t in dataset('TwitterData')
+let $keyword := "Allergies"
+let $region := polygon("
+ 33.80503407287759,-126.41235263538363
+ 44.9090773200516,-126.41235263538363
+ 44.9090773200516,-87.65258701038363
+ 33.80503407287759,-87.65258701038363")
+
+where spatial-intersect($t.loc, $region) and
+$t.time > datetime("2011-05-15T00:00:00Z") and $t.time < datetime("2011-05-16T23:59:59Z") and
+contains($t.text, $keyword)
+group by $c := spatial-cell($t.loc, create-point(24.5,-125.5), 3.0, 3.0) with $t
+let $num := count($t)
+order by $num
+return { "cell": $c, "count": $num }
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation.aql
deleted file mode 100644
index 44ad6ea..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation.aql
+++ /dev/null
@@ -1,23 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- loc: point
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialDataAggregation.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_cell-aggregation.adm";
-
-let $grid :=
-for $o in dataset('MyData')
-group by $c := spatial-cell($o.loc, create-point(0.0,0.0), 5.0, 5.0) with $o
-let $num := count($o)
-order by $num
-return { "cell": $c, "count": $num}
-for $g in $grid
-return $g
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.1.ddl.aql
new file mode 100644
index 0000000..ef981bb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.1.ddl.aql
@@ -0,0 +1,12 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ loc: point
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialDataAggregation.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.3.query.aql
new file mode 100644
index 0000000..ecec58d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/cell-aggregation/cell-aggregation.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+let $grid :=
+for $o in dataset('MyData')
+group by $c := spatial-cell($o.loc, create-point(0.0,0.0), 5.0, 5.0) with $o
+let $num := count($o)
+order by $num
+return { "cell": $c, "count": $num}
+for $g in $grid
+return $g
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle.aql
deleted file mode 100644
index 6018671..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_circle-intersect-circle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect(create-circle(create-point(0.0,0.0), 5.0), create-circle(create-point(9.9,0.0), 5.0))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.1.ddl.aql
new file mode 100644
index 0000000..e123144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.3.query.aql
new file mode 100644
index 0000000..e762ddf8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/circle-intersect-circle/circle-intersect-circle.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect(create-circle(create-point(0.0,0.0), 5.0), $o.circle)
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.1.ddl.aql
new file mode 100644
index 0000000..e6e10a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.2.update.aql
new file mode 100644
index 0000000..c978b14
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.3.query.aql
new file mode 100644
index 0000000..3e217c6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/circle_accessor/circle_accessor.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+use dataverse test;
+
+let $circle := create-circle(create-point(6.0,3.0), 1.0)
+return {"circle-radius": get-radius($circle), "circle-center": get-center($circle)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.1.ddl.aql
new file mode 100644
index 0000000..cc8c544
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description : Create r-tree indexes for all spatial data types.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type SpatialType as open {
+ id: int32,
+ point: point,
+ line1: line,
+ poly1: polygon,
+ rec: rectangle,
+ circle: circle
+}
+
+create dataset MyData(SpatialType) primary key id;
+create index rtree_index1 on MyData(point) type rtree;
+create index rtree_index2 on MyData(line1) type rtree;
+create index rtree_index3 on MyData(poly1) type rtree;
+create index rtree_index5 on MyData(rec) type rtree;
+create index rtree_index4 on MyData(circle) type rtree;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.2.update.aql
new file mode 100644
index 0000000..264e49b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create r-tree indexes for all spatial data types.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+load dataset MyData
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.3.query.aql
new file mode 100644
index 0000000..53b1c30
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/create-rtree-index/create-rtree-index.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create r-tree indexes for all spatial data types.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+for $a in dataset('MyData')
+return $a.id
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points.aql
deleted file mode 100644
index c02eba2..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_distance-between-points.adm";
-
-for $o in dataset('MyData')
-let $distance := spatial-distance($o.point, create-point(0.0, 0.0))
-order by $o.id
-return {"id":$o.id, "distance":$distance}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.1.ddl.aql
new file mode 100644
index 0000000..e123144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.3.query.aql
new file mode 100644
index 0000000..9095224
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/distance-between-points/distance-between-points.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+let $distance := spatial-distance($o.point, create-point(0.0, 0.0))
+order by $o.id
+return {"id":$o.id, "distance":$distance}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle.aql
deleted file mode 100644
index 035ec63..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_line-intersect-circle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.line1, create-circle(create-point(0.0,0.0), 5.0))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.1.ddl.aql
new file mode 100644
index 0000000..e123144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.3.query.aql
new file mode 100644
index 0000000..fda31b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-circle/line-intersect-circle.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.line1, create-circle(create-point(0.0,0.0), 5.0))
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line.aql
deleted file mode 100644
index e844030..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_line-intersect-line.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.line1, $o.line2)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.1.ddl.aql
new file mode 100644
index 0000000..e123144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.3.query.aql
new file mode 100644
index 0000000..e1768ab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-line/line-intersect-line.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.line1, $o.line2)
+order by $o.id
+return {"id":$o.id}
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon.aql
deleted file mode 100644
index 7ed8e25..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_line-intersect-polygon.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.line1, $o.poly1)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.3.query.aql
new file mode 100644
index 0000000..ee45ed0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-polygon/line-intersect-polygon.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.line1, $o.poly1)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle.aql
deleted file mode 100644
index 940f5c4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
- using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
- (("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_line-intersect-rectangle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.line1, $o.rec)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.1.ddl.aql
new file mode 100644
index 0000000..a920acd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+ using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+ (("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.3.query.aql
new file mode 100644
index 0000000..ef3b9b1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line-intersect-rectangle/line-intersect-rectangle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.line1, $o.rec)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.1.ddl.aql
new file mode 100644
index 0000000..febae58
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.2.update.aql
new file mode 100644
index 0000000..e4f7747
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.3.query.aql
new file mode 100644
index 0000000..4c4992e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/line_accessor/line_accessor.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+use dataverse test;
+
+let $line := create-line(create-point(100.6,999.4), create-point(-872.0,-876.9))
+let $line_list := get-points($line)
+for $p in $line_list
+return $p
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point.aql
deleted file mode 100644
index 90d488f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_point-equals-point.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, create-point(5.0,1.0))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.2.update.aql
new file mode 100644
index 0000000..1ecf3aa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.3.query.aql
new file mode 100644
index 0000000..e4e1fcd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-equals-point/point-equals-point.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-point(5.0,1.0))
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle.aql
deleted file mode 100644
index 9f9e451..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_point-in-circle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, create-circle(create-point(0.0,0.0), 5.0))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.1.ddl.aql
new file mode 100644
index 0000000..7e614c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.3.query.aql
new file mode 100644
index 0000000..bcbad2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-circle/point-in-circle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, create-circle(create-point(0.0,0.0), 5.0))
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon.aql
deleted file mode 100644
index c239185..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_point-in-polygon.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, $o.poly1)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.1.ddl.aql
new file mode 100644
index 0000000..7e614c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.3.query.aql
new file mode 100644
index 0000000..e5aada0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-polygon/point-in-polygon.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, $o.poly1)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle.aql
deleted file mode 100644
index 86d3dd9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_point-in-rectangle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, $o.rec)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.3.query.aql
new file mode 100644
index 0000000..b5d11f7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-in-rectangle/point-in-rectangle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, $o.rec)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line.aql
deleted file mode 100644
index 66908b8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_point-on-line.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.point, $o.line1)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.1.ddl.aql
new file mode 100644
index 0000000..e123144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.3.query.aql
new file mode 100644
index 0000000..514dc69
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point-on-line/point-on-line.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.point, $o.line1)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.1.ddl.aql
new file mode 100644
index 0000000..febae58
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.2.update.aql
new file mode 100644
index 0000000..e4f7747
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.3.query.aql
new file mode 100644
index 0000000..db136d9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/point_accessor/point_accessor.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+use dataverse test;
+
+let $point := create-point(2.3,5.0)
+return {"x-coordinate": get-x($point), "y-coordinate": get-y($point)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle.aql
deleted file mode 100644
index acd29a8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_polygon-intersect-circle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.poly1, create-circle(create-point(6.0,3.0), 1.0))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.3.query.aql
new file mode 100644
index 0000000..2b066b0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-circle/polygon-intersect-circle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.poly1, create-circle(create-point(6.0,3.0), 1.0))
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon.aql
deleted file mode 100644
index 2a14dbd..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_polygon-intersect-polygon.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.poly1, $o.poly2)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.1.ddl.aql
new file mode 100644
index 0000000..e123144
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.1.ddl.aql
@@ -0,0 +1,13 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.query.aql
new file mode 100644
index 0000000..0f6bc82
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.poly1, $o.poly2)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle.aql
deleted file mode 100644
index 16bb5a1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_polygon-intersect-rectangle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.poly1, $o.rec)
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.query.aql
new file mode 100644
index 0000000..5cf1c85
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.poly1, $o.rec)
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.1.ddl.aql
new file mode 100644
index 0000000..e6e10a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.2.update.aql
new file mode 100644
index 0000000..e4f7747
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.3.query.aql
new file mode 100644
index 0000000..54ccf92
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/polygon_accessor/polygon_accessor.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+use dataverse test;
+
+let $polygon := create-polygon(create-point(1.0,1.0), create-point(2.0,2.0), create-point(3.0,3.0), create-point(4.0,4.0))
+let $polygon_list := get-points($polygon)
+for $p in $polygon_list
+return $p
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle.aql
deleted file mode 100644
index 4f7c004..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_rectangle-intersect-circle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.rec, create-circle(create-point(4.1,4.1), 1.0))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.query.aql
new file mode 100644
index 0000000..e5ecf77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.rec, create-circle(create-point(4.1,4.1), 1.0))
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle.aql
deleted file mode 100644
index 90c9f77..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_rectangle-intersect-rectangle.adm";
-
-for $o in dataset('MyData')
-where spatial-intersect($o.rec, create-rectangle(create-point(-1.0,5.0), create-point(4.5,9.0)))
-order by $o.id
-return {"id":$o.id}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.query.aql
new file mode 100644
index 0000000..4691341
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+for $o in dataset('MyData')
+where spatial-intersect($o.rec, create-rectangle(create-point(4.5,9.0), create-point(-1.0,5.0)))
+order by $o.id
+return {"id":$o.id}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.1.ddl.aql
new file mode 100644
index 0000000..e6e10a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.2.update.aql
new file mode 100644
index 0000000..e4f7747
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.3.query.aql
new file mode 100644
index 0000000..98df270
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/rectangle_accessor/rectangle_accessor.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Test spatial accessors
+ * Expected Result : Success
+ * Date : Oct 17, 2012
+ */
+
+use dataverse test;
+
+let $rectangle := create-rectangle(create-point(9.2,49.0), create-point(77.8,111.1))
+let $rectangle_list := get-points($rectangle)
+for $p in $rectangle_list
+return $p
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area.aql
deleted file mode 100644
index 7f6c0b7..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area.aql
+++ /dev/null
@@ -1,21 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type MyRecord as open {
- id: int32,
- point: point,
- kwds: string
-}
-
-create external dataset MyData(MyRecord)
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
-
-write output to nc1:"rttest/spatial_spatial-area.adm";
-
-let $polygonArea := spatial-area(create-polygon(create-point(1.0,1.0),create-point(1.0,4.0),create-point(3.0,4.0),create-point(3.0,1.0)))
-let $circleArea := spatial-area(create-circle(create-point(0.0,0.0), 1.0))
-let $rectangleArea := spatial-area(create-rectangle(create-point(0.0,5.0), create-point(8.0,8.0)))
-return {"polygonArea":$polygonArea, "circleArea":$circleArea, "rectangleArea":$rectangleArea}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.1.ddl.aql
new file mode 100644
index 0000000..1914a96
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type MyRecord as open {
+ id: int32,
+ point: point,
+ kwds: string
+}
+
+create external dataset MyData(MyRecord)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/spatial/spatialData.json"),("format"="adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.2.update.aql
new file mode 100644
index 0000000..bb883a0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.2.update.aql
@@ -0,0 +1 @@
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.3.query.aql
new file mode 100644
index 0000000..940dfe8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/spatial/spatial-area/spatial-area.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $polygonArea := spatial-area(create-polygon(create-point(1.0,1.0),create-point(1.0,4.0),create-point(3.0,4.0),create-point(3.0,1.0)))
+let $circleArea := spatial-area(create-circle(create-point(0.0,0.0), 1.0))
+let $rectangleArea := spatial-area(create-rectangle(create-point(0.0,5.0), create-point(8.0,8.0)))
+return {"polygonArea":$polygonArea, "circleArea":$circleArea, "rectangleArea":$rectangleArea}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.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/string/codepoint-to-string1/codepoint-to-string1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.3.query.aql
new file mode 100644
index 0000000..c6330cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string1/codepoint-to-string1.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := [20013, 25991, 23383, 31526]
+let $c := codepoint-to-string($x)
+return {"result1": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.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/string/codepoint-to-string2/codepoint-to-string2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.3.query.aql
new file mode 100644
index 0000000..b3da48f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/codepoint-to-string2/codepoint-to-string2.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+let $x1 := []
+let $c1 := codepoint-to-string($x1)
+
+let $x2 := [97,98,99]
+let $c2 := codepoint-to-string($x2)
+return {"f1": $c1, "f2" : $c2}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/concat_01/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/string/concat_01/concat_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.3.query.aql
new file mode 100644
index 0000000..f86fa33
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/concat_01/concat_01.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+let $x := ["aa", "25991", "bb", "31526"]
+let $c := string-concat($x)
+
+let $x1 := []
+let $c1 := string-concat($x1)
+return {"result1": $c,"result2": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.1.ddl.aql
new file mode 100644
index 0000000..53b91d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test concat-string function with nulls in the list which is passed as an argument.
+ * Success : Yes
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.2.update.aql
new file mode 100644
index 0000000..f0738e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test concat-string function with nulls in the list which is passed as an argument.
+ * Success : Yes
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.3.query.aql
new file mode 100644
index 0000000..164d7a9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/concat_02/concat_02.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Test concat-string function with nulls in the list which is passed as an argument.
+ * Success : Yes
+ */
+
+use dataverse test;
+
+let $a := string-concat([null])
+let $b := string-concat([null, "foo"])
+let $c := string-concat(["foo", null])
+return {"a": $a, "b": $b, "c": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/contains_01.aql b/asterix-app/src/test/resources/runtimets/queries/string/contains_01.aql
deleted file mode 100644
index 19ab917..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/string/contains_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/string_contains_01.adm";
-
-for $x in ["foofoo"]
-for $y in ["barbar"]
-return [contains($x, "ofo"), contains($y, "ofo")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_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/string/contains_01/contains_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.3.query.aql
new file mode 100644
index 0000000..df2d48a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/contains_01/contains_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in ["foofoo"]
+for $y in ["barbar"]
+return [contains($x, "ofo"), contains($y, "ofo")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.1.ddl.aql
new file mode 100644
index 0000000..e9cf00a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Test case Name : cpttostr01.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * : Pass the codepoints which are in the internal dataset to the function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open{
+id:int32,
+cpt:[int32]
+}
+
+create dataset testds(TestType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.2.update.aql
new file mode 100644
index 0000000..7c83cdf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.2.update.aql
@@ -0,0 +1,15 @@
+/*
+ * Test case Name : cpttostr01.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * : Pass the codepoints which are in the internal dataset to the function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+use dataverse test;
+
+// insert codepoint data into internal dataset testds here into the cpt attribute
+
+insert into dataset testds({"id":123,"cpt":[0048,0045,0057,0044,0065,0045,0090]});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.3.query.aql
new file mode 100644
index 0000000..0c4e466
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr01/cpttostr01.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Test case Name : cpttostr01.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * : Pass the codepoints which are in the internal dataset to the function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+use dataverse test;
+
+for $l in dataset('testds')
+return codepoint-to-string($l.cpt)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.1.ddl.aql
new file mode 100644
index 0000000..a1db4b5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Test case Name : cpttostr02.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * : Inputs are codepoint values for lowecase, uppercase and special characters
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.2.update.aql
new file mode 100644
index 0000000..a1db4b5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Test case Name : cpttostr02.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * : Inputs are codepoint values for lowecase, uppercase and special characters
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.3.query.aql
new file mode 100644
index 0000000..91f6403
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr02/cpttostr02.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Test case Name : cpttostr02.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * : Inputs are codepoint values for lowecase, uppercase and special characters
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+let $c1 := codepoint-to-string([0065,0066,0067,0068,0069,0070,0071,0072,0073,0074,0075,0076,0077,0078,0079,0080,0081,0082,0083,0084,0085,0086,0087,0088,0089,0090])
+
+let $c2 := codepoint-to-string([0097,0098,0099,0100,0101,0102,0103,0104,0105,0106,0107,0108,0109,0110,0111,0112,0113,0114,0115,0116,0117,0118,0119,0120,0121,0122])
+
+let $c3 := codepoint-to-string([0033,0034,0035,0036,0037,0038,0039,0040,0041,0042,0043,0044,0045,0046,0047,0048,0049,0050,0051,0052,0053,0054,0055,0063,0064])
+
+return {"c1":$c1,"c2":$c2,"c3":$c3}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.1.ddl.aql
new file mode 100644
index 0000000..4ce693a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Test case Name : cpttostr04.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+//Input = Output
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.2.update.aql
new file mode 100644
index 0000000..4ce693a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.2.update.aql
@@ -0,0 +1,9 @@
+/*
+ * Test case Name : cpttostr04.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+//Input = Output
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.3.query.aql
new file mode 100644
index 0000000..1f298f8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/cpttostr04/cpttostr04.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Test case Name : cpttostr04.aql
+ * Description : Test codepoint-to-string(codepoint) function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+//Input = Output
+
+let $c1 := codepoint-to-string(string-to-codepoint("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"))
+return { "c1":$c1 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.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/string/end-with1/end-with1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.3.query.aql
new file mode 100644
index 0000000..da40784
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with1/end-with1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := end-with("hello world","werld")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.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/string/end-with2/end-with2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.3.query.aql
new file mode 100644
index 0000000..9abe1ac
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with2/end-with2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := end-with("hello world"," world")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.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/string/end-with3/end-with3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.3.query.aql
new file mode 100644
index 0000000..af7378d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with3/end-with3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := end-with("ends","")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.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/string/end-with4/end-with4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.3.query.aql
new file mode 100644
index 0000000..787f51b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with4/end-with4.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := end-with("ends","ss")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.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/string/end-with5/end-with5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.3.query.aql
new file mode 100644
index 0000000..29378bb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/end-with5/end-with5.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+let $c1 := end-with("ends","s")
+let $c2 := end-with("start",null)
+let $c3 := end-with(null,null)
+let $c4 := end-with("",null)
+let $c5 := end-with("","")
+let $c6 := end-with(null,"")
+
+return {"f1": $c1, "f2": $c2, "f3": $c3, "f4": $c4, "f5": $c5, "f6": $c6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01.aql b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01.aql
deleted file mode 100644
index 251ebe7..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/string_ends-with_01.adm";
-
-for $x in ["foofoo"]
-for $y in ["barbar"]
-return [ends-with($x, "ar"), ends-with($y, "ar")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_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/string/ends-with_01/ends-with_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.3.query.aql
new file mode 100644
index 0000000..8f56df3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/ends-with_01/ends-with_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in ["foofoo"]
+for $y in ["barbar"]
+return [ends-with($x, "ar"), ends-with($y, "ar")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.1.ddl.aql
new file mode 100644
index 0000000..9f26abc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : endwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.2.update.aql
new file mode 100644
index 0000000..9f26abc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : endwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.3.query.aql
new file mode 100644
index 0000000..0ab3988
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/endwith02/endwith02.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Testcase Name : endwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
+
+for $a in [end-with("aBCDEFghIa",codepoint-to-string([0041])),
+end-with("AbCDEFghIA",codepoint-to-string([0041])),
+end-with("AbCdEfGhIjKlMnOpQrStUvWxYz","xYz"),
+end-with("abcdef",lowercase("ABCDEf")),
+end-with("abcdef","abcdef"),
+end-with("abcdef123","ef123")]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.1.ddl.aql
new file mode 100644
index 0000000..6f6e9f0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Testcase Name : endwith03.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
+// create internal dataset, insert string data into string field and pass the string filed as input to end-with function
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as {
+name:string
+}
+
+create dataset testds(TestType) primary key name;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.2.update.aql
new file mode 100644
index 0000000..9a9752d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Testcase Name : endwith03.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
+// create internal dataset, insert string data into string field and pass the string filed as input to end-with function
+
+use dataverse test;
+
+insert into dataset testds({"name":"Jim Jones"});
+insert into dataset testds({"name":"Ravi Kumar"});
+insert into dataset testds({"name":"Bruce Li"});
+insert into dataset testds({"name":"Marian Jones"});
+insert into dataset testds({"name":"Phil Jones"});
+insert into dataset testds({"name":"I am Jones"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.3.query.aql
new file mode 100644
index 0000000..b267e84
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/endwith03/endwith03.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Testcase Name : endwith03.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
+// create internal dataset, insert string data into string field and pass the string filed as input to end-with function
+
+use dataverse test;
+
+for $l in dataset('testds')
+order by $l.name
+where end-with($l.name,"Jones")
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_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/string/length_01/length_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.3.query.aql
new file mode 100644
index 0000000..f3aa6f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/length_01/length_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := string-length("hellow")
+let $c2 := string-length("")
+let $c3 := string-length(null)
+return {"result1": $c1, "result2": $c2, "result3": $c3}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.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/string/length_02/length_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.3.query.aql
new file mode 100644
index 0000000..8d4dca8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/length_02/length_02.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $x in ["ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "ninety"]
+return string-length($x)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/like_01.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_01.aql
deleted file mode 100644
index 71a2545..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/string/like_01.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/string_like_01.adm";
-
-[like("A6BBB", "_6%"), like("A8BBB", "_6%")]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_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/string/like_01/like_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql
new file mode 100644
index 0000000..73181a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql
@@ -0,0 +1,3 @@
+use dataverse test;
+
+[like("A6BBB", "_6%"), like("A8BBB", "_6%")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/like_null.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_null.aql
deleted file mode 100644
index 4578a9e..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/string/like_null.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/string_like_null.adm";
-
-let $x := like("A8BBB", null)
-let $y := like(null, "_6%")
-return {"field1": $x , "field2": $y}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.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/string/like_null/like_null.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.3.query.aql
new file mode 100644
index 0000000..57466d7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/like_null/like_null.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := like("A8BBB", null)
+let $y := like(null, "_6%")
+return {"field1": $x , "field2": $y}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.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/string/lowercase/lowercase.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.3.query.aql
new file mode 100644
index 0000000..3f8dde9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/lowercase/lowercase.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := lowercase("HEllow")
+let $c2 := lowercase("")
+let $c3 := lowercase(null)
+return {"result1": $c1, "result2": $c2, "result3": $c3}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.1.ddl.aql
new file mode 100644
index 0000000..7428895
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : matches02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 23th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.2.update.aql
new file mode 100644
index 0000000..7428895
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : matches02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 23th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.3.query.aql
new file mode 100644
index 0000000..52b5b23
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches02/matches02.3.query.aql
@@ -0,0 +1,21 @@
+/*
+ * Testcase Name : matches02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 23th April 2012
+ */
+
+let $c1:="Hello World"
+let $c2:="Hello World"
+let $c3:=matches($c1,$c2)
+let $c4:=matches("Asterix for Dummies","Asterix for Dummies")
+let $c5:=matches("semistructured data",lowercase("SEMISTRUCTURED DATA"))
+let $c6:=matches("Mega Living!","Mega")
+let $c7:=matches("Mega Living!","ving!")
+let $c8:=matches("Mega Living!"," ")
+let $c9:=matches("Mega Living!","a l")
+let $c10:=matches("Mega Living!","")
+let $c11:=matches(" "," ")
+let $c12:=matches("aaaa","aaaaa")
+return {"c3":$c3,"c4":$c4,"c5":$c5,"c6":$c6,"c7":$c7,"c8":$c8,"c9":$c9,"c10":$c10,"c11":$c11,"c12":$c12}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.1.ddl.aql
new file mode 100644
index 0000000..3fa68f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.1.ddl.aql
@@ -0,0 +1,9 @@
+/*
+ * Testcase Name : matches03.aql
+ * Description : Positive tests
+ * : Test matches functions with regular expressions as third input parameter
+ * Success : Yes
+ * Date : 23th April 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.2.update.aql
new file mode 100644
index 0000000..3fa68f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.2.update.aql
@@ -0,0 +1,9 @@
+/*
+ * Testcase Name : matches03.aql
+ * Description : Positive tests
+ * : Test matches functions with regular expressions as third input parameter
+ * Success : Yes
+ * Date : 23th April 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.3.query.aql
new file mode 100644
index 0000000..f665a30
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches03/matches03.3.query.aql
@@ -0,0 +1,23 @@
+/*
+ * Testcase Name : matches03.aql
+ * Description : Positive tests
+ * : Test matches functions with regular expressions as third input parameter
+ * Success : Yes
+ * Date : 23th April 2012
+ */
+
+for $a in [matches("1234567890","[^a-z]"),
+matches("1234567890","[^a-zA-Z]"),
+matches("abcdefghABCDEFGH","[^a-zA-Z]"),
+matches("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[^a-zA-Z]"),
+matches("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[^A-Z]"),
+matches("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[^a-z]"),
+matches("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[^0-9]"),
+matches("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[0-9]"),
+matches("adefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[a-z&&[^bc]]"),
+matches("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","[a-z&&[^bc]]"),
+matches("bc","[a-z&&[^bc]]"),
+matches("mnop","[a-z&&[^m-p]]"),
+matches("abcdmnop","[a-z&&[^m-p]]")]
+return $a
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.1.ddl.aql
new file mode 100644
index 0000000..babe8ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : matches04.aql
+ * Description : Positive tests
+ * Success : Yes (tests to check for patterns using regular expressions)
+ * Date : 20th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.2.update.aql
new file mode 100644
index 0000000..babe8ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : matches04.aql
+ * Description : Positive tests
+ * Success : Yes (tests to check for patterns using regular expressions)
+ * Date : 20th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.3.query.aql
new file mode 100644
index 0000000..a202961
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches04/matches04.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Testcase Name : matches04.aql
+ * Description : Positive tests
+ * Success : Yes (tests to check for patterns using regular expressions)
+ * Date : 20th April 2012
+ */
+
+for $a in [matches("UCI UCI UCI UCI UCI UCI","[UCI{6}]"),
+matches("UCI UCI UCI UCI UCI UCI","[UCI{3,6}]"),
+matches("UCI UCI UCI UCI UCI UCI","[UCI{7}]"),
+matches("UCI UCI UCI UCI UCI UCI","[UCI{1}]"),
+matches("UCI UCI UCI","[UCI+]"),
+matches("false","[true|false]"),
+matches("YX","[XY]")]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.1.ddl.aql
new file mode 100644
index 0000000..6665f77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Testcase Name : matches05.aql
+ * Description : Positive tests
+ * : Create two internal datasets and insert string data and perform match of fname using matches function.
+ * Success : Yes
+ * Date : 25th April 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType1 as{
+fname:string,
+lname:string,
+id:int32
+}
+
+create dataset testds1(TestType1) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.2.update.aql
new file mode 100644
index 0000000..b56e33e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.2.update.aql
@@ -0,0 +1,16 @@
+/*
+ * Testcase Name : matches05.aql
+ * Description : Positive tests
+ * : Create two internal datasets and insert string data and perform match of fname using matches function.
+ * Success : Yes
+ * Date : 25th April 2012
+ */
+
+use dataverse test;
+
+insert into dataset testds1({"fname":"Test","lname":"Test","id":123});
+insert into dataset testds1({"fname":"Testa","lname":"Test","id":124});
+insert into dataset testds1({"fname":"Test1","lname":"Test1","id":125});
+insert into dataset testds1({"fname":"Test","lname":"Testb","id":126});
+insert into dataset testds1({"fname":"Test2","lname":"Test2","id":127});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.3.query.aql
new file mode 100644
index 0000000..0b14951
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches05/matches05.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Testcase Name : matches05.aql
+ * Description : Positive tests
+ * : Create two internal datasets and insert string data and perform match of fname using matches function.
+ * Success : Yes
+ * Date : 25th April 2012
+ */
+
+
+use dataverse test;
+
+//Perform the match for fname and lname
+for $l in dataset('testds1')
+order by $l.id
+where matches($l.fname,$l.lname)
+return $l
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.1.ddl.aql
new file mode 100644
index 0000000..b7af427
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test matches string function using regular expressions
+ * Expected Res : Success
+ * Date : May 21 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.2.update.aql
new file mode 100644
index 0000000..b7af427
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test matches string function using regular expressions
+ * Expected Res : Success
+ * Date : May 21 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.3.query.aql
new file mode 100644
index 0000000..98f547b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches06/matches06.3.query.aql
@@ -0,0 +1,24 @@
+/*
+ * Description : Test matches string function using regular expressions
+ * Expected Res : Success
+ * Date : May 21 2012
+ */
+
+
+for $a in [matches("mnop","."),
+matches("abcdefABCDEF","/d"),
+matches("12345","\d"),
+matches("abcdefGHIJK","\D"),
+matches(" ","\s"),
+matches(" ","\S"),
+matches("Welcome to pattern matching!","[a-zA-Z_0-9]"),
+matches("!@#$%^&*()","[a-zA-Z_0-9]"),
+matches("!@#$%^&*()","[^\W]"),
+matches("!@#$%^&*","[^\w]"),
+matches("0xffff","[\p{XDigit}]"),
+matches("FFFFFFFF","[\p{XDigit}]"),
+matches("abcdefgh","[\p{javaLowerCase}]"),
+matches("ABCDEF","[\p{javaLowerCase}]"),
+matches(codepoint-to-string([0163]),"[\p{Sc}]")]
+return $a
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.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/string/matches1/matches1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.3.query.aql
new file mode 100644
index 0000000..1139a9e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches1/matches1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := matches("abracadabra","bra")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.1.ddl.aql
new file mode 100644
index 0000000..6822ad9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : matches11.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.2.update.aql
new file mode 100644
index 0000000..6822ad9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : matches11.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.3.query.aql
new file mode 100644
index 0000000..a60ea38
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches11/matches11.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Testcase Name : matches11.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 20th April 2012
+ */
+
+for $a in [matches("hello",null),
+matches("hello","helllo"),
+matches("hello"," "),
+matches(null,"hello"),
+matches("hello","[^a-z]")]
+return $a
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.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/string/matches2/matches2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.3.query.aql
new file mode 100644
index 0000000..1e114ad
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches2/matches2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := matches("abracadabra","^a.*a$")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.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/string/matches21/matches21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.3.query.aql
new file mode 100644
index 0000000..e874fcb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches21/matches21.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := matches("abracadabra","Bra","")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.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/string/matches22/matches22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.3.query.aql
new file mode 100644
index 0000000..7b5c9c0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches22/matches22.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := matches("abracadabra","Bra","i")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.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/string/matches23/matches23.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.3.query.aql
new file mode 100644
index 0000000..9d81aae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches23/matches23.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := matches("helloworld","hello world","x")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.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/string/matches3/matches3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.3.query.aql
new file mode 100644
index 0000000..1b9dc55
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matches3/matches3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := matches("abracadabra","^bra")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.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/string/matchesnull/matchesnull.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.3.query.aql
new file mode 100644
index 0000000..6ce6a77
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/matchesnull/matchesnull.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+let $c1 := matches("helloworld",null)
+let $c2 := matches("",null)
+let $c3 := matches(null,null)
+let $c4 := matches("helloworld",null, "")
+let $c5 := matches("",null, "i")
+let $c6 := matches(null,null, null)
+return {"result1": $c1, "result2": $c2, "result3": $c3, "result4": $c4, "result5": $c5, "result6": $c6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.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/string/replace1/replace1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.3.query.aql
new file mode 100644
index 0000000..6a2b9c4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace1/replace1.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := replace("abracadabra", "a", "")
+let $c2 := replace("abracadabra", "a(.)", "a$1$1")
+let $c3 := replace("darted", "^(.*?)d(.*)$", "$1c$2")
+return {"result1": $c1, "result2": $c2, "result3": $c3}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.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/string/replace2/replace2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.3.query.aql
new file mode 100644
index 0000000..4d1eac9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace2/replace2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := replace("abracadabra", "bra", "*")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.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/string/replace21/replace21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.3.query.aql
new file mode 100644
index 0000000..3552126
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace21/replace21.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $c1 := replace("abracadabra","Bra", "kkk" , "")
+let $c2 := replace("abracadabra","Bra", "kkk" ,"i")
+let $c3 := replace("helloworld","hello world", "kkk" , "x")
+return {"result1": $c1,"result2": $c2,"result3": $c3}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.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/string/replace22/replace22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.3.query.aql
new file mode 100644
index 0000000..df67481
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace22/replace22.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $c1 := replace("abracadabra","", null , null)
+let $c2 := replace("abracadabra","bra", "XXX" ,"")
+let $c3 := replace(null,"hello world", "XxXx" , "x")
+let $c4 := replace("abracadabra","bra", "XXX" ,null)
+let $c5 := replace("abracadabra",null, "XXX" ,null)
+let $c6 := replace("abracadabra","Bra", null ,"i")
+let $c7 := replace("abracadabra","Bra", "" ,"i")
+let $c8 := replace("abracadabra","", "XXX" ,"")
+return {"result1": $c1,"result2": $c2,"result3": $c3,"result4": $c4,"result5": $c5,"result6": $c6,"result7": $c7,"result8": $c8}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.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/string/replace3/replace3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.3.query.aql
new file mode 100644
index 0000000..d032af4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/replace3/replace3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := replace("abracadabra", "a.*a", "*")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.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/string/start-with1/start-with1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.3.query.aql
new file mode 100644
index 0000000..c9b67b5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with1/start-with1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := start-with("start","st")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.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/string/start-with2/start-with2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.3.query.aql
new file mode 100644
index 0000000..8df6e95
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with2/start-with2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := start-with("start","t")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.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/string/start-with3/start-with3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.3.query.aql
new file mode 100644
index 0000000..c3e3a32
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with3/start-with3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := start-with("start","start")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.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/string/start-with4/start-with4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.3.query.aql
new file mode 100644
index 0000000..90a58f7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with4/start-with4.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse test;
+
+let $c1 := start-with("start","")
+let $c2 := start-with("start",null)
+let $c3 := start-with(null,null)
+let $c4 := start-with("",null)
+let $c5 := start-with("","")
+let $c6 := start-with(null,"")
+
+return {"f1": $c1, "f2": $c2, "f3": $c3, "f4": $c4, "f5": $c5, "f6": $c6}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.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/string/start-with5/start-with5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.3.query.aql
new file mode 100644
index 0000000..2008dfc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/start-with5/start-with5.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := start-with("","s")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01.aql b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01.aql
deleted file mode 100644
index ed36e2d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01.aql
+++ /dev/null
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/string_starts-with_01.adm";
-
-for $x in ["foofoo"]
-for $y in ["barbar"]
-return [starts-with($x, "ba"), starts-with($y, "ba")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_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/string/starts-with_01/starts-with_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.3.query.aql
new file mode 100644
index 0000000..3ad623c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/starts-with_01/starts-with_01.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+for $x in ["foofoo"]
+for $y in ["barbar"]
+return [starts-with($x, "ba"), starts-with($y, "ba")]
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.1.ddl.aql
new file mode 100644
index 0000000..fc5d025
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Testcase Name : startwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.2.update.aql
new file mode 100644
index 0000000..886f050
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : startwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.3.query.aql
new file mode 100644
index 0000000..7d6c8c1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/startwith02/startwith02.3.query.aql
@@ -0,0 +1,24 @@
+/*
+ * Testcase Name : startwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+for $a in [start-with("Hello","H"),
+start-with("Hello",lowercase("He")),
+start-with("Hello",""),
+start-with("Hello"," "),
+start-with("Hello",null),
+start-with("abcdef",lowercase("ABCDEf")),
+start-with("abcdef","abcdef"),
+start-with("abcdef","abc "),
+start-with("abc\tdef","abc\t"),
+start-with(" abcdef","abc"),
+start-with("0x1FF","0"),
+start-with("<ID>","<"),
+start-with("aBCDEFghI",codepoint-to-string([0041])),
+start-with("AbCDEFghI",codepoint-to-string([0041]))]
+return $a
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.1.ddl.aql
new file mode 100644
index 0000000..3b855ec
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Testcase Name : startwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// Create internal dataset, insert string data into string field and pass the string field as first input to start-with function
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as {
+name:string
+}
+
+create dataset testds(TestType) primary key name;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.2.update.aql
new file mode 100644
index 0000000..451a6ab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.2.update.aql
@@ -0,0 +1,19 @@
+/*
+ * Testcase Name : startwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// Create internal dataset, insert string data into string field and pass the string field as first input to start-with function
+
+use dataverse test;
+
+insert into dataset testds({"name":"John Smith"});
+insert into dataset testds({"name":"John Doe"});
+insert into dataset testds({"name":"John Wayne"});
+insert into dataset testds({"name":"Johnson Ben"});
+insert into dataset testds({"name":"Johnny Walker"});
+insert into dataset testds({"name":"David Smith"});
+insert into dataset testds({"name":"Not a Name"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.3.query.aql
new file mode 100644
index 0000000..7cfa56b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/startwith03/startwith03.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Testcase Name : startwith02.aql
+ * Description : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// Create internal dataset, insert string data into string field and pass the string field as first input to start-with function
+
+use dataverse test;
+
+// Return all names that start with John
+
+for $l in dataset('testds')
+order by $l.name
+where start-with($l.name,"John")
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.1.ddl.aql
new file mode 100644
index 0000000..706597f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : strconcat01.aql
+ * Description : Test string-concat([string]) function.
+ * : Pass the strings(which are in internal dataset) to string-concat function for concatenation.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open{
+id:int32,
+fname:string,
+lname:string
+}
+
+create dataset testds(TestType) primary key id;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.2.update.aql
new file mode 100644
index 0000000..bb5329c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.2.update.aql
@@ -0,0 +1,23 @@
+/*
+ * Test case Name : strconcat01.aql
+ * Description : Test string-concat([string]) function.
+ * : Pass the strings(which are in internal dataset) to string-concat function for concatenation.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+use dataverse test;
+
+// insert string data into internal dataset testds into the name attribute
+
+insert into dataset testds({"id":123,"fname":"John","lname":"Smith"});
+insert into dataset testds({"id":124,"fname":"Bob","lname":"Jones"});
+insert into dataset testds({"id":125,"fname":"Mike","lname":"Carey"});
+insert into dataset testds({"id":126,"fname":"Chen","lname":"Li"});
+insert into dataset testds({"id":121,"fname":"Young Seok","lname":"Kim"});
+insert into dataset testds({"id":122,"fname":"Alex","lname":"Behm"});
+insert into dataset testds({"id":127,"fname":"Raman","lname":"Grover"});
+insert into dataset testds({"id":128,"fname":"Yingyi","lname":"Bu"});
+insert into dataset testds({"id":129,"fname":"Vinayak","lname":"Borkar"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.3.query.aql
new file mode 100644
index 0000000..422bd74
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strconcat01/strconcat01.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Test case Name : strconcat01.aql
+ * Description : Test string-concat([string]) function.
+ * : Pass the strings(which are in internal dataset) to string-concat function for concatenation.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+use dataverse test;
+
+for $l in dataset('testds')
+order by $l.id
+return { "Full Name": string-concat([$l.fname,$l.lname]) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.1.ddl.aql
new file mode 100644
index 0000000..fdf5ee8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Test string-concat([string]) function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.2.update.aql
new file mode 100644
index 0000000..cad71cb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string-concat([string]) function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.3.query.aql
new file mode 100644
index 0000000..10078a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strconcat02/strconcat02.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test string-concat([string]) function.
+ * Success : Yes
+ * Date : 16th April 2012
+ */
+
+
+for $a in [string-concat([codepoint-to-string(string-to-codepoint("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")),codepoint-to-string(string-to-codepoint("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")),codepoint-to-string(string-to-codepoint("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"))]),string-concat([" ","a","b"," ","c","d","e","f","g","p","o","q","r","s","t"," "]),string-concat(["This is a test","and all tests must pass","and life is good..."])]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.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/string/string-concat1/string-concat1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.3.query.aql
new file mode 100644
index 0000000..331c299
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-concat1/string-concat1.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := ["aa", "25991", "bb", "31526"]
+let $c := string-concat($x)
+return {"result1": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.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/string/string-equal1/string-equal1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.3.query.aql
new file mode 100644
index 0000000..954ac57
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal1/string-equal1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := string-equal("test","tess")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.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/string/string-equal2/string-equal2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.3.query.aql
new file mode 100644
index 0000000..66af45d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal2/string-equal2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := string-equal("test","test")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.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/string/string-equal3/string-equal3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.3.query.aql
new file mode 100644
index 0000000..fe3b341
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal3/string-equal3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := string-equal("test11","test")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.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/string/string-equal4/string-equal4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.3.query.aql
new file mode 100644
index 0000000..2b5166c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-equal4/string-equal4.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $c1 := string-equal("","")
+let $c3 := string-equal(null,"")
+let $c4 := string-equal("",null)
+let $c5 := string-equal(null,null)
+return {"result1": $c1, "result3": $c3, "result4": $c4, "result5": $c5}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.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/string/string-join1/string-join1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.3.query.aql
new file mode 100644
index 0000000..6d4f980
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-join1/string-join1.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $x := ["aa", "25991", "bb", "31526"]
+let $s := "::"
+let $c := string-join($x,$s)
+let $c1 := string-join($x,"")
+return {"result0": $c,"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.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/string/string-to-codepoint/string-to-codepoint.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.3.query.aql
new file mode 100644
index 0000000..db332bd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint/string-to-codepoint.3.query.aql
@@ -0,0 +1,5 @@
+use dataverse test;
+
+let $x := "abcd"
+let $c := string-to-codepoint($x)
+return {"result1": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.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/string/string-to-codepoint1/string-to-codepoint1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.3.query.aql
new file mode 100644
index 0000000..d3a4a68
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/string-to-codepoint1/string-to-codepoint1.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $x := ""
+let $c := string-to-codepoint($x)
+
+return {"result1": $c}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.1.ddl.aql
new file mode 100644
index 0000000..1e3cfc8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Test string-length(string) function
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+/*
+for $a in [ string-length("abcdefghijklmnopqrstu"),
+string-length("ABCDEFGHIJKLMNOPQRSTU"),
+string-length("abcdEFGHijklMNOPqrstu"),
+string-length("abcd EFGH ijkl MNOP qrstu"),
+string-length(" Hello World !!!!....:-)"),
+string-length(string-concat(["test string to","concatenate"])),
+string-length("~!@#$%^&*()_+{}:?<>/.,';`][\")]
+return $a
+*/
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.2.update.aql
new file mode 100644
index 0000000..1e3cfc8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.2.update.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Test string-length(string) function
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+/*
+for $a in [ string-length("abcdefghijklmnopqrstu"),
+string-length("ABCDEFGHIJKLMNOPQRSTU"),
+string-length("abcdEFGHijklMNOPqrstu"),
+string-length("abcd EFGH ijkl MNOP qrstu"),
+string-length(" Hello World !!!!....:-)"),
+string-length(string-concat(["test string to","concatenate"])),
+string-length("~!@#$%^&*()_+{}:?<>/.,';`][\")]
+return $a
+*/
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.3.query.aql
new file mode 100644
index 0000000..564ca83
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strlen02/strlen02.3.query.aql
@@ -0,0 +1,26 @@
+/*
+ * Description : Test string-length(string) function
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+/*
+for $a in [ string-length("abcdefghijklmnopqrstu"),
+string-length("ABCDEFGHIJKLMNOPQRSTU"),
+string-length("abcdEFGHijklMNOPqrstu"),
+string-length("abcd EFGH ijkl MNOP qrstu"),
+string-length(" Hello World !!!!....:-)"),
+string-length(string-concat(["test string to","concatenate"])),
+string-length("~!@#$%^&*()_+{}:?<>/.,';`][\")]
+return $a
+*/
+
+
+for $a in [ string-length("abcdefghijklmnopqrstu"),
+string-length("ABCDEFGHIJKLMNOPQRSTU"),
+string-length("abcdEFGHijklMNOPqrstu"),
+string-length("abcd EFGH ijkl MNOP qrstu"),
+string-length(" Hello World !!!!....:-)"),
+string-length("~!@#$%^&*()_+{}:?<>/.,';`][\")]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.1.ddl.aql
new file mode 100644
index 0000000..f2a0456
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Test string-length(string) function
+ * Expected Res : Success
+ * Date : 19th April 2012
+ */
+
+
+// Create internal dataset, insert string data and pass the string attribute to string-length function, and verify results.
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as {
+name:string
+}
+
+create dataset testds(TestType) primary key name;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.2.update.aql
new file mode 100644
index 0000000..05bd430
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.2.update.aql
@@ -0,0 +1,24 @@
+/*
+ * Description : Test string-length(string) function
+ * Expected Res : Success
+ * Date : 19th April 2012
+ */
+
+
+// Create internal dataset, insert string data and pass the string attribute to string-length function, and verify results.
+
+use dataverse test;
+
+insert into dataset testds({"name":"Maradona"});
+insert into dataset testds({"name":"Pele"});
+insert into dataset testds({"name":"Roberto Baggio"});
+insert into dataset testds({"name":"Beckham David"});
+insert into dataset testds({"name":"Rooney"});
+insert into dataset testds({"name":"Ronaldinho"});
+insert into dataset testds({"name":"Ronaldo"});
+insert into dataset testds({"name":"Zinadine Zidane"});
+insert into dataset testds({"name":"Cristiano Ronaldo"});
+insert into dataset testds({"name":"Messi"});
+insert into dataset testds({"name":"Tevez"});
+insert into dataset testds({"name":"Henry"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.3.query.aql
new file mode 100644
index 0000000..9bcd2a4b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strlen03/strlen03.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Test string-length(string) function
+ * Expected Res : Success
+ * Date : 19th April 2012
+ */
+
+
+// Create internal dataset, insert string data and pass the string attribute to string-length function, and verify results.
+
+use dataverse test;
+
+for $l in dataset('testds')
+order by $l.name
+return string-length($l.name)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.1.ddl.aql
new file mode 100644
index 0000000..717f902c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string to codepoint function with valid inputs
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.2.update.aql
new file mode 100644
index 0000000..717f902c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string to codepoint function with valid inputs
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.3.query.aql
new file mode 100644
index 0000000..ddb626e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt01/strtocpt01.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Test string to codepoint function with valid inputs
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
+
+let $x := "ABCDEFGHIJKLMNOPQRSTUVWXYZ-01234567890"
+return string-to-codepoint($x)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.1.ddl.aql
new file mode 100644
index 0000000..46872af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string to codepoint function with special characters
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.2.update.aql
new file mode 100644
index 0000000..46872af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string to codepoint function with special characters
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.3.query.aql
new file mode 100644
index 0000000..8ce8ac8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt02/strtocpt02.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test string to codepoint function with special characters
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
+let $x := "\"'-=_+|\,./<>?:;~`"
+return string-to-codepoint($x)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.1.ddl.aql
new file mode 100644
index 0000000..46872af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.1.ddl.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string to codepoint function with special characters
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.2.update.aql
new file mode 100644
index 0000000..46872af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Test string to codepoint function with special characters
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.3.query.aql
new file mode 100644
index 0000000..d91f7ef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/strtocpt03/strtocpt03.3.query.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Test string to codepoint function with special characters
+ * Expected Res : Success
+ * Date : 7th Aug 2012
+ */
+
+let $x := "!@#$%^&*()"
+return string-to-codepoint($x)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.1.ddl.aql
new file mode 100644
index 0000000..a3ec9be
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : substr01.aql
+ * Description : Test substring2(string,position) built in function.
+ * Success : Yes
+ * Date : 18th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.2.update.aql
new file mode 100644
index 0000000..a3ec9be
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Testcase Name : substr01.aql
+ * Description : Test substring2(string,position) built in function.
+ * Success : Yes
+ * Date : 18th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.3.query.aql
new file mode 100644
index 0000000..e7b638c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr01/substr01.3.query.aql
@@ -0,0 +1,28 @@
+/*
+ * Testcase Name : substr01.aql
+ * Description : Test substring2(string,position) built in function.
+ * Success : Yes
+ * Date : 18th April 2012
+ */
+
+let $str1:="Hello World"
+let $str2:=substring($str1,10)
+
+let $str3:="This is a test string"
+let $str4:=substring($str3,21)
+
+let $str5:="This is a test string"
+let $str6:=substring($str5,22)
+
+let $str7:="This is a test string"
+let $str8:=substring($str7,0)
+
+let $str9:="This is a test string"
+let $str10:=substring($str9,-1)
+
+let $str11:="This is a test string"
+let $str12:="This is a another test string"
+let $str13:=substring(string-concat([$str11,$str12]),21)
+
+let $str14:=substring("UC Irvine",string-length("UC Irvine")/2)
+return { "str2":$str2,"str4":$str4,"str6":$str6,"str8":$str8,"str10":$str10,"str13":$str13,"str14":$str14}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.1.ddl.aql
new file mode 100644
index 0000000..280e52c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Testcase Name : substr04.aql
+ * Description : Test substring2(string,position,position) built in function.
+ * Success : Yes
+ * Date : 18th April 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.2.update.aql
new file mode 100644
index 0000000..280e52c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Testcase Name : substr04.aql
+ * Description : Test substring2(string,position,position) built in function.
+ * Success : Yes
+ * Date : 18th April 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.3.query.aql
new file mode 100644
index 0000000..0f5b1ff
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr04/substr04.3.query.aql
@@ -0,0 +1,19 @@
+/*
+ * Testcase Name : substr04.aql
+ * Description : Test substring2(string,position,position) built in function.
+ * Success : Yes
+ * Date : 18th April 2012
+ */
+
+for $a in [ substring2("hello world",7,11),
+substring("hello world",1,11),
+substring("hello world",3,7),
+substring("ABCD",3,6),
+substring("ABCD",0,4),
+substring("UC Irvine",4,string-length("UC Irvine")),
+substring("UC Irvine",0,string-length("UC Irvine")),
+substring("UC Irvine",1,string-length("UC Irvine")),
+substring(substring("UC Irvine",4),0,string-length("Irvine")),
+substring(substring("UC Irvine",4),0,(string-length("Irvine")/2))
+]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.1.ddl.aql
new file mode 100644
index 0000000..cd3bee1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Testcase Name : substr05.aql
+ * Description : Test substring2(string,position,position) built in function.
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// To test substring2 function with string data stored in an internal dataset.
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+name : string
+}
+
+create dataset testdst(TestType) primary key name;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.2.update.aql
new file mode 100644
index 0000000..da796c7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.2.update.aql
@@ -0,0 +1,20 @@
+/*
+ * Testcase Name : substr05.aql
+ * Description : Test substring2(string,position,position) built in function.
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// To test substring2 function with string data stored in an internal dataset.
+
+use dataverse test;
+
+insert into dataset testdst({"name":"UC Berkeley"});
+insert into dataset testdst({"name":"UC Irvine"});
+insert into dataset testdst({"name":"UC LA"});
+insert into dataset testdst({"name":"UC Riverside"});
+insert into dataset testdst({"name":"UC San Diego"});
+insert into dataset testdst({"name":"UC Santa Barbara"});
+insert into dataset testdst({"name":"UT Austin "});
+insert into dataset testdst({"name":"UT Dallas"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.3.query.aql
new file mode 100644
index 0000000..1b2cfe5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr05/substr05.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Testcase Name : substr05.aql
+ * Description : Test substring2(string,position,position) built in function.
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// To test substring2 function with string data stored in an internal dataset.
+
+use dataverse test;
+
+for $a in dataset('testdst')
+order by $a.name
+return substring($a.name,4,string-length($a.name));
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.1.ddl.aql
new file mode 100644
index 0000000..404e531
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Test substring2(string,position) built in function.
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// To test substring function with string data stored in an internal dataset.
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as open {
+name : string
+}
+
+create dataset testdst(TestType) primary key name;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.2.update.aql
new file mode 100644
index 0000000..150cd94
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.2.update.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Test substring2(string,position) built in function.
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// To test substring function with string data stored in an internal dataset.
+
+use dataverse test;
+
+insert into dataset testdst({"name":"UC Berkeley"});
+insert into dataset testdst({"name":"UC Irvine"});
+insert into dataset testdst({"name":"UC LA"});
+insert into dataset testdst({"name":"UC Riverside"});
+insert into dataset testdst({"name":"UC San Diego"});
+insert into dataset testdst({"name":"UC Santa Barbara"});
+insert into dataset testdst({"name":"UT Austin "});
+insert into dataset testdst({"name":"UT Dallas"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.3.query.aql
new file mode 100644
index 0000000..b6be396
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substr06/substr06.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Test substring2(string,position) built in function.
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+// To test substring function with string data stored in an internal dataset.
+
+use dataverse test;
+
+for $a in dataset('testdst')
+order by $a.name
+return substring($a.name,4);
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.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/string/substring-after-1/substring-after-1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.3.query.aql
new file mode 100644
index 0000000..ae3a597
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-1/substring-after-1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring-after("HEllow","El")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.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/string/substring-after-2/substring-after-2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.3.query.aql
new file mode 100644
index 0000000..ef7dd50
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-2/substring-after-2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring-after("HEllow","1")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.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/string/substring-after-3/substring-after-3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.3.query.aql
new file mode 100644
index 0000000..724d607
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-3/substring-after-3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring-after("HEllow","HEllow")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.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/string/substring-after-4/substring-after-4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.3.query.aql
new file mode 100644
index 0000000..3bde8d0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-after-4/substring-after-4.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+let $c1 := substring-after("HEllow","")
+let $c2 := substring-after("HEllow",null)
+let $c3 := substring-after("",null)
+let $c4 := substring-after("","")
+let $c5 := substring-after(null,null)
+return {"result1": $c1, "result2": $c2, "result3": $c3, "result4": $c4, "result5": $c5}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.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/string/substring-before-1/substring-before-1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.3.query.aql
new file mode 100644
index 0000000..6f57132
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-1/substring-before-1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring-before("HEllow","ll")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.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/string/substring-before-2/substring-before-2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.3.query.aql
new file mode 100644
index 0000000..7879268
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-2/substring-before-2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring-before("HEllow","HEllow")
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.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/string/substring-before-3/substring-before-3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.3.query.aql
new file mode 100644
index 0000000..c0e22d4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring-before-3/substring-before-3.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+let $c1 := substring-before("HEllow","")
+let $c2 := substring-before("HEllow",null)
+let $c3 := substring-before("",null)
+let $c4 := substring-before("","")
+let $c5 := substring-before(null,null)
+return {"result1": $c1, "result2": $c2, "result3": $c3, "result4": $c4, "result5": $c5}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.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/string/substring2-1/substring2-1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.3.query.aql
new file mode 100644
index 0000000..6e32225
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-1/substring2-1.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring("HEllow",2)
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.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/string/substring2-2/substring2-2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.3.query.aql
new file mode 100644
index 0000000..854eac6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-2/substring2-2.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring("HEllow",0)
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.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/string/substring2-3/substring2-3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.3.query.aql
new file mode 100644
index 0000000..f8a53f4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-3/substring2-3.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring("HEllow",10)
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.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/string/substring2-4/substring2-4.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.3.query.aql
new file mode 100644
index 0000000..192698c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring2-4/substring2-4.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+let $c1 := substring("HEllow",-1)
+return {"result1": $c1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring_01.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring_01.aql
deleted file mode 100644
index 3d2e51f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/string/substring_01.aql
+++ /dev/null
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/string_substring_01.adm";
-
-for $x in ["foobar"]
-return substring($x, 2, 3)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.1.ddl.aql
new file mode 100644
index 0000000..754ea81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_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/string/substring_01/substring_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.3.query.aql
new file mode 100644
index 0000000..29efa54
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/substring_01/substring_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $x in ["foobar"]
+return substring($x, 2, 3)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.1.ddl.aql
new file mode 100644
index 0000000..1c613f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Testcase Name : toLowerCas02.aql
+ * Description : Test lowercase(string) function
+ * : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.2.update.aql
new file mode 100644
index 0000000..1c613f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Testcase Name : toLowerCas02.aql
+ * Description : Test lowercase(string) function
+ * : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.3.query.aql
new file mode 100644
index 0000000..24ccdcc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase02/toLowerCase02.3.query.aql
@@ -0,0 +1,22 @@
+/*
+ * Testcase Name : toLowerCas02.aql
+ * Description : Test lowercase(string) function
+ * : Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+for $a in [lowercase("a b c d e f g"),
+ lowercase("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"),
+ lowercase("abcdefghij KLMNOP qrstu VWXYZ"),
+ lowercase("abcdefghijklmnopqrstuvwxyz"),
+ lowercase("this is a test string"),
+ lowercase("smaller string"),
+ lowercase("ABCD"),
+ lowercase("AbCdEfGhIjKlMnOpQrStUvWxYz"),
+ lowercase("abcdefghijkABCDEFGHIJK"),
+ lowercase("HIJKLMNOPQRhijklmnopqr"),
+ lowercase(substring("ABCDEFghIJKLMnopQRSTuvwxYZ01234",0)),
+ lowercase("A33B2CD1EF78GHijk123LMNopqrstUVW3x2y01035Z")]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.1.ddl.aql
new file mode 100644
index 0000000..8791da7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Test case Name : toLowerCas03.aql
+ * Description : Test lowercase(string) function
+ * : This test case covers Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+// Create internal dataset, insert string data and pass the string attribute to lowercase function, and verify results.
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type TestType as {
+name:string
+}
+
+create dataset testds(TestType) primary key name;
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.2.update.aql
new file mode 100644
index 0000000..dbb0e70
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.2.update.aql
@@ -0,0 +1,26 @@
+/*
+ * Test case Name : toLowerCas03.aql
+ * Description : Test lowercase(string) function
+ * : This test case covers Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+// Create internal dataset, insert string data and pass the string attribute to lowercase function, and verify results.
+
+use dataverse test;
+
+insert into dataset testds({"name":"Maradona"});
+insert into dataset testds({"name":"Pele"});
+insert into dataset testds({"name":"Roberto Baggio"});
+insert into dataset testds({"name":"Beckham David"});
+insert into dataset testds({"name":"Rooney"});
+insert into dataset testds({"name":"Ronaldinho"});
+insert into dataset testds({"name":"Ronaldo"});
+insert into dataset testds({"name":"Zinadine Zidane"});
+insert into dataset testds({"name":"Cristiano Ronaldo"});
+insert into dataset testds({"name":"Messi"});
+insert into dataset testds({"name":"Tevez"});
+insert into dataset testds({"name":"Henry"});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.3.query.aql
new file mode 100644
index 0000000..94743a7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase03/toLowerCase03.3.query.aql
@@ -0,0 +1,16 @@
+/*
+ * Test case Name : toLowerCas03.aql
+ * Description : Test lowercase(string) function
+ * : This test case covers Positive tests
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+
+// Create internal dataset, insert string data and pass the string attribute to lowercase function, and verify results.
+
+use dataverse test;
+
+for $l in dataset('testds')
+order by $l.name
+return lowercase($l.name)
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.1.ddl.aql
new file mode 100644
index 0000000..48d52db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Test case Name : toLowerCas04.aql
+ * Description : Test lowercase(string) function
+ * : Convert all upper case english alphabets A-Z to lower case a-z
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.2.update.aql
new file mode 100644
index 0000000..48d52db
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Test case Name : toLowerCas04.aql
+ * Description : Test lowercase(string) function
+ * : Convert all upper case english alphabets A-Z to lower case a-z
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.3.query.aql
new file mode 100644
index 0000000..3b4ec60
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/string/toLowerCase04/toLowerCase04.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Test case Name : toLowerCas04.aql
+ * Description : Test lowercase(string) function
+ * : Convert all upper case english alphabets A-Z to lower case a-z
+ * Success : Yes
+ * Date : 19th April 2012
+ */
+
+for $a in[lowercase(codepoint-to-string([0065,0066,0067,0068,0069,0070,0071,0072,0073,0074,0075,0076,0077,0078,0079,0080,0081,0082,0083,0084,0085,0086,0087,0088,0089,0090])),lowercase(string-concat(["ABCDEFGHIJKLMNOP","QRSTUVWXYZ"]))]
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/01.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01.aql
deleted file mode 100644
index a6083b1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/01.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_01.adm";
-
-for $l in subset-collection([1], 0, 1)
-return $l
-/*
-output:
-1
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.3.query.aql
new file mode 100644
index 0000000..05612a3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/01/01.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $l in subset-collection([1], 0, 1)
+return $l
+/*
+output:
+1
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/02.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02.aql
deleted file mode 100644
index 8069ee5..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/02.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_02.adm";
-
-for $l in subset-collection([1, 2, 3, 4], 1, 2)
-return $l
-/*
-output:
-2
-3
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.3.query.aql
new file mode 100644
index 0000000..14b3e4e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/02/02.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+for $l in subset-collection([1, 2, 3, 4], 1, 2)
+return $l
+/*
+output:
+2
+3
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/03.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03.aql
deleted file mode 100644
index 17b54d0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/03.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_03.adm";
-
-for $l in subset-collection([1, 2, 3, 4], 0, 0)
-return $l
-/*
-output:
-EMPTY
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.3.query.aql
new file mode 100644
index 0000000..248bff3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/03/03.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $l in subset-collection([1, 2, 3, 4], 0, 0)
+return $l
+/*
+output:
+EMPTY
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/04.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04.aql
deleted file mode 100644
index 97babb9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/04.aql
+++ /dev/null
@@ -1,12 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_04.adm";
-
-for $l in [1]
-return subset-collection([1, 2, 3, 4], 1, 2)
-/*
-edu.uci.ics.asterix.common.exceptions.AsterixException: Trying to create an aggregate from a scalar function descriptor. (fid=subset-collection@3)
- at edu.uci.ics.asterix.algebra.expressions.FunctionCallExpression.createEvaluatorFactory(FunctionCallExpression.java:85)
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.3.query.aql
new file mode 100644
index 0000000..0fde28a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/04/04.3.query.aql
@@ -0,0 +1,8 @@
+use dataverse test;
+
+for $l in [1]
+return subset-collection([1, 2, 3, 4], 1, 2)
+/*
+edu.uci.ics.asterix.common.exceptions.AsterixException: Trying to create an aggregate from a scalar function descriptor. (fid=subset-collection@3)
+ at edu.uci.ics.asterix.algebra.expressions.FunctionCallExpression.createEvaluatorFactory(FunctionCallExpression.java:85)
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/05.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05.aql
deleted file mode 100644
index 8be1211..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/05.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_05.adm";
-
-for $l in subset-collection(['a', 'b', 'c', 'd'], 1, 2)
-return $l
-/*
-output:
-"b"
-"c"
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.3.query.aql
new file mode 100644
index 0000000..2403754
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/05/05.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+for $l in subset-collection(['a', 'b', 'c', 'd'], 1, 2)
+return $l
+/*
+output:
+"b"
+"c"
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/06.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06.aql
deleted file mode 100644
index 1569d5a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/06.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_06.adm";
-
-for $l in subset-collection([1, 2, 3, 4], 2, 2)
-return $l
-/*
-output:
-3
-4
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.3.query.aql
new file mode 100644
index 0000000..c8e78af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/06/06.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+for $l in subset-collection([1, 2, 3, 4], 2, 2)
+return $l
+/*
+output:
+3
+4
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/07.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07.aql
deleted file mode 100644
index 49a9d6a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/subset-collection/07.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/subset-collection_07.adm";
-
-for $l in subset-collection([1, 2, 3, 4], 2, 10)
-return $l
-/*
-output:
-3
-4
-*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.3.query.aql
new file mode 100644
index 0000000..5166adf
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/subset-collection/07/07.3.query.aql
@@ -0,0 +1,9 @@
+use dataverse test;
+
+for $l in subset-collection([1, 2, 3, 4], 2, 10)
+return $l
+/*
+output:
+3
+4
+*/
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.1.ddl.aql
new file mode 100644
index 0000000..e6a3879
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.1.ddl.aql
@@ -0,0 +1,2 @@
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.3.query.aql
new file mode 100644
index 0000000..2586d2a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/accessors/accessors.3.query.aql
@@ -0,0 +1,12 @@
+use dataverse test;
+
+let $c1 := date("2010-10-30")
+let $c2 := datetime("1987-11-19T23:49:23.938")
+let $c3 := date("-1987-11-19")
+let $c4 := date("09280329")
+let $c5 := datetime("19371229T20030628")
+let $c6 := time("12:23:34.930+07:00")
+let $c7 := string("-0003-01-09T23:12:12.39-07:00")
+let $c8 := duration("P3Y73M632DT49H743M3948.94S")
+
+return {"year1": year($c1), "year2": year($c2), "year3": year($c3), "year4": year($c4), "year5": year($c5), "year6": year($c7), "year7": year($c8), "month1": month($c1), "month2": month($c2), "month3": month($c3), "month4": month($c4), "month5": month($c5), "month6": month($c8), "day1": day($c1), "day2": day($c2), "day3": day($c3), "day4": day($c4), "day5": day($c5), "day6": day($c8), "hour1": hour($c2), "hour2": hour($c5), "hour3": hour($c6), "hour4": hour($c8), "min1": minute($c2), "min2": minute($c5), "min3": minute($c6), "min4": minute($c8), "second1": second($c2), "second2": second($c5), "second3": second($c6), "second4": second($c8), "ms1": millisecond($c2), "ms2": millisecond($c5), "ms3": millisecond($c6), "ms4": millisecond($c8)}
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.1.ddl.aql
new file mode 100644
index 0000000..5224165
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Check the adjust-timezone functions
+ * Expected Result : Success
+ * Date : 15th Oct, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.3.query.aql
new file mode 100644
index 0000000..a3959b0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/adjust_timezone/adjust_timezone.3.query.aql
@@ -0,0 +1,7 @@
+use dataverse test;
+
+let $t1 := time("20:15:10.327")
+let $dt1 := datetime("2010-10-23T01:12:13.329Z")
+let $s1 := adjust-time-for-timezone($t1, "+0800")
+let $s2 := adjust-datetime-for-timezone($dt1, "-0615")
+return { "string1" : $s1, "string2" : $s2 }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.1.ddl.aql
new file mode 100644
index 0000000..7a26995
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Check the calendar-duration functions
+ * Expected Result : Success
+ * Date : 15th Oct, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.3.query.aql
new file mode 100644
index 0000000..cbf4b7f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/calendar_duration/calendar_duration.3.query.aql
@@ -0,0 +1,42 @@
+use dataverse test;
+
+let $t1 := datetime("1987-11-19T23:49:23.938")
+let $t2 := date("-1328-10-23")
+let $dr1 := duration("P7382DT39283M3921.329S")
+let $dr2 := duration("-PT63H398212M3219.328S")
+let $dr3 := duration("P1Y90M")
+let $dr4 := duration("-P3Y89M4089DT47382.983S")
+let $cdr1 := calendar-duration-from-datetime($t1, $dr1)
+let $dt1 := add-datetime-duration($t1, $dr1)
+let $dtt1 := add-datetime-duration($t1, $cdr1)
+let $c1 := $dt1 = $dtt1
+let $cdr2 := calendar-duration-from-datetime($t1, $dr2)
+let $dt2 := add-datetime-duration($t1, $dr2)
+let $dtt2 := add-datetime-duration($t1, $cdr2)
+let $c2 := $dt2 = $dtt2
+let $cdr3 := calendar-duration-from-datetime($t1, $dr3)
+let $dt3 := add-datetime-duration($t1, $dr3)
+let $dtt3 := add-datetime-duration($t1, $cdr3)
+let $c3 := $dt3 = $dtt3
+let $cdr4 := calendar-duration-from-datetime($t1, $dr4)
+let $dt4 := add-datetime-duration($t1, $dr4)
+let $dtt4 := add-datetime-duration($t1, $cdr4)
+let $c4 := $dt4 = $dtt4
+let $cdr5 := calendar-duration-from-date($t2, $dr1)
+let $dt5 := add-date-duration($t2, $dr1)
+let $dtt5 := add-date-duration($t2, $cdr5)
+let $c5 := $dt5 = $dtt5
+let $cdr6 := calendar-duration-from-date($t2, $dr2)
+let $dt6 := add-date-duration($t2, $dr2)
+let $dtt6 := add-date-duration($t2, $cdr6)
+let $c6 := $dt6 = $dtt6
+let $cdr7 := calendar-duration-from-date($t2, $dr3)
+let $dt7 := add-date-duration($t2, $dr3)
+let $dtt7 := add-date-duration($t2, $cdr7)
+let $c7 := $dt7 = $dtt7
+let $cdr8 := calendar-duration-from-date($t2, $dr4)
+let $dt8 := add-date-duration($t2, $dr4)
+let $dtt8 := add-date-duration($t2, $cdr8)
+let $c8 := $dt8 = $dtt8
+
+return { "cduration1":$cdr1, "c1":$c1, "cduration2":$cdr2, "c2":$c2, "cduration3":$cdr3, "c3":$c3, "cduration4":$cdr4, "c4":$c4, "cduration5":$cdr5, "c5":$c5, "cduration6":$cdr6, "c6":$c6, "cduration7":$cdr7, "c7":$c7, "cduration8":$cdr8, "c8":$c8 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.1.ddl.aql
new file mode 100644
index 0000000..5f91b57
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Check temporal functions for date type
+ * Expected Result : Success
+ * Date : 24th Sep, 2012
+ */
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.3.query.aql
new file mode 100644
index 0000000..93e1366
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.3.query.aql
@@ -0,0 +1,17 @@
+use dataverse test;
+
+let $d1 := date-from-unix-time-in-days(15600)
+let $dt1 := datetime("1327-12-02T23:35:49.938Z")
+let $d2 := date-from-datetime($dt1)
+let $dt2 := datetime("2012-10-11T02:30:23+03:00")
+let $d3 := date-from-datetime($dt2)
+let $dr1 := duration("-P2Y1M90DT30H")
+let $d4 := add-date-duration($d1, $dr1)
+let $c1 := $d1 = add-date-duration($d4, subtract-date($d1, $d4))
+let $dr2 := duration("P300Y900MT360000M")
+let $d5 := add-date-duration($d2, $dr2)
+let $c2 := $d2 = add-date-duration($d5, subtract-date($d2, $d5))
+let $dr3 := subtract-date($d5, $d2)
+let $dr4 := subtract-date($d4, $d1)
+
+return { "date1" : $d1, "date2" : $d2, "date3" : $d3, "date4" : $d4, "date5" : $d5, "duration1" : $dr3, "duration2" : $dr4, "c1" : $c1, "c2" : $c2 }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.1.ddl.aql
new file mode 100644
index 0000000..dd6d579
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Check temporal functions for datetime
+ * Expected Result : Success
+ * Date : 24th Sep, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql
new file mode 100644
index 0000000..6f3dde3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse test;
+
+let $dt1 := datetime-from-unix-time-in-ms(956007429)
+let $d1 := date("1327-12-02")
+let $t1 := time("15:35:49.938-0800")
+let $dt2 := datetime-from-date-time($d1, $t1)
+let $dr1 := subtract-datetime($dt2, $dt1)
+let $dt3 := add-datetime-duration($dt1, $dr1)
+let $c1 := $dt1 = add-datetime-duration($dt3, subtract-datetime($dt1, $dt3))
+
+return { "datetime1" : $dt1, "datetime2" : $dt2, "datetime3" : $dt3, "duration1" : $dr1, "c1" : $c1 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.1.ddl.aql
new file mode 100644
index 0000000..1c36625
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Test case name: date-insert.aql
+ * Description: verify insertion operation for date type
+ * Expected result: success
+ */
+
+drop dataverse testdvt if exists;
+create dataverse testdvt;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.2.update.aql
new file mode 100644
index 0000000..547e780
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse testdvt;
+
+create external dataset testds(testtype)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/temporal/temporalData.txt"),("format"="delimited-text"),("delimiter"="|"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.3.query.aql
new file mode 100644
index 0000000..46eaa57
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_delimited_ds/insert_from_delimited_ds.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse testdvt;
+
+for $r in dataset("testds")
+return {"date": $r.dateField, "time": $r.timeField, "datetime": $r.datetimeField, "duration": $r.durationField }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.1.ddl.aql
new file mode 100644
index 0000000..0338aef
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.1.ddl.aql
@@ -0,0 +1,22 @@
+/*
+ * Test case name: date-insert.aql
+ * Description: verify insertion operation for date type
+ * Expected result: success
+ */
+
+drop dataverse testdvt if exists;
+create dataverse testdvt;
+use dataverse testdvt;
+
+create type testtype as open {
+ id: string,
+ dateField: date?,
+ timeField: time?,
+ datetimeField: datetime?,
+ durationField: duration?,
+ intervalField: interval?
+}
+
+create external dataset testds(testtype)
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/temporal/temporalData.json"),("format"="adm"));
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.3.query.aql
new file mode 100644
index 0000000..2defafc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/insert_from_ext_ds/insert_from_ext_ds.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse testdvt;
+
+for $r in dataset("testds")
+return {"date": $r.dateField, "time": $r.timeField, "datetime": $r.datetimeField, "duration": $r.durationField, "interval": $r.intervalField }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.1.ddl.aql
new file mode 100644
index 0000000..4c240c6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Check temporal functions for interval
+ * Expected Result : Success
+ * Date : 2nd Nov, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.3.query.aql
new file mode 100644
index 0000000..1c773bc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/interval_functions/interval_functions.3.query.aql
@@ -0,0 +1,49 @@
+use dataverse test;
+
+let $itv1 := interval-from-date("2010-10-30", "2010-12-21")
+let $itv2 := interval-from-date("2011-10-30", "2012-10-21")
+let $itv3 := interval-from-date("2010-12-21", "2013-01-01")
+let $blnBefore1 := interval-before($itv1, $itv2)
+let $blnAfter1 := interval-after($itv2, $itv1)
+let $blnBefore2 := interval-before($itv1, $itv3)
+let $blnAfter2 := interval-after($itv3, $itv1)
+
+let $itv4 := interval-from-datetime("2012-06-26T01:01:01.111", "2012-07-27T02:02:02.222")
+let $itv5 := interval-from-datetime("20120727T020202222", "2013-08-08T03:03:03.333")
+let $itv6 := interval-from-datetime("19000707T020202222", "2013-08-07T03:03:03.333")
+let $blnMeet1 := interval-meets($itv4, $itv5)
+let $blnMetBy1 := interval-met-by($itv5, $itv4)
+let $blnMeet2 := interval-meets($itv6, $itv4)
+let $blnMetBy2 := interval-met-by($itv6, $itv4)
+
+let $itv7 := interval-from-time("12:32:38", "20:29:20")
+let $itv8 := interval-from-time("17:48:19", "22:19:49")
+let $itv9 := interval-from-time("01:32:49", "17:48:19")
+let $blnOverlaps1 := interval-overlaps($itv7, $itv8)
+let $blnOverlapped1 := interval-overlapped-by($itv8, $itv7)
+let $blnOverlaps2 := interval-overlaps($itv9, $itv8)
+let $blnOverlapped2 := interval-overlapped-by($itv8, $itv9)
+let $blnOverlap1 := overlap($itv9, $itv7)
+let $blnOverlap2 := overlap($itv9, $itv8)
+
+let $itv10 := interval-from-date("2010-10-30", "2010-11-30")
+let $blnStarts1 := interval-starts($itv10, $itv1)
+let $blnStarts2 := interval-starts($itv10, $itv2)
+let $blnStartedBy1 := interval-started-by($itv1, $itv10)
+let $blnStartedBy2 := interval-started-by($itv10, $itv2)
+
+let $itv10 := interval-from-datetime("19000707T020202222", "2013-08-07T03:03:03.333")
+let $itv11 := interval-from-datetime("19990707T020202222", "2013-08-07T03:03:03.333")
+let $itv12 := interval-from-datetime("-19990707T020202222", "2013-08-07T03:03:03.333")
+let $blnCovers1 := interval-covers($itv10, $itv11)
+let $blnCovers2 := interval-covers($itv10, $itv12)
+let $blnCoveredBy1 := interval-covered-by($itv11, $itv10)
+let $blnCoveredBy2 := interval-covered-by($itv12, $itv10)
+
+let $itv11 := interval-from-time("19:00:00.009", "20:29:20.000")
+let $blnEnds1 := interval-ends($itv11, $itv7)
+let $blnEnds2 := interval-ends($itv11, $itv8)
+let $blnEndedBy1 := interval-ended-by($itv7, $itv11)
+let $blnEndedBy2 := interval-ended-by($itv8, $itv11)
+
+return { "before1" : $blnBefore1, "before2" : $blnBefore2, "after1" : $blnAfter1, "after2" : $blnAfter2, "meet1" : $blnMeet1, "meet2" : $blnMeet2, "metby1" : $blnMetBy1, "metby2" : $blnMetBy2, "overlaps1" : $blnOverlaps1, "overlaps2" : $blnOverlaps2, "overlapped1" : $blnOverlapped1, "overlapped2" : $blnOverlapped2, "overlap1" : $blnOverlap1, "overlap2" : $blnOverlap2, "starts1" : $blnStarts1, "starts2" : $blnStarts2, "startedby1" : $blnStartedBy1, "startedby2" : $blnStartedBy2, "covers1" : $blnCovers1, "covers2" : $blnCovers2, "coveredby1" : $blnCoveredBy1, "coveredby2" : $blnCoveredBy2, "ends1" : $blnEnds1, "ends2" : $blnEnds2, "endedby1" : $blnEndedBy1, "endedby2" : $blnEndedBy2 }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.1.ddl.aql
new file mode 100644
index 0000000..36c26ae
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.1.ddl.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Check temporal functions for time
+ * Expected Result : Success
+ * Date : 24th Sep, 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.3.query.aql
new file mode 100644
index 0000000..ca25b8b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/time_functions/time_functions.3.query.aql
@@ -0,0 +1,20 @@
+use dataverse test;
+
+let $t1 := time-from-unix-time-in-ms(1560074)
+let $dt1 := datetime("1327-12-02T23:35:49.938Z")
+let $t2 := time-from-datetime($dt1)
+let $dt2 := datetime("2012-10-11T02:30:23+03:00")
+let $t3 := time-from-datetime($dt2)
+let $dr1 := duration("-PT30H")
+let $t4 := add-time-duration($t1, $dr1)
+let $c1 := $t1 = add-time-duration($t4, subtract-time($t1, $t4))
+let $dr2 := duration("PT36M")
+let $t5 := add-time-duration($t2, $dr2)
+let $c2 := $t2 = add-time-duration($t5, subtract-time($t2, $t5))
+let $dr3 := subtract-time($t5, $t2)
+let $dr4 := subtract-time($t4, $t1)
+let $ct := current-time()
+let $cd := current-date()
+let $cdt := current-datetime()
+
+return { "time1" : $t1, "time2" : $t2, "time3" : $t3, "time4" : $t4, "time5" : $t5, "duration1" : $dr3, "duration2" : $dr4, "c1" : $c1, "c2" : $c2 }
diff --git a/asterix-app/src/test/resources/runtimets/queries/tid_01.aql b/asterix-app/src/test/resources/runtimets/queries/tid_01.aql
deleted file mode 100644
index 3cd8396..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tid_01.aql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-
-write output to nc1:"rttest/tid_01.adm";
-
-for $x at $i in ["a","b","c"]
-return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01.aql
deleted file mode 100644
index d360853..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_counthashed-gram-tokens_01.adm";
-
-let $txt := "Jürgen S. Generic's Car"
-let $tokens := counthashed-gram-tokens($txt, 3, false)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.query.aql
new file mode 100644
index 0000000..7b2148c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Jürgen S. Generic's Car"
+let $tokens := counthashed-gram-tokens($txt, 3, false)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02.aql
deleted file mode 100644
index cb5240d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_counthashed-gram-tokens_02.adm";
-
-let $txt := "Jürgen S. Generic's Car"
-let $tokens := counthashed-gram-tokens($txt, 3, true)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.query.aql
new file mode 100644
index 0000000..f871047
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Jürgen S. Generic's Car"
+let $tokens := counthashed-gram-tokens($txt, 3, true)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01.aql
deleted file mode 100644
index 99c7b1d..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_counthashed-word-tokens_01.adm";
-
-let $txt := "Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen."
-let $tokens := counthashed-word-tokens($txt)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.query.aql
new file mode 100644
index 0000000..3d44cfb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen."
+let $tokens := counthashed-word-tokens($txt)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01.aql
deleted file mode 100644
index 6be0066..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_gram-tokens_01.adm";
-
-let $txt := "Jürgen S. Generic's Car"
-let $tokens := gram-tokens($txt, 3, false)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.3.query.aql
new file mode 100644
index 0000000..ae3a339
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_01/gram-tokens_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Jürgen S. Generic's Car"
+let $tokens := gram-tokens($txt, 3, false)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02.aql
deleted file mode 100644
index adc34a6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_gram-tokens_02.adm";
-
-let $txt := "Jürgen S. Generic's Car"
-let $tokens := gram-tokens($txt, 3, true)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.3.query.aql
new file mode 100644
index 0000000..1fa90ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/gram-tokens_02/gram-tokens_02.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Jürgen S. Generic's Car"
+let $tokens := gram-tokens($txt, 3, true)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01.aql
deleted file mode 100644
index 73a1a77..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_hashed-gram-tokens_01.adm";
-
-let $txt := "Jürgen S. Generic's Car"
-let $tokens := hashed-gram-tokens($txt, 3, false)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.query.aql
new file mode 100644
index 0000000..694ef83
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Jürgen S. Generic's Car"
+let $tokens := hashed-gram-tokens($txt, 3, false)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02.aql
deleted file mode 100644
index 854398f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_hashed-gram-tokens_02.adm";
-
-let $txt := "Jürgen S. Generic's Car"
-let $tokens := hashed-gram-tokens($txt, 3, true)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.query.aql
new file mode 100644
index 0000000..8e46d4a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Jürgen S. Generic's Car"
+let $tokens := hashed-gram-tokens($txt, 3, true)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01.aql
deleted file mode 100644
index c4d2490..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_hashed-word-tokens_01.adm";
-
-let $txt := "Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen."
-let $tokens := hashed-word-tokens($txt)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.query.aql
new file mode 100644
index 0000000..62d8387
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen."
+let $tokens := hashed-word-tokens($txt)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01.aql
deleted file mode 100644
index c6bb819..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_word-tokens_01.adm";
-
-let $txt := "Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen."
-let $tokens := word-tokens($txt)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.3.query.aql
new file mode 100644
index 0000000..dc9fa07
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_01/word-tokens_01.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen."
+let $tokens := word-tokens($txt)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02.aql
deleted file mode 100644
index 75b816c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/tokenizers_word-tokens_02.adm";
-
-let $txt := "ΩΣ"
-let $tokens := word-tokens($txt)
-for $token in $tokens
-return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.1.ddl.aql
new file mode 100644
index 0000000..a5de0dd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.3.query.aql
new file mode 100644
index 0000000..3e577b2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tokenizers/word-tokens_02/word-tokens_02.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse test;
+
+let $txt := "ΩΣ"
+let $tokens := word-tokens($txt)
+for $token in $tokens
+return $token
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql
deleted file mode 100644
index 278104b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql
+++ /dev/null
@@ -1,44 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_distinct_by.adm";
-
-for $l in dataset('LineItem')
-distinct by $l.l_returnflag, $l.l_linestatus, $l.l_shipmode
-order by $l.l_returnflag, $l.l_linestatus, $l.l_shipmode
-return {
-"l_returnflag": $l.l_returnflag,
-"l_linestatus": $l.l_linestatus,
-"l_shipmode": $l.l_shipmode
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.1.ddl.aql
new file mode 100644
index 0000000..acd6728
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.2.update.aql
new file mode 100644
index 0000000..f781e6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.3.query.aql
new file mode 100644
index 0000000..2543d7b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by/distinct_by.3.query.aql
@@ -0,0 +1,10 @@
+use dataverse tpch;
+
+for $l in dataset('LineItem')
+distinct by $l.l_returnflag, $l.l_linestatus, $l.l_shipmode
+order by $l.l_returnflag, $l.l_linestatus, $l.l_shipmode
+return {
+"l_returnflag": $l.l_returnflag,
+"l_linestatus": $l.l_linestatus,
+"l_shipmode": $l.l_shipmode
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql
deleted file mode 100644
index d0607bf..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql
+++ /dev/null
@@ -1,26 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-use dataverse tpch;
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset Regions_group_no_agg(RegionType)
- partitioned by key r_regionkey on group1;
-
-write output to nc1:"rttest/tpch_group_no_agg.adm";
-
-load dataset Regions_group_no_agg
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-for $r in dataset('Regions_group_no_agg')
-group by $name := $r.r_name with $r
-order by $name
-return $name
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.1.ddl.aql
new file mode 100644
index 0000000..f415b38
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.1.ddl.aql
@@ -0,0 +1,14 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create dataset Regions_group_no_agg(RegionType)
+ primary key r_regionkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.2.update.aql
new file mode 100644
index 0000000..3f37bfa
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.2.update.aql
@@ -0,0 +1,5 @@
+use dataverse tpch;
+
+load dataset Regions_group_no_agg
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.3.query.aql
new file mode 100644
index 0000000..284d168
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg/group_no_agg.3.query.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+for $r in dataset('Regions_group_no_agg')
+group by $name := $r.r_name with $r
+order by $name
+return $name
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql
deleted file mode 100644
index 7dea9bb..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql
+++ /dev/null
@@ -1,198 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q10_returned_item.adm";
-
-
-for $locn in (
-for $l in dataset('LineItem')
-for $ocn in (
- for $o in dataset('Orders')
- for $c in dataset('Customer')
- where $c.c_custkey = $o.o_custkey and $o.o_orderdate >= '1993-10-01' and $o.o_orderdate < '1994-01-01'
- for $n in dataset('Nation')
- where $c.c_nationkey = $n.n_nationkey
- return {
- "c_custkey": $c.c_custkey,
- "c_name": $c.c_name,
- "c_acctbal": $c.c_acctbal,
- "n_name": $n.n_name,
- "c_address": $c.c_address,
- "c_phone": $c.c_phone,
- "c_comment": $c.c_comment,
- "o_orderkey": $o.o_orderkey
- }
-)
-where
- $l.l_orderkey = $ocn.o_orderkey and $l.l_returnflag = 'R'
- return {
- "c_custkey": $ocn.c_custkey,
- "c_name": $ocn.c_name,
- "c_acctbal": $ocn.c_acctbal,
- "n_name": $ocn.n_name,
- "c_address": $ocn.c_address,
- "c_phone": $ocn.c_phone,
- "c_comment": $ocn.c_comment,
- "l_extendedprice": $l.l_extendedprice,
- "l_discount": $l.l_discount
- }
-)
-group by $c_custkey:=$locn.c_custkey,
- $c_name:=$locn.c_name,
- $c_acctbal:=$locn.c_acctbal, $c_phone:=$locn.c_phone,
- $n_name:=$locn.n_name, $c_address:=$locn.c_address, $c_comment:=$locn.c_comment
- with $locn
-let $revenue := sum(for $i in $locn return $i.l_extendedprice * (1 - $i.l_discount))
-order by $revenue desc
-limit 20
-return {
- "c_custkey": $c_custkey,
- "c_name": $c_name,
- "revenue": $revenue,
- "c_acctbal": $c_acctbal,
- "n_name": $n_name,
- "c_address": $c_address,
- "c_phone": $c_phone,
- "c_comment": $c_comment
-}
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.3.query.aql
new file mode 100644
index 0000000..c867b31
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item/q10_returned_item.3.query.aql
@@ -0,0 +1,55 @@
+use dataverse tpch;
+
+for $locn in (
+for $l in dataset('LineItem')
+for $ocn in (
+ for $o in dataset('Orders')
+ for $c in dataset('Customer')
+ where $c.c_custkey = $o.o_custkey and $o.o_orderdate >= '1993-10-01' and $o.o_orderdate < '1994-01-01'
+ for $n in dataset('Nation')
+ where $c.c_nationkey = $n.n_nationkey
+ return {
+ "c_custkey": $c.c_custkey,
+ "c_name": $c.c_name,
+ "c_acctbal": $c.c_acctbal,
+ "n_name": $n.n_name,
+ "c_address": $c.c_address,
+ "c_phone": $c.c_phone,
+ "c_comment": $c.c_comment,
+ "o_orderkey": $o.o_orderkey
+ }
+)
+where
+ $l.l_orderkey = $ocn.o_orderkey and $l.l_returnflag = 'R'
+ return {
+ "c_custkey": $ocn.c_custkey,
+ "c_name": $ocn.c_name,
+ "c_acctbal": $ocn.c_acctbal,
+ "n_name": $ocn.n_name,
+ "c_address": $ocn.c_address,
+ "c_phone": $ocn.c_phone,
+ "c_comment": $ocn.c_comment,
+ "l_extendedprice": $l.l_extendedprice,
+ "l_discount": $l.l_discount
+ }
+)
+group by $c_custkey:=$locn.c_custkey,
+ $c_name:=$locn.c_name,
+ $c_acctbal:=$locn.c_acctbal, $c_phone:=$locn.c_phone,
+ $n_name:=$locn.n_name, $c_address:=$locn.c_address, $c_comment:=$locn.c_comment
+ with $locn
+let $revenue := sum(for $i in $locn return $i.l_extendedprice * (1 - $i.l_discount))
+order by $revenue desc
+limit 20
+return {
+ "c_custkey": $c_custkey,
+ "c_name": $c_name,
+ "revenue": $revenue,
+ "c_acctbal": $c_acctbal,
+ "n_name": $n_name,
+ "c_address": $c_address,
+ "c_phone": $c_phone,
+ "c_comment": $c_comment
+}
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.1.ddl.aql
new file mode 100644
index 0000000..4b4967f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int64,
+ l_partkey: int64,
+ l_suppkey: int64,
+ l_linenumber: int64,
+ l_quantity: int64,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int64,
+ o_custkey: int64,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int64,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int64,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int64,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int64,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int64,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int64,
+ n_name: string,
+ n_regionkey: int64,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int64,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int64,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int64,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int64,
+ ps_suppkey: int64,
+ ps_availqty: int64,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.3.query.aql
new file mode 100644
index 0000000..c867b31
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item_int64/q10_returned_item_int64.3.query.aql
@@ -0,0 +1,55 @@
+use dataverse tpch;
+
+for $locn in (
+for $l in dataset('LineItem')
+for $ocn in (
+ for $o in dataset('Orders')
+ for $c in dataset('Customer')
+ where $c.c_custkey = $o.o_custkey and $o.o_orderdate >= '1993-10-01' and $o.o_orderdate < '1994-01-01'
+ for $n in dataset('Nation')
+ where $c.c_nationkey = $n.n_nationkey
+ return {
+ "c_custkey": $c.c_custkey,
+ "c_name": $c.c_name,
+ "c_acctbal": $c.c_acctbal,
+ "n_name": $n.n_name,
+ "c_address": $c.c_address,
+ "c_phone": $c.c_phone,
+ "c_comment": $c.c_comment,
+ "o_orderkey": $o.o_orderkey
+ }
+)
+where
+ $l.l_orderkey = $ocn.o_orderkey and $l.l_returnflag = 'R'
+ return {
+ "c_custkey": $ocn.c_custkey,
+ "c_name": $ocn.c_name,
+ "c_acctbal": $ocn.c_acctbal,
+ "n_name": $ocn.n_name,
+ "c_address": $ocn.c_address,
+ "c_phone": $ocn.c_phone,
+ "c_comment": $ocn.c_comment,
+ "l_extendedprice": $l.l_extendedprice,
+ "l_discount": $l.l_discount
+ }
+)
+group by $c_custkey:=$locn.c_custkey,
+ $c_name:=$locn.c_name,
+ $c_acctbal:=$locn.c_acctbal, $c_phone:=$locn.c_phone,
+ $n_name:=$locn.n_name, $c_address:=$locn.c_address, $c_comment:=$locn.c_comment
+ with $locn
+let $revenue := sum(for $i in $locn return $i.l_extendedprice * (1 - $i.l_discount))
+order by $revenue desc
+limit 20
+return {
+ "c_custkey": $c_custkey,
+ "c_name": $c_name,
+ "revenue": $revenue,
+ "c_acctbal": $c_acctbal,
+ "n_name": $n_name,
+ "c_address": $c_address,
+ "c_phone": $c_phone,
+ "c_comment": $c_comment
+}
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql
deleted file mode 100644
index 5545608..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql
+++ /dev/null
@@ -1,173 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q11_important_stock.adm";
-
-let $sum := sum (
-for $ps in dataset('Partsupp')
-for $sn in (
- for $s in dataset('Supplier')
- for $n in dataset('Nation')
- where $s.s_nationkey = $n.n_nationkey
- return {"s_suppkey": $s.s_suppkey}
- )
-where $ps.ps_suppkey = $sn.s_suppkey
-return $ps.ps_supplycost * $ps.ps_availqty)
-
-for $t1 in
-(
-for $ps in dataset('Partsupp')
-for $sn in (
- for $s in dataset('Supplier')
- for $n in dataset('Nation')
- where $s.s_nationkey = $n.n_nationkey
- return {"s_suppkey": $s.s_suppkey}
-)
-where $ps.ps_suppkey = $sn.s_suppkey
-group by $ps_partkey := $ps.ps_partkey with $ps
-return {"ps_partkey": $ps_partkey,
-"part_value": sum(for $i in $ps return $i.ps_supplycost * $i.ps_availqty)}
-)
-
-where $t1.part_value > $sum * 0.00001
-order by $t1.part_value desc
-return {"partkey": $t1.ps_partkey, "part_value":$t1.part_value}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.2.update.aql
new file mode 100644
index 0000000..b23ff7f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.2.update.aql
@@ -0,0 +1,33 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.3.query.aql
new file mode 100644
index 0000000..42a86d1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock/q11_important_stock.3.query.aql
@@ -0,0 +1,31 @@
+use dataverse tpch;
+
+let $sum := sum (
+for $ps in dataset('Partsupp')
+for $sn in (
+ for $s in dataset('Supplier')
+ for $n in dataset('Nation')
+ where $s.s_nationkey = $n.n_nationkey
+ return {"s_suppkey": $s.s_suppkey}
+ )
+where $ps.ps_suppkey = $sn.s_suppkey
+return $ps.ps_supplycost * $ps.ps_availqty)
+
+for $t1 in
+(
+for $ps in dataset('Partsupp')
+for $sn in (
+ for $s in dataset('Supplier')
+ for $n in dataset('Nation')
+ where $s.s_nationkey = $n.n_nationkey
+ return {"s_suppkey": $s.s_suppkey}
+)
+where $ps.ps_suppkey = $sn.s_suppkey
+group by $ps_partkey := $ps.ps_partkey with $ps
+return {"ps_partkey": $ps_partkey,
+"part_value": sum(for $i in $ps return $i.ps_supplycost * $i.ps_availqty)}
+)
+
+where $t1.part_value > $sum * 0.00001
+order by $t1.part_value desc
+return {"partkey": $t1.ps_partkey, "part_value":$t1.part_value}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql
deleted file mode 100644
index ac87051..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql
+++ /dev/null
@@ -1,170 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q12_shipping.adm";
-
-for $l in dataset('LineItem')
-for $o in dataset('Orders')
-
-where
-$o.o_orderkey = $l.l_orderkey
-and $l.l_commitdate < $l.l_receiptdate
-and $l.l_shipdate < $l.l_commitdate
-and $l.l_receiptdate >= '1994-01-01'
-and $l.l_receiptdate < '1995-01-01'
-and ($l.l_shipmode = 'MAIL' or $l.l_shipmode = 'SHIP')
-
-group by $l_shipmode := $l.l_shipmode with $o
-order by $l_shipmode
-return {
-"l_shipmode": $l_shipmode,
-"high_line_count": sum(for $i in $o
- return switch-case( $i.o_orderpriority ='1-URGENT' or $i.o_orderpriority ='2-HIGH',
- true, 1,
- false, 0)),
-"low_line_count": sum(for $i in $o
- return switch-case( $i.o_orderpriority ='1-URGENT' or $i.o_orderpriority ='2-HIGH',
- true, 0,
- false, 1))
-}
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.3.query.aql
new file mode 100644
index 0000000..b6d4ab0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping/q12_shipping.3.query.aql
@@ -0,0 +1,28 @@
+use dataverse tpch;
+
+for $l in dataset('LineItem')
+for $o in dataset('Orders')
+
+where
+$o.o_orderkey = $l.l_orderkey
+and $l.l_commitdate < $l.l_receiptdate
+and $l.l_shipdate < $l.l_commitdate
+and $l.l_receiptdate >= '1994-01-01'
+and $l.l_receiptdate < '1995-01-01'
+and ($l.l_shipmode = 'MAIL' or $l.l_shipmode = 'SHIP')
+
+group by $l_shipmode := $l.l_shipmode with $o
+order by $l_shipmode
+return {
+"l_shipmode": $l_shipmode,
+"high_line_count": sum(for $i in $o
+ return switch-case( $i.o_orderpriority ='1-URGENT' or $i.o_orderpriority ='2-HIGH',
+ true, 1,
+ false, 0)),
+"low_line_count": sum(for $i in $o
+ return switch-case( $i.o_orderpriority ='1-URGENT' or $i.o_orderpriority ='2-HIGH',
+ true, 0,
+ false, 1))
+}
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql
deleted file mode 100644
index a33a716..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql
+++ /dev/null
@@ -1,168 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q13_customer_distribution.adm";
-
-for $gco in (
- for $co in
- (
- for $c in dataset('Customer')
- return
- {
- "c_custkey": $c.c_custkey,
- "o_orderkey_count": count(
- for $o in dataset('Orders')
- where $c.c_custkey = $o.o_custkey and not(like($o.o_comment,'%special%requests%'))
- return $o.o_orderkey)
- }
- )
- group by $c_custkey := $co.c_custkey with $co
- return{
- "c_custkey": $c_custkey, "c_count": sum(for $i in $co return $i.o_orderkey_count)
- }
-)
-
-group by $c_count := $gco.c_count with $gco
-let $custdist := count($gco)
-order by $custdist desc, $c_count desc
-return {"c_count": $c_count, "custdist": $custdist}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.3.query.aql
new file mode 100644
index 0000000..a75b9c9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution/q13_customer_distribution.3.query.aql
@@ -0,0 +1,26 @@
+use dataverse tpch;
+
+for $gco in (
+ for $co in
+ (
+ for $c in dataset('Customer')
+ return
+ {
+ "c_custkey": $c.c_custkey,
+ "o_orderkey_count": count(
+ for $o in dataset('Orders')
+ where $c.c_custkey = $o.o_custkey and not(like($o.o_comment,'%special%requests%'))
+ return $o.o_orderkey)
+ }
+ )
+ group by $c_custkey := $co.c_custkey with $co
+ return{
+ "c_custkey": $c_custkey, "c_count": sum(for $i in $co return $i.o_orderkey_count)
+ }
+)
+
+group by $c_count := $gco.c_count with $gco
+let $custdist := count($gco)
+order by $custdist desc, $c_count desc
+return {"c_count": $c_count, "custdist": $custdist}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql
deleted file mode 100644
index 9438746..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql
+++ /dev/null
@@ -1,154 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q14_promotion_effect.adm";
-
-for $l in dataset('LineItem')
-for $p in dataset('Part')
- where $l.l_partkey = $p.p_partkey and $l.l_shipdate >= '1995-09-01' and $l.l_shipdate < '1995-10-01'
-group by $t:=1 with $l, $p
-return 100.00 * sum( for $i in $l
- return switch-case(like($i.p_type, 'PROMO%'),
- true, $i.l_extendedprice*(1-$i.l_discount),
- false, 0.0)
- ) / sum( for $i in $l return $i.l_extendedprice * (1 - $i.l_discount))
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.3.query.aql
new file mode 100644
index 0000000..040e4ec
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect/q14_promotion_effect.3.query.aql
@@ -0,0 +1,11 @@
+use dataverse tpch;
+
+for $l in dataset('LineItem')
+for $p in dataset('Part')
+ where $l.l_partkey = $p.p_partkey and $l.l_shipdate >= '1995-09-01' and $l.l_shipdate < '1995-10-01'
+group by $t:=1 with $l, $p
+return 100.00 * sum( for $i in $l
+ return switch-case(like($i.p_type, 'PROMO%'),
+ true, $i.l_extendedprice*(1-$i.l_discount),
+ false, 0.0)
+ ) / sum( for $i in $l return $i.l_extendedprice * (1 - $i.l_discount))
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql
deleted file mode 100644
index 948f466..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql
+++ /dev/null
@@ -1,170 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q15_top_supplier.adm";
-
-declare function revenue(){
-for $l in dataset('LineItem')
-where $l.l_shipdate >= '1996-01-01' and $l.l_shipdate < '1996-04-01'
-group by $l_suppkey := $l.l_suppkey with $l
-return {
-"supplier_no": $l_suppkey,
-"total_revenue": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount))
-}
-}
-
-let $m := max(
- for $r2 in revenue()
- return $r2.total_revenue
-)
-
-for $s in dataset('Supplier')
-for $r in revenue()
- where $s.s_suppkey = $r.supplier_no and $r.total_revenue=$m
-return {
-"s_suppkey": $s.s_suppkey,
-"s_name": $s.s_name,
-"s_address": $s.s_address,
-"s_phone": $s.s_phone,
-"total_revenue": $r.total_revenue
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.3.query.aql
new file mode 100644
index 0000000..f61ceb5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier/q15_top_supplier.3.query.aql
@@ -0,0 +1,27 @@
+use dataverse tpch;
+
+declare function revenue(){
+for $l in dataset('LineItem')
+where $l.l_shipdate >= '1996-01-01' and $l.l_shipdate < '1996-04-01'
+group by $l_suppkey := $l.l_suppkey with $l
+return {
+"supplier_no": $l_suppkey,
+"total_revenue": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount))
+}
+}
+
+let $m := max(
+ for $r2 in revenue()
+ return $r2.total_revenue
+)
+
+for $s in dataset('Supplier')
+for $r in revenue()
+ where $s.s_suppkey = $r.supplier_no and $r.total_revenue=$m
+return {
+"s_suppkey": $s.s_suppkey,
+"s_name": $s.s_name,
+"s_address": $s.s_address,
+"s_phone": $s.s_phone,
+"total_revenue": $r.total_revenue
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql
deleted file mode 100644
index 5e337d4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql
+++ /dev/null
@@ -1,198 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-
-write output to nc1:"rttest/tpch_q16_parts_supplier_relationship.adm";
-
-declare function tmp(){
-for $psp in (
- for $ps in dataset('Partsupp')
- for $p in dataset('Part')
- where $p.p_partkey = $ps.ps_partkey and $p.p_brand != 'Brand#45'
- and not(like($p.p_type, 'MEDIUM POLISHED%'))
- return
- {
- "p_brand": $p.p_brand,
- "p_type": $p.p_type,
- "p_size": $p.p_size,
- "ps_suppkey": $ps.ps_suppkey
- }
-)
-for $s in dataset('Supplier')
- where $psp.ps_suppkey = $s.s_suppkey and not(like($s.s_comment, '%Customer%Complaints%'))
-return
-{
- "p_brand": $psp.p_brand,
- "p_type": $psp.p_type,
- "p_size": $psp.p_size,
- "ps_suppkey": $psp.ps_suppkey
-}
-}
-
-for $t2 in
-(
-for $t in tmp()
- where $t.p_size = 49 or $t.p_size = 14 or $t.p_size = 23 or
- $t.p_size = 45 or $t.p_size = 19 or $t.p_size = 3 or
- $t.p_size = 36 or $t.p_size = 9
-group by $p_brand1:= $t.p_brand, $p_type1 := $t.p_type,
- $p_size1:= $t.p_size, $ps_suppkey1:=$t.ps_suppkey with $t
-return
-{
-"p_brand": $p_brand1,
- "p_type": $p_type1,
- "p_size": $p_size1,
- "ps_suppkey": $ps_suppkey1
-} )
-group by $p_brand := $t2.p_brand, $p_type := $t2.p_type, $p_size := $t2.p_size with $t2
-let $supplier_cnt := count(for $i in $t2 return $i.ps_suppkey)
-order by $supplier_cnt desc, $p_brand, $p_type, $p_size
-return {
-"p_brand": $p_brand,
-"p_type": $p_type,
-"p_size": $p_size,
-"supplier_cnt": $supplier_cnt
-}
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.3.query.aql
new file mode 100644
index 0000000..e5c928e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship/q16_parts_supplier_relationship.3.query.aql
@@ -0,0 +1,54 @@
+use dataverse tpch;
+
+declare function tmp(){
+for $psp in (
+ for $ps in dataset('Partsupp')
+ for $p in dataset('Part')
+ where $p.p_partkey = $ps.ps_partkey and $p.p_brand != 'Brand#45'
+ and not(like($p.p_type, 'MEDIUM POLISHED%'))
+ return
+ {
+ "p_brand": $p.p_brand,
+ "p_type": $p.p_type,
+ "p_size": $p.p_size,
+ "ps_suppkey": $ps.ps_suppkey
+ }
+)
+for $s in dataset('Supplier')
+ where $psp.ps_suppkey = $s.s_suppkey and not(like($s.s_comment, '%Customer%Complaints%'))
+return
+{
+ "p_brand": $psp.p_brand,
+ "p_type": $psp.p_type,
+ "p_size": $psp.p_size,
+ "ps_suppkey": $psp.ps_suppkey
+}
+}
+
+for $t2 in
+(
+for $t in tmp()
+ where $t.p_size = 49 or $t.p_size = 14 or $t.p_size = 23 or
+ $t.p_size = 45 or $t.p_size = 19 or $t.p_size = 3 or
+ $t.p_size = 36 or $t.p_size = 9
+group by $p_brand1:= $t.p_brand, $p_type1 := $t.p_type,
+ $p_size1:= $t.p_size, $ps_suppkey1:=$t.ps_suppkey with $t
+return
+{
+"p_brand": $p_brand1,
+ "p_type": $p_type1,
+ "p_size": $p_size1,
+ "ps_suppkey": $ps_suppkey1
+} )
+group by $p_brand := $t2.p_brand, $p_type := $t2.p_type, $p_size := $t2.p_size with $t2
+let $supplier_cnt := count(for $i in $t2 return $i.ps_suppkey)
+order by $supplier_cnt desc, $p_brand, $p_type, $p_size
+return {
+"p_brand": $p_brand,
+"p_type": $p_type,
+"p_size": $p_size,
+"supplier_cnt": $supplier_cnt
+}
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql
deleted file mode 100644
index d631abc..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql
+++ /dev/null
@@ -1,164 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q17_small_quantity_order_revenue.adm";
-
-declare function tmp(){
-for $l in dataset('LineItem')
-group by $l_partkey := $l.l_partkey with $l
-return {
-"t_partkey": $l_partkey,
-"t_avg_quantity": 0.2 * avg(for $i in $l return $i.l_quantity)
-}
-}
-
-sum(
-for $l in dataset('LineItem')
-for $p in dataset('Part')
-where $p.p_partkey = $l.l_partkey and $p.p_container = 'MED BOX'
-
-for $t in tmp()
-where $l.l_partkey = $t.t_partkey and $l.l_quantity < $t.t_avg_quantity
-return $l.l_extendedprice
-)/7.0
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.query.aql
new file mode 100644
index 0000000..67644d9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.query.aql
@@ -0,0 +1,21 @@
+use dataverse tpch;
+
+declare function tmp(){
+for $l in dataset('LineItem')
+group by $l_partkey := $l.l_partkey with $l
+return {
+"t_partkey": $l_partkey,
+"t_avg_quantity": 0.2 * avg(for $i in $l return $i.l_quantity)
+}
+}
+
+sum(
+for $l in dataset('LineItem')
+for $p in dataset('Part')
+where $p.p_partkey = $l.l_partkey and $p.p_container = 'MED BOX'
+
+for $t in tmp()
+where $l.l_partkey = $t.t_partkey and $l.l_quantity < $t.t_avg_quantity
+return $l.l_extendedprice
+)/7.0
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql
deleted file mode 100644
index 7f55551..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql
+++ /dev/null
@@ -1,175 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q18_large_volume_customer.adm";
-
-for $c in dataset('Customer')
-for $o in dataset('Orders')
-where
- $c.c_custkey = $o.o_custkey
-for $t in
-(
- for $l in dataset('LineItem')
- group by $l_orderkey := $l.l_orderkey with $l
- return
- { "l_orderkey": $l_orderkey,
- "t_sum_quantity": sum(for $i in $l return $i.l_quantity) }
-)
-where
- $o.o_orderkey = $t.l_orderkey and $t.t_sum_quantity > 30
-for $l in dataset('LineItem')
-where
- $l.l_orderkey = $o.o_orderkey
-group by $c_name := $c.c_name, $c_custkey := $c.c_custkey, $o_orderkey := $o.o_orderkey,
- $o_orderdate := $o.o_orderdate, $o_totalprice := $o.o_totalprice with $l
-order by $o_totalprice desc, $o_orderdate
-limit 100
-return {
- "c_name": $c_name,
- "c_custkey": $c_custkey,
- "o_orderkey": $o_orderkey,
- "o_orderdate": $o_orderdate,
- "o_totalprice": $o_totalprice,
- "sum_quantity": sum(for $j in $l return $j.l_quantity)
-}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.3.query.aql
new file mode 100644
index 0000000..df6d9f0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer/q18_large_volume_customer.3.query.aql
@@ -0,0 +1,32 @@
+use dataverse tpch;
+
+for $c in dataset('Customer')
+for $o in dataset('Orders')
+where
+ $c.c_custkey = $o.o_custkey
+for $t in
+(
+ for $l in dataset('LineItem')
+ group by $l_orderkey := $l.l_orderkey with $l
+ return
+ { "l_orderkey": $l_orderkey,
+ "t_sum_quantity": sum(for $i in $l return $i.l_quantity) }
+)
+where
+ $o.o_orderkey = $t.l_orderkey and $t.t_sum_quantity > 30
+for $l in dataset('LineItem')
+where
+ $l.l_orderkey = $o.o_orderkey
+group by $c_name := $c.c_name, $c_custkey := $c.c_custkey, $o_orderkey := $o.o_orderkey,
+ $o_orderdate := $o.o_orderdate, $o_totalprice := $o.o_totalprice with $l
+order by $o_totalprice desc, $o_orderdate
+limit 100
+return {
+ "c_name": $c_name,
+ "c_custkey": $c_custkey,
+ "o_orderkey": $o_orderkey,
+ "o_orderdate": $o_orderdate,
+ "o_totalprice": $o_totalprice,
+ "sum_quantity": sum(for $j in $l return $j.l_quantity)
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql
deleted file mode 100644
index cbd9d53..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql
+++ /dev/null
@@ -1,178 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q19_discounted_revenue.adm";
-
-sum(
-for $l in dataset('LineItem')
-for $p in dataset('Part')
-where $p.p_partkey = $l.l_partkey
-and (
- (
- $p.p_brand = 'Brand#12'
- and reg-exp($p.p_container,'SM CASE||SM BOX||SM PACK||SM PKG')
- and $l.l_quantity >= 1 and $l.l_quantity <= 11
- and $p.p_size >= 1 and $p.p_size <= 5
- and reg-exp($l.l_shipmode, 'AIR||AIR REG')
- and $l.l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- $p.p_brand = 'Brand#23'
- and reg-exp($p.p_container, 'MED BAG||MED BOX||MED PKG||MED PACK')
- and $l.l_quantity >= 10 and $l.l_quantity <= 20
- and $p.p_size >= 1 and $p.p_size <= 10
- and reg-exp($l.l_shipmode, 'AIR||AIR REG')
- and $l.l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- $p.p_brand = 'Brand#34'
- and reg-exp($p.p_container, 'LG CASE||LG BOX||LG PACK||LG PKG')
- and $l.l_quantity >= 20 and $l.l_quantity <= 30
- and $p.p_size >= 1 and $p.p_size <= 15
- and reg-exp($l.l_shipmode, 'AIR||AIR REG')
- and $l.l_shipinstruct = 'DELIVER IN PERSON'
- )
- )
-return $l.l_extendedprice * (1 - $l.l_discount)
-)
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.3.query.aql
new file mode 100644
index 0000000..3fd46d5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue/q19_discounted_revenue.3.query.aql
@@ -0,0 +1,36 @@
+use dataverse tpch;
+
+sum(
+for $l in dataset('LineItem')
+for $p in dataset('Part')
+where $p.p_partkey = $l.l_partkey
+and (
+ (
+ $p.p_brand = 'Brand#12'
+ and reg-exp($p.p_container,'SM CASE||SM BOX||SM PACK||SM PKG')
+ and $l.l_quantity >= 1 and $l.l_quantity <= 11
+ and $p.p_size >= 1 and $p.p_size <= 5
+ and reg-exp($l.l_shipmode, 'AIR||AIR REG')
+ and $l.l_shipinstruct = 'DELIVER IN PERSON'
+ )
+ or
+ (
+ $p.p_brand = 'Brand#23'
+ and reg-exp($p.p_container, 'MED BAG||MED BOX||MED PKG||MED PACK')
+ and $l.l_quantity >= 10 and $l.l_quantity <= 20
+ and $p.p_size >= 1 and $p.p_size <= 10
+ and reg-exp($l.l_shipmode, 'AIR||AIR REG')
+ and $l.l_shipinstruct = 'DELIVER IN PERSON'
+ )
+ or
+ (
+ $p.p_brand = 'Brand#34'
+ and reg-exp($p.p_container, 'LG CASE||LG BOX||LG PACK||LG PKG')
+ and $l.l_quantity >= 20 and $l.l_quantity <= 30
+ and $p.p_size >= 1 and $p.p_size <= 15
+ and reg-exp($l.l_shipmode, 'AIR||AIR REG')
+ and $l.l_shipinstruct = 'DELIVER IN PERSON'
+ )
+ )
+return $l.l_extendedprice * (1 - $l.l_discount)
+)
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql
deleted file mode 100644
index 2d2e3c4..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql
+++ /dev/null
@@ -1,54 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: double,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create nodegroup group1 if not exists on nc1;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q1_pricing_summary_report_nt.adm";
-
-for $l in dataset('LineItem')
-where $l.l_shipdate <= '1998-09-02'
-/*+ hash*/
-group by $l_returnflag := $l.l_returnflag, $l_linestatus := $l.l_linestatus
- with $l
-order by $l_returnflag, $l_linestatus
-return {
- "l_returnflag": $l_returnflag,
- "l_linestatus": $l_linestatus,
- "sum_qty": sum(for $i in $l return $i.l_quantity),
- "sum_base_price": sum(for $i in $l return $i.l_extendedprice),
- "sum_disc_price": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount)),
- "sum_charge": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount) * (1 + $i.l_tax)),
- "ave_qty": avg(for $i in $l return $i.l_quantity),
- "ave_price": avg(for $i in $l return $i.l_extendedprice),
- "ave_disc": avg(for $i in $l return $i.l_discount),
- "count_order": count($l)
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.1.ddl.aql
new file mode 100644
index 0000000..acd6728
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.1.ddl.aql
@@ -0,0 +1,27 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: double,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.2.update.aql
new file mode 100644
index 0000000..f781e6e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.2.update.aql
@@ -0,0 +1,6 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.3.query.aql
new file mode 100644
index 0000000..b6d6c48
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt/q1_pricing_summary_report_nt.3.query.aql
@@ -0,0 +1,20 @@
+use dataverse tpch;
+
+for $l in dataset('LineItem')
+where $l.l_shipdate <= '1998-09-02'
+/*+ hash*/
+group by $l_returnflag := $l.l_returnflag, $l_linestatus := $l.l_linestatus
+ with $l
+order by $l_returnflag, $l_linestatus
+return {
+ "l_returnflag": $l_returnflag,
+ "l_linestatus": $l_linestatus,
+ "sum_qty": sum(for $i in $l return $i.l_quantity),
+ "sum_base_price": sum(for $i in $l return $i.l_extendedprice),
+ "sum_disc_price": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount)),
+ "sum_charge": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount) * (1 + $i.l_tax)),
+ "ave_qty": avg(for $i in $l return $i.l_quantity),
+ "ave_price": avg(for $i in $l return $i.l_extendedprice),
+ "ave_disc": avg(for $i in $l return $i.l_discount),
+ "count_order": count($l)
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql
deleted file mode 100644
index 091dda6..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql
+++ /dev/null
@@ -1,182 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q20_potential_part_promotion.adm";
-
-for $t3 in (
-for $t2 in (
- for $l in dataset('LineItem')
- group by $l_partkey:=$l.l_partkey, $l_suppkey:=$l.l_suppkey with $l
- return {
- "l_partkey": $l_partkey,
- "l_suppkey": $l_suppkey,
- "sum_quantity": 0.5 * sum(for $i in $l return $i.l_quantity)
-})
-for $pst1 in (
- for $ps in dataset('Partsupp')
- for $t1 in
- (
- for $p in dataset('Part')
- distinct by $p.p_partkey
- return {"p_partkey": $p.p_partkey}
- )
- where $ps.ps_partkey = $t1.p_partkey
- return {"ps_suppkey": $ps.ps_suppkey, "ps_partkey": $ps.ps_partkey, "ps_availqty": $ps.ps_availqty}
-)
-where $pst1.ps_partkey = $t2.l_partkey and $pst1.ps_suppkey = $t2.l_suppkey
- and $pst1.ps_availqty > $t2.sum_quantity
-distinct by $pst1.ps_suppkey
-return {"ps_suppkey": $pst1.ps_suppkey}
-)
-
-for $t4 in (
- for $n in dataset('Nation')
- for $s in dataset('Supplier')
- where $s.s_nationkey = $n.n_nationkey
- return {"s_name": $s.s_name, "s_address": $s.s_address, "s_suppkey": $s.s_suppkey}
-)
-
-where $t3.ps_suppkey = $t4.s_suppkey
-order by $t4.s_name
-return {"s_name": $t4.s_name, "s_address": $t4.s_address}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.3.query.aql
new file mode 100644
index 0000000..a5a5bbe
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion/q20_potential_part_promotion.3.query.aql
@@ -0,0 +1,39 @@
+use dataverse tpch;
+
+for $t3 in (
+for $t2 in (
+ for $l in dataset('LineItem')
+ group by $l_partkey:=$l.l_partkey, $l_suppkey:=$l.l_suppkey with $l
+ return {
+ "l_partkey": $l_partkey,
+ "l_suppkey": $l_suppkey,
+ "sum_quantity": 0.5 * sum(for $i in $l return $i.l_quantity)
+})
+for $pst1 in (
+ for $ps in dataset('Partsupp')
+ for $t1 in
+ (
+ for $p in dataset('Part')
+ distinct by $p.p_partkey
+ return {"p_partkey": $p.p_partkey}
+ )
+ where $ps.ps_partkey = $t1.p_partkey
+ return {"ps_suppkey": $ps.ps_suppkey, "ps_partkey": $ps.ps_partkey, "ps_availqty": $ps.ps_availqty}
+)
+where $pst1.ps_partkey = $t2.l_partkey and $pst1.ps_suppkey = $t2.l_suppkey
+ and $pst1.ps_availqty > $t2.sum_quantity
+distinct by $pst1.ps_suppkey
+return {"ps_suppkey": $pst1.ps_suppkey}
+)
+
+for $t4 in (
+ for $n in dataset('Nation')
+ for $s in dataset('Supplier')
+ where $s.s_nationkey = $n.n_nationkey
+ return {"s_name": $s.s_name, "s_address": $s.s_address, "s_suppkey": $s.s_suppkey}
+)
+
+where $t3.ps_suppkey = $t4.s_suppkey
+order by $t4.s_name
+return {"s_name": $t4.s_name, "s_address": $t4.s_address}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql
deleted file mode 100644
index e8bf676..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql
+++ /dev/null
@@ -1,222 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q21_suppliers_who_kept_orders_waiting.adm";
-
-
-declare function tmp1()
-{
-for $l2 in
-(
- for $l in dataset('LineItem')
- group by $l_orderkey1 := $l.l_orderkey, $l_suppkey1 := $l.l_suppkey with $l
- return {
- "l_orderkey": $l_orderkey1,
- "l_suppkey": $l_suppkey1
- }
-)
-group by $l_orderkey := $l2.l_orderkey with $l2
-return {
- "l_orderkey": $l_orderkey,
- "count_suppkey": count(for $i in $l2 return $i.l_suppkey),
- "max_suppkey": max(for $i in $l2 return $i.l_suppkey)
-}
-}
-
-declare function tmp2()
-{
-for $l2 in
-(
- for $l in dataset('LineItem')
- where $l.l_receiptdate > $l.l_commitdate
- group by $l_orderkey1 := $l.l_orderkey, $l_suppkey1 := $l.l_suppkey with $l
- return {
- "l_orderkey": $l_orderkey1,
- "l_suppkey": $l_suppkey1
- }
-)
-group by $l_orderkey := $l2.l_orderkey with $l2
-return {
-"l_orderkey": $l_orderkey,
-"count_suppkey": count(for $i in $l2 return $i.l_suppkey),
-"max_suppkey": max(for $i in $l2 return $i.l_suppkey)
-}
-}
-
-for $t4 in (
-for $t3 in (
- for $l in dataset('LineItem')
- for $ns in (
- for $n in dataset('Nation')
- for $s in dataset('Supplier')
- where $s.s_nationkey = $n.n_nationkey
- return {"s_name": $s.s_name, "s_suppkey": $s.s_suppkey}
- )
- where $ns.s_suppkey = $l.l_suppkey and $l.l_receiptdate > $l.l_commitdate
-
- for $o in dataset('Orders')
- where $o.o_orderkey = $l.l_orderkey
-
- for $t1 in tmp1()
- where $l.l_orderkey = $t1.l_orderkey
-
- return {"s_name": $ns.s_name, "l_orderkey": $t1.l_orderkey, "l_suppkey": $l.l_suppkey}
-)
-
-for $t2 in tmp2()
- where $t2.count_suppkey >= 0 and $t3.l_orderkey = $t2.l_orderkey
-
-return {
-"s_name": $t3.s_name,
-"l_suppkey": $t3.l_suppkey,
-"l_orderkey": $t2.l_orderkey,
-"count_suppkey": $t2.count_suppkey,
-"max_suppkey": $t2.max_suppkey
-} )
-group by $s_name := $t4.s_name with $t4
-let $numwait := count($t4)
-order by $numwait desc, $s_name
-return {
-"s_name": $s_name,
-"numwait": $numwait
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.query.aql
new file mode 100644
index 0000000..eb94678
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.query.aql
@@ -0,0 +1,78 @@
+use dataverse tpch;
+
+declare function tmp1()
+{
+for $l2 in
+(
+ for $l in dataset('LineItem')
+ group by $l_orderkey1 := $l.l_orderkey, $l_suppkey1 := $l.l_suppkey with $l
+ return {
+ "l_orderkey": $l_orderkey1,
+ "l_suppkey": $l_suppkey1
+ }
+)
+group by $l_orderkey := $l2.l_orderkey with $l2
+return {
+ "l_orderkey": $l_orderkey,
+ "count_suppkey": count(for $i in $l2 return $i.l_suppkey),
+ "max_suppkey": max(for $i in $l2 return $i.l_suppkey)
+}
+}
+
+declare function tmp2()
+{
+for $l2 in
+(
+ for $l in dataset('LineItem')
+ where $l.l_receiptdate > $l.l_commitdate
+ group by $l_orderkey1 := $l.l_orderkey, $l_suppkey1 := $l.l_suppkey with $l
+ return {
+ "l_orderkey": $l_orderkey1,
+ "l_suppkey": $l_suppkey1
+ }
+)
+group by $l_orderkey := $l2.l_orderkey with $l2
+return {
+"l_orderkey": $l_orderkey,
+"count_suppkey": count(for $i in $l2 return $i.l_suppkey),
+"max_suppkey": max(for $i in $l2 return $i.l_suppkey)
+}
+}
+
+for $t4 in (
+for $t3 in (
+ for $l in dataset('LineItem')
+ for $ns in (
+ for $n in dataset('Nation')
+ for $s in dataset('Supplier')
+ where $s.s_nationkey = $n.n_nationkey
+ return {"s_name": $s.s_name, "s_suppkey": $s.s_suppkey}
+ )
+ where $ns.s_suppkey = $l.l_suppkey and $l.l_receiptdate > $l.l_commitdate
+
+ for $o in dataset('Orders')
+ where $o.o_orderkey = $l.l_orderkey
+
+ for $t1 in tmp1()
+ where $l.l_orderkey = $t1.l_orderkey
+
+ return {"s_name": $ns.s_name, "l_orderkey": $t1.l_orderkey, "l_suppkey": $l.l_suppkey}
+)
+
+for $t2 in tmp2()
+ where $t2.count_suppkey >= 0 and $t3.l_orderkey = $t2.l_orderkey
+
+return {
+"s_name": $t3.s_name,
+"l_suppkey": $t3.l_suppkey,
+"l_orderkey": $t2.l_orderkey,
+"count_suppkey": $t2.count_suppkey,
+"max_suppkey": $t2.max_suppkey
+} )
+group by $s_name := $t4.s_name with $t4
+let $numwait := count($t4)
+order by $numwait desc, $s_name
+return {
+"s_name": $s_name,
+"numwait": $numwait
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql
deleted file mode 100644
index 3f96e89..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql
+++ /dev/null
@@ -1,174 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q22_global_sales_opportunity.adm";
-
-
-declare function q22_customer_tmp(){
-for $c in dataset('Customer')
-return {
-"c_acctbal": $c.c_acctbal,
-"c_custkey": $c.c_custkey,
-"cntrycode": substring($c.c_phone, 1, 2)
-}
-}
-
-
-let $avg := avg( for $c in dataset('Customer')
- where $c.c_acctbal > 0.00
- return $c.c_acctbal
- )
-for $ct in q22_customer_tmp()
-where $ct.c_acctbal > $avg
-
-group by $cntrycode := $ct.cntrycode with $ct
-order by $cntrycode
-
-return {
-"cntrycode": $cntrycode,
-"numcust": count($ct),
-"totacctbal": sum(for $i in $ct return $i.c_acctbal)
-}
-
-
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.query.aql
new file mode 100644
index 0000000..a07e4ad
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.query.aql
@@ -0,0 +1,30 @@
+use dataverse tpch;
+
+declare function q22_customer_tmp(){
+for $c in dataset('Customer')
+return {
+"c_acctbal": $c.c_acctbal,
+"c_custkey": $c.c_custkey,
+"cntrycode": substring($c.c_phone, 1, 2)
+}
+}
+
+
+let $avg := avg( for $c in dataset('Customer')
+ where $c.c_acctbal > 0.00
+ return $c.c_acctbal
+ )
+for $ct in q22_customer_tmp()
+where $ct.c_acctbal > $avg
+
+group by $cntrycode := $ct.cntrycode with $ct
+order by $cntrycode
+
+return {
+"cntrycode": $cntrycode,
+"numcust": count($ct),
+"totacctbal": sum(for $i in $ct return $i.c_acctbal)
+}
+
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql
deleted file mode 100644
index 1b87727..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql
+++ /dev/null
@@ -1,245 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q2_minimum_cost_supplier.adm";
-
-declare function tmp1(){
-for $p in dataset('Part')
-for $pssrn in
-(
- for $ps in dataset('Partsupp')
- for $srn in
- (
- for $s in dataset('Supplier')
- for $rn in
- (
- for $r in dataset('Region')
- for $n in dataset('Nation')
- where $n.n_regionkey = $r.r_regionkey and $r.r_name = 'EUROPE'
- return {"n_nationkey": $n.n_nationkey, "n_name": $n.n_name}
- )
- where $s.s_nationkey = $rn.n_nationkey
- return {"s_suppkey": $s.s_suppkey, "n_name": $rn.n_name,
- "s_name": $s.s_name,
- "s_acctbal": $s.s_acctbal,
- "s_address": $s.s_address,
- "s_phone": $s.s_phone,
- "s_comment": $s.s_comment}
- )
- where $srn.s_suppkey = $ps.ps_suppkey
- return {"n_name": $srn.n_name, "p_partkey": $ps.ps_partkey, "ps_supplycost": $ps.ps_supplycost,
- "s_name": $srn.s_name,
- "s_acctbal": $srn.s_acctbal,
- "s_address": $srn.s_address,
- "s_phone": $srn.s_phone,
- "s_comment": $srn.s_comment}
-)
-where $p.p_partkey = $pssrn.p_partkey and like($p.p_type, '%BRASS')
-return
-{"s_acctbal": $pssrn.s_acctbal,
-"s_name": $pssrn.s_name,
-"n_name": $pssrn.n_name,
-"p_partkey": $p.p_partkey,
-"ps_supplycost": $pssrn.ps_supplycost,
-"p_mfgr": $p.p_mfgr,
-"s_address": $pssrn.s_address,
-"s_phone": $pssrn.s_phone,
-"s_comment": $pssrn.s_comment
-}
-}
-
-declare function tmp2(){
-for $p in dataset('Part')
-for $pssrn in
-(
- for $ps in dataset('Partsupp')
- for $srn in
- (
- for $s in dataset('Supplier')
- for $rn in
- (
- for $r in dataset('Region')
- for $n in dataset('Nation')
- where $n.n_regionkey = $r.r_regionkey and $r.r_name = 'EUROPE'
- return {"n_nationkey": $n.n_nationkey, "n_name": $n.n_name}
- )
- where $s.s_nationkey = $rn.n_nationkey
- return {"s_suppkey": $s.s_suppkey, "n_name": $rn.n_name,
- "s_name": $s.s_name,
- "s_acctbal": $s.s_acctbal,
- "s_address": $s.s_address,
- "s_phone": $s.s_phone,
- "s_comment": $s.s_comment}
- )
- where $srn.s_suppkey = $ps.ps_suppkey
- return {"n_name": $srn.n_name, "p_partkey": $ps.ps_partkey, "ps_supplycost": $ps.ps_supplycost,
- "s_name": $srn.s_name,
- "s_acctbal": $srn.s_acctbal,
- "s_address": $srn.s_address,
- "s_phone": $srn.s_phone,
- "s_comment": $srn.s_comment}
-)
-where $p.p_partkey = $pssrn.p_partkey and like($p.p_type, '%BRASS')
-/*+ hash*/
-group by $p_partkey := $pssrn.p_partkey
-with $pssrn
-return {"p_partkey": $p_partkey,
-"ps_min_supplycost": min(for $i in $pssrn return $i.ps_supplycost)
-}
-}
-
-for $t2 in tmp2()
-for $t1 in tmp1()
-where $t1.p_partkey = $t2.p_partkey and $t1.ps_supplycost = $t2.ps_min_supplycost
-order by $t1.s_acctbal desc, $t1.n_name, $t1.s_name, $t1.p_partkey
-limit 100
-return
-{
-"s_acctbal":$t1.s_acctbal,
-"s_name":$t1.s_name,
-"n_name":$t1.n_name,
-"p_partkey":$t1.p_partkey,
-"p_mfgr":$t1.p_mfgr,
-"s_address":$t1.s_address,
-"s_phone":$t1.s_phone,
-"s_comment":$t1.s_comment
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.3.query.aql
new file mode 100644
index 0000000..c13dbb9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier/q2_minimum_cost_supplier.3.query.aql
@@ -0,0 +1,103 @@
+use dataverse tpch;
+
+declare function tmp1(){
+for $p in dataset('Part')
+for $pssrn in
+(
+ for $ps in dataset('Partsupp')
+ for $srn in
+ (
+ for $s in dataset('Supplier')
+ for $rn in
+ (
+ for $r in dataset('Region')
+ for $n in dataset('Nation')
+ where $n.n_regionkey = $r.r_regionkey and $r.r_name = 'EUROPE'
+ return {"n_nationkey": $n.n_nationkey, "n_name": $n.n_name}
+ )
+ where $s.s_nationkey = $rn.n_nationkey
+ return {"s_suppkey": $s.s_suppkey, "n_name": $rn.n_name,
+ "s_name": $s.s_name,
+ "s_acctbal": $s.s_acctbal,
+ "s_address": $s.s_address,
+ "s_phone": $s.s_phone,
+ "s_comment": $s.s_comment}
+ )
+ where $srn.s_suppkey = $ps.ps_suppkey
+ return {"n_name": $srn.n_name, "p_partkey": $ps.ps_partkey, "ps_supplycost": $ps.ps_supplycost,
+ "s_name": $srn.s_name,
+ "s_acctbal": $srn.s_acctbal,
+ "s_address": $srn.s_address,
+ "s_phone": $srn.s_phone,
+ "s_comment": $srn.s_comment}
+)
+where $p.p_partkey = $pssrn.p_partkey and like($p.p_type, '%BRASS')
+return
+{"s_acctbal": $pssrn.s_acctbal,
+"s_name": $pssrn.s_name,
+"n_name": $pssrn.n_name,
+"p_partkey": $p.p_partkey,
+"ps_supplycost": $pssrn.ps_supplycost,
+"p_mfgr": $p.p_mfgr,
+"s_address": $pssrn.s_address,
+"s_phone": $pssrn.s_phone,
+"s_comment": $pssrn.s_comment
+}
+}
+
+declare function tmp2(){
+for $p in dataset('Part')
+for $pssrn in
+(
+ for $ps in dataset('Partsupp')
+ for $srn in
+ (
+ for $s in dataset('Supplier')
+ for $rn in
+ (
+ for $r in dataset('Region')
+ for $n in dataset('Nation')
+ where $n.n_regionkey = $r.r_regionkey and $r.r_name = 'EUROPE'
+ return {"n_nationkey": $n.n_nationkey, "n_name": $n.n_name}
+ )
+ where $s.s_nationkey = $rn.n_nationkey
+ return {"s_suppkey": $s.s_suppkey, "n_name": $rn.n_name,
+ "s_name": $s.s_name,
+ "s_acctbal": $s.s_acctbal,
+ "s_address": $s.s_address,
+ "s_phone": $s.s_phone,
+ "s_comment": $s.s_comment}
+ )
+ where $srn.s_suppkey = $ps.ps_suppkey
+ return {"n_name": $srn.n_name, "p_partkey": $ps.ps_partkey, "ps_supplycost": $ps.ps_supplycost,
+ "s_name": $srn.s_name,
+ "s_acctbal": $srn.s_acctbal,
+ "s_address": $srn.s_address,
+ "s_phone": $srn.s_phone,
+ "s_comment": $srn.s_comment}
+)
+where $p.p_partkey = $pssrn.p_partkey and like($p.p_type, '%BRASS')
+/*+ hash*/
+group by $p_partkey := $pssrn.p_partkey
+with $pssrn
+return {"p_partkey": $p_partkey,
+"ps_min_supplycost": min(for $i in $pssrn return $i.ps_supplycost)
+}
+}
+
+for $t2 in tmp2()
+for $t1 in tmp1()
+where $t1.p_partkey = $t2.p_partkey and $t1.ps_supplycost = $t2.ps_min_supplycost
+order by $t1.s_acctbal desc, $t1.n_name, $t1.s_name, $t1.p_partkey
+limit 100
+return
+{
+"s_acctbal":$t1.s_acctbal,
+"s_name":$t1.s_name,
+"n_name":$t1.n_name,
+"p_partkey":$t1.p_partkey,
+"p_mfgr":$t1.p_mfgr,
+"s_address":$t1.s_address,
+"s_phone":$t1.s_phone,
+"s_comment":$t1.s_comment
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql
deleted file mode 100644
index 3152a4b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql
+++ /dev/null
@@ -1,148 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q3_shipping_priority_nt.adm";
-
-for $c in dataset('Customer')
-for $o in dataset('Orders')
-where
- $c.c_mktsegment = 'BUILDING' and $c.c_custkey = $o.o_custkey
-for $l in dataset('LineItem')
-where
- $l.l_orderkey = $o.o_orderkey and
- $o.o_orderdate < '1995-03-15' and $l.l_shipdate > '1995-03-15'
-/*+ hash*/
-group by $l_orderkey := $l.l_orderkey, $o_orderdate := $o.o_orderdate, $o_shippriority := $o.o_shippriority
- with $l
-let $revenue := sum (
- for $i in $l
- return
- $i.l_extendedprice * (1 - $i.l_discount)
-)
-order by $revenue desc, $o_orderdate
-limit 10
-return {
- "l_orderkey": $l_orderkey,
- "revenue": $revenue,
- "o_orderdate": $o_orderdate,
- "o_shippriority": $o_shippriority
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.2.update.aql
new file mode 100644
index 0000000..a860934
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.2.update.aql
@@ -0,0 +1,14 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.3.query.aql
new file mode 100644
index 0000000..1c958cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt/q3_shipping_priority_nt.3.query.aql
@@ -0,0 +1,26 @@
+use dataverse tpch;
+
+for $c in dataset('Customer')
+for $o in dataset('Orders')
+where
+ $c.c_mktsegment = 'BUILDING' and $c.c_custkey = $o.o_custkey
+for $l in dataset('LineItem')
+where
+ $l.l_orderkey = $o.o_orderkey and
+ $o.o_orderdate < '1995-03-15' and $l.l_shipdate > '1995-03-15'
+/*+ hash*/
+group by $l_orderkey := $l.l_orderkey, $o_orderdate := $o.o_orderdate, $o_shippriority := $o.o_shippriority
+ with $l
+let $revenue := sum (
+ for $i in $l
+ return
+ $i.l_extendedprice * (1 - $i.l_discount)
+)
+order by $revenue desc, $o_orderdate
+limit 10
+return {
+ "l_orderkey": $l_orderkey,
+ "revenue": $revenue,
+ "o_orderdate": $o_orderdate,
+ "o_shippriority": $o_shippriority
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql
deleted file mode 100644
index a616f1c..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql
+++ /dev/null
@@ -1,166 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q4_order_priority.adm";
-
-declare function tmp()
-{
-for $l in dataset('LineItem')
-where $l.l_commitdate<$l.l_receiptdate
-distinct by $l.l_orderkey
-return {"o_orderkey": $l.l_orderkey}
-}
-
-for $o in dataset('Orders')
-for $t in tmp()
-where
-$o.o_orderkey = $t.o_orderkey and
-$o.o_orderdate >= '1993-07-01' and $o.o_orderdate < '1993-10-01'
-group by $o_orderpriority := $o.o_orderpriority
-with $o
-order by $o_orderpriority
-return
-{
-"order_priority": $o_orderpriority,
-"count": count($o)
-}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.3.query.aql
new file mode 100644
index 0000000..4079a25
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority/q4_order_priority.3.query.aql
@@ -0,0 +1,24 @@
+use dataverse tpch;
+
+declare function tmp()
+{
+for $l in dataset('LineItem')
+where $l.l_commitdate<$l.l_receiptdate
+distinct by $l.l_orderkey
+return {"o_orderkey": $l.l_orderkey}
+}
+
+for $o in dataset('Orders')
+for $t in tmp()
+where
+$o.o_orderkey = $t.o_orderkey and
+$o.o_orderdate >= '1993-07-01' and $o.o_orderdate < '1993-10-01'
+group by $o_orderpriority := $o.o_orderpriority
+with $o
+order by $o_orderpriority
+return
+{
+"order_priority": $o_orderpriority,
+"count": count($o)
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql
deleted file mode 100644
index 3a5650f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql
+++ /dev/null
@@ -1,180 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q5_local_supplier_volume.adm";
-
-
-
-for $c in dataset('Customer')
-for $o1 in
-( for $o in dataset('Orders')
- for $l1 in (
- for $l in dataset('LineItem')
- for $s1 in
- ( for $s in dataset('Supplier')
- for $n1 in
- ( for $n in dataset('Nation')
- for $r in dataset('Region')
- where $n.n_regionkey = $r.r_regionkey
- return
- {"n_name": $n.n_name, "n_nationkey": $n.n_nationkey} )
- where $s.s_nationkey = $n1.n_nationkey
- return
- { "n_name": $n1.n_name, "s_suppkey": $s.s_suppkey, "s_nationkey": $s.s_nationkey } )
- where $l.l_suppkey = $s1.s_suppkey
- return
- { "n_name": $s1.n_name, "l_extendedprice": $l.l_extendedprice, "l_discount": $l.l_discount, "l_orderkey": $l.l_orderkey, "s_nationkey": $s1.s_nationkey } )
- where $l1.l_orderkey = $o.o_orderkey and $o.o_orderdate >= '1990-01-01' and $o.o_orderdate < '1995-01-01'
- return
- { "n_name": $l1.n_name, "l_extendedprice": $l1.l_extendedprice, "l_discount": $l1.l_discount, "s_nationkey": $l1.s_nationkey, "o_custkey": $o.o_custkey } )
-where $c.c_nationkey = $o1.s_nationkey and $c.c_custkey = $o1.o_custkey
-/*+ hash*/
-group by $n_name := $o1.n_name with $o1
-let $revenue := sum (
- for $i in $o1
- return
- $i.l_extendedprice * (1 - $i.l_discount)
-)
-order by $revenue desc
-return
- { "n_name": $n_name, "revenue": $revenue }
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.1.ddl.aql
new file mode 100644
index 0000000..ee0ed24
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.3.query.aql
new file mode 100644
index 0000000..d654ce1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume/q5_local_supplier_volume.3.query.aql
@@ -0,0 +1,35 @@
+use dataverse tpch;
+
+for $c in dataset('Customer')
+for $o1 in
+( for $o in dataset('Orders')
+ for $l1 in (
+ for $l in dataset('LineItem')
+ for $s1 in
+ ( for $s in dataset('Supplier')
+ for $n1 in
+ ( for $n in dataset('Nation')
+ for $r in dataset('Region')
+ where $n.n_regionkey = $r.r_regionkey
+ return
+ {"n_name": $n.n_name, "n_nationkey": $n.n_nationkey} )
+ where $s.s_nationkey = $n1.n_nationkey
+ return
+ { "n_name": $n1.n_name, "s_suppkey": $s.s_suppkey, "s_nationkey": $s.s_nationkey } )
+ where $l.l_suppkey = $s1.s_suppkey
+ return
+ { "n_name": $s1.n_name, "l_extendedprice": $l.l_extendedprice, "l_discount": $l.l_discount, "l_orderkey": $l.l_orderkey, "s_nationkey": $s1.s_nationkey } )
+ where $l1.l_orderkey = $o.o_orderkey and $o.o_orderdate >= '1990-01-01' and $o.o_orderdate < '1995-01-01'
+ return
+ { "n_name": $l1.n_name, "l_extendedprice": $l1.l_extendedprice, "l_discount": $l1.l_discount, "s_nationkey": $l1.s_nationkey, "o_custkey": $o.o_custkey } )
+where $c.c_nationkey = $o1.s_nationkey and $c.c_custkey = $o1.o_custkey
+/*+ hash*/
+group by $n_name := $o1.n_name with $o1
+let $revenue := sum (
+ for $i in $o1
+ return
+ $i.l_extendedprice * (1 - $i.l_discount)
+)
+order by $revenue desc
+return
+ { "n_name": $n_name, "revenue": $revenue }
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql
deleted file mode 100644
index ea05231..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql
+++ /dev/null
@@ -1,156 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q6_forecast_revenue_change.adm";
-
-let $revenue := sum(
-for $l in dataset('LineItem')
-where
- $l.l_shipdate >= '1994-01-01'
- and $l.l_shipdate < '1995-01-01'
- and $l.l_discount >= 0.05 and $l.l_discount <= 0.07
- and $l.l_quantity < 24
-return $l.l_extendedprice * $l.l_discount
-)
-return {
-"revenue": $revenue
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.1.ddl.aql
new file mode 100644
index 0000000..733d940
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.3.query.aql
new file mode 100644
index 0000000..8ac1613
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change/q6_forecast_revenue_change.3.query.aql
@@ -0,0 +1,14 @@
+use dataverse tpch;
+
+let $revenue := sum(
+for $l in dataset('LineItem')
+where
+ $l.l_shipdate >= '1994-01-01'
+ and $l.l_shipdate < '1995-01-01'
+ and $l.l_discount >= 0.05 and $l.l_discount <= 0.07
+ and $l.l_quantity < 24
+return $l.l_extendedprice * $l.l_discount
+)
+return {
+"revenue": $revenue
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql
deleted file mode 100644
index c603a75..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql
+++ /dev/null
@@ -1,212 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q7_volume_shipping.adm";
-
-declare function q7_volume_shipping_tmp(){
-for $n1 in dataset('Nation')
-for $n2 in dataset('Nation')
- where $n2.n_name='GERMANY' or $n1.n_name='GERMANY'
-return
-{
- "supp_nation": $n1.n_name,
- "cust_nation": $n2.n_name,
- "s_nationkey": $n1.n_nationkey,
- "c_nationkey": $n2.n_nationkey
-}
-}
-
-for $locs in (
- for $loc in (
- for $lo in
- (
- for $l in dataset('LineItem')
- for $o in dataset('Orders')
- where
- $o.o_orderkey = $l.l_orderkey and $l.l_shipdate >= '1992-01-01'
- and $l.l_shipdate <= '1996-12-31'
- return
- {
- "l_shipdate": $l.l_shipdate,
- "l_extendedprice": $l.l_extendedprice,
- "l_discount": $l.l_discount,
- "l_suppkey": $l.l_suppkey,
- "o_custkey": $o.o_custkey
- }
- )
- for $c in dataset('Customer')
- where
- $c.c_custkey = $lo.o_custkey
- return
- {
- "l_shipdate": $lo.l_shipdate,
- "l_extendedprice": $lo.l_extendedprice,
- "l_discount": $lo.l_discount,
- "l_suppkey": $lo.l_suppkey,
- "c_nationkey": $c.c_nationkey
- }
- )
- for $s in dataset('Supplier')
- where
- $s.s_suppkey = $loc.l_suppkey
- return {
- "l_shipdate": $loc.l_shipdate,
- "l_extendedprice": $loc.l_extendedprice,
- "l_discount": $loc.l_discount,
- "c_nationkey": $loc.c_nationkey,
- "s_nationkey": $s.s_nationkey
- }
-)
-for $t in q7_volume_shipping_tmp()
-where
- $locs.c_nationkey = $t.c_nationkey and $locs.s_nationkey = $t.s_nationkey
-let $l_year0 := year($locs.l_shipdate)
-group by $supp_nation := $t.supp_nation, $cust_nation := $t.cust_nation, $l_year := $l_year0
-with $locs
-let $revenue := sum(for $i in $locs return $i.l_extendedprice * (1 - $i.l_discount))
-order by $supp_nation, $cust_nation, $l_year
-return {
- "supp_nation": $supp_nation,
- "cust_nation": $cust_nation,
- "l_year": $l_year,
- "revenue": $revenue
-}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.2.update.aql
new file mode 100644
index 0000000..0adc8e1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.3.query.aql
new file mode 100644
index 0000000..58515b8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping/q7_volume_shipping.3.query.aql
@@ -0,0 +1,70 @@
+use dataverse tpch;
+
+declare function q7_volume_shipping_tmp(){
+for $n1 in dataset('Nation')
+for $n2 in dataset('Nation')
+ where $n2.n_name='GERMANY' or $n1.n_name='GERMANY'
+return
+{
+ "supp_nation": $n1.n_name,
+ "cust_nation": $n2.n_name,
+ "s_nationkey": $n1.n_nationkey,
+ "c_nationkey": $n2.n_nationkey
+}
+}
+
+for $locs in (
+ for $loc in (
+ for $lo in
+ (
+ for $l in dataset('LineItem')
+ for $o in dataset('Orders')
+ where
+ $o.o_orderkey = $l.l_orderkey and $l.l_shipdate >= '1992-01-01'
+ and $l.l_shipdate <= '1996-12-31'
+ return
+ {
+ "l_shipdate": $l.l_shipdate,
+ "l_extendedprice": $l.l_extendedprice,
+ "l_discount": $l.l_discount,
+ "l_suppkey": $l.l_suppkey,
+ "o_custkey": $o.o_custkey
+ }
+ )
+ for $c in dataset('Customer')
+ where
+ $c.c_custkey = $lo.o_custkey
+ return
+ {
+ "l_shipdate": $lo.l_shipdate,
+ "l_extendedprice": $lo.l_extendedprice,
+ "l_discount": $lo.l_discount,
+ "l_suppkey": $lo.l_suppkey,
+ "c_nationkey": $c.c_nationkey
+ }
+ )
+ for $s in dataset('Supplier')
+ where
+ $s.s_suppkey = $loc.l_suppkey
+ return {
+ "l_shipdate": $loc.l_shipdate,
+ "l_extendedprice": $loc.l_extendedprice,
+ "l_discount": $loc.l_discount,
+ "c_nationkey": $loc.c_nationkey,
+ "s_nationkey": $s.s_nationkey
+ }
+)
+for $t in q7_volume_shipping_tmp()
+where
+ $locs.c_nationkey = $t.c_nationkey and $locs.s_nationkey = $t.s_nationkey
+let $l_year0 := year($locs.l_shipdate)
+group by $supp_nation := $t.supp_nation, $cust_nation := $t.cust_nation, $l_year := $l_year0
+with $locs
+let $revenue := sum(for $i in $locs return $i.l_extendedprice * (1 - $i.l_discount))
+order by $supp_nation, $cust_nation, $l_year
+return {
+ "supp_nation": $supp_nation,
+ "cust_nation": $cust_nation,
+ "l_year": $l_year,
+ "revenue": $revenue
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql
deleted file mode 100644
index bea39bf..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql
+++ /dev/null
@@ -1,215 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset Partsupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Partsupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-write output to nc1:"rttest/tpch_q8_national_market_share.adm";
-
-
-for $t in (
-for $slnrcop in
-(for $s in dataset("Supplier")
-for $lnrcop in
-(
-for $lnrco in
-(
-for $l in dataset('LineItem')
-for $nrco in (
- for $o in dataset('Orders')
- for $nrc in (
- for $c in dataset('Customer')
- for $nr in (
- for $n1 in dataset('Nation')
- for $r1 in dataset('Region')
- where $n1.n_regionkey = $r1.r_regionkey and $r1.r_name = 'AMERICA'
- return {"n_nationkey": $n1.n_nationkey}
- )
- where $c.c_nationkey = $nr.n_nationkey
- return {"c_custkey": $c.c_custkey}
- )
- where $nrc.c_custkey = $o.o_custkey
- return {
- "o_orderdate" : $o.o_orderdate,
- "o_orderkey": $o.o_orderkey
- }
-)
-where $l.l_orderkey = $nrco.o_orderkey and $nrco.o_orderdate >= '1995-01-01'
- and $nrco.o_orderdate < '1996-12-31'
-return {
- "o_orderdate": $nrco.o_orderdate,
- "l_partkey": $l.l_partkey,
- "l_discount": $l.l_discount,
- "l_extendedprice": $l.l_extendedprice,
- "l_suppkey": $l.l_suppkey
-})
-for $p in dataset("Part")
-where $p.p_partkey = $lnrco.l_partkey and $p.p_type = 'ECONOMY ANODIZED STEEL'
-return {
- "o_orderdate": $lnrco.o_orderdate,
- "l_discount": $lnrco.l_discount,
- "l_extendedprice": $lnrco.l_extendedprice,
- "l_suppkey": $lnrco.l_suppkey
-}
-)
-where $s.s_suppkey = $lnrcop.l_suppkey
-return {
- "o_orderdate": $lnrcop.o_orderdate,
- "l_discount": $lnrcop.l_discount,
- "l_extendedprice": $lnrcop.l_extendedprice,
- "l_suppkey": $lnrcop.l_suppkey,
- "s_nationkey": $s.s_nationkey
-})
-
-for $n2 in dataset('Nation')
-where $slnrcop.s_nationkey = $n2.n_nationkey
-let $o_year := year($slnrcop.o_orderdate)
-return {
- "year": $o_year,
- "revenue": $slnrcop.l_extendedprice *(1-$slnrcop.l_discount),
- "s_name": $n2.n_name
-})
-group by $year := $t.year with $t
-order by $year
-return {
- "year": $year,
- "mkt_share":sum(for $i in $t return switch-case($i.s_name='BRAZIL', true, $i.revenue, false, 0.0))/
- sum(for $i in $t return $i.revenue)
-}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.1.ddl.aql
new file mode 100644
index 0000000..8af3065
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset Partsupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.2.update.aql
new file mode 100644
index 0000000..b23ff7f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.2.update.aql
@@ -0,0 +1,33 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Partsupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.3.query.aql
new file mode 100644
index 0000000..7d3dd00
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share/q8_national_market_share.3.query.aql
@@ -0,0 +1,72 @@
+use dataverse tpch;
+
+for $t in (
+for $slnrcop in
+(for $s in dataset("Supplier")
+for $lnrcop in
+(
+for $lnrco in
+(
+for $l in dataset('LineItem')
+for $nrco in (
+ for $o in dataset('Orders')
+ for $nrc in (
+ for $c in dataset('Customer')
+ for $nr in (
+ for $n1 in dataset('Nation')
+ for $r1 in dataset('Region')
+ where $n1.n_regionkey = $r1.r_regionkey and $r1.r_name = 'AMERICA'
+ return {"n_nationkey": $n1.n_nationkey}
+ )
+ where $c.c_nationkey = $nr.n_nationkey
+ return {"c_custkey": $c.c_custkey}
+ )
+ where $nrc.c_custkey = $o.o_custkey
+ return {
+ "o_orderdate" : $o.o_orderdate,
+ "o_orderkey": $o.o_orderkey
+ }
+)
+where $l.l_orderkey = $nrco.o_orderkey and $nrco.o_orderdate >= '1995-01-01'
+ and $nrco.o_orderdate < '1996-12-31'
+return {
+ "o_orderdate": $nrco.o_orderdate,
+ "l_partkey": $l.l_partkey,
+ "l_discount": $l.l_discount,
+ "l_extendedprice": $l.l_extendedprice,
+ "l_suppkey": $l.l_suppkey
+})
+for $p in dataset("Part")
+where $p.p_partkey = $lnrco.l_partkey and $p.p_type = 'ECONOMY ANODIZED STEEL'
+return {
+ "o_orderdate": $lnrco.o_orderdate,
+ "l_discount": $lnrco.l_discount,
+ "l_extendedprice": $lnrco.l_extendedprice,
+ "l_suppkey": $lnrco.l_suppkey
+}
+)
+where $s.s_suppkey = $lnrcop.l_suppkey
+return {
+ "o_orderdate": $lnrcop.o_orderdate,
+ "l_discount": $lnrcop.l_discount,
+ "l_extendedprice": $lnrcop.l_extendedprice,
+ "l_suppkey": $lnrcop.l_suppkey,
+ "s_nationkey": $s.s_nationkey
+})
+
+for $n2 in dataset('Nation')
+where $slnrcop.s_nationkey = $n2.n_nationkey
+let $o_year := year($slnrcop.o_orderdate)
+return {
+ "year": $o_year,
+ "revenue": $slnrcop.l_extendedprice *(1-$slnrcop.l_discount),
+ "s_name": $n2.n_name
+})
+group by $year := $t.year with $t
+order by $year
+return {
+ "year": $year,
+ "mkt_share":sum(for $i in $t return switch-case($i.s_name='BRAZIL', true, $i.revenue, false, 0.0))/
+ sum(for $i in $t return $i.revenue)
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql
deleted file mode 100644
index 9d83747..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql
+++ /dev/null
@@ -1,184 +0,0 @@
-drop dataverse tpch if exists;
-create dataverse tpch;
-
-
-use dataverse tpch;
-
-create type LineItemType as closed {
- l_orderkey: int32,
- l_partkey: int32,
- l_suppkey: int32,
- l_linenumber: int32,
- l_quantity: int32,
- l_extendedprice: double,
- l_discount: double,
- l_tax: double,
- l_returnflag: string,
- l_linestatus: string,
- l_shipdate: string,
- l_commitdate: string,
- l_receiptdate: string,
- l_shipinstruct: string,
- l_shipmode: string,
- l_comment: string
-}
-
-create type OrderType as closed {
- o_orderkey: int32,
- o_custkey: int32,
- o_orderstatus: string,
- o_totalprice: double,
- o_orderdate: string,
- o_orderpriority: string,
- o_clerk: string,
- o_shippriority: int32,
- o_comment: string
-}
-
-create type CustomerType as closed {
- c_custkey: int32,
- c_name: string,
- c_address: string,
- c_nationkey: int32,
- c_phone: string,
- c_acctbal: double,
- c_mktsegment: string,
- c_comment: string
-}
-
-create type SupplierType as closed {
- s_suppkey: int32,
- s_name: string,
- s_address: string,
- s_nationkey: int32,
- s_phone: string,
- s_acctbal: double,
- s_comment: string
-}
-
-create type NationType as closed {
- n_nationkey: int32,
- n_name: string,
- n_regionkey: int32,
- n_comment: string
-}
-
-create type RegionType as closed {
- r_regionkey: int32,
- r_name: string,
- r_comment: string
-}
-
-create type PartType as closed {
- p_partkey: int32,
- p_name: string,
- p_mfgr: string,
- p_brand: string,
- p_type: string,
- p_size: int32,
- p_container: string,
- p_retailprice: double,
- p_comment: string
-}
-
-create type PartSuppType as closed {
- ps_partkey: int32,
- ps_suppkey: int32,
- ps_availqty: int32,
- ps_supplycost: double,
- ps_comment: string
-}
-
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset LineItem(LineItemType)
- partitioned by key l_orderkey, l_linenumber on group1;
-create dataset Orders(OrderType)
- partitioned by key o_orderkey on group1;
-create dataset Supplier(SupplierType)
- partitioned by key s_suppkey on group1;
-create dataset Region(RegionType)
- partitioned by key r_regionkey on group1;
-create dataset Nation(NationType)
- partitioned by key n_nationkey on group1;
-create dataset Part(PartType)
- partitioned by key p_partkey on group1;
-create dataset PartSupp(PartSuppType)
- partitioned by key ps_partkey, ps_suppkey on group1;
-create dataset Customer(CustomerType)
- partitioned by key c_custkey on group1;
-
-load dataset LineItem
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Orders
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Supplier
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Region
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Nation
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Part
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset PartSupp
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-load dataset Customer
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
-
-write output to nc1:"rttest/tpch_q9_product_type_profit_nt.adm";
-
-
-for $profit in
-( for $o in dataset('Orders')
- for $l3 in
- ( for $p in dataset('Part')
- for $l2 in
- ( for $ps in dataset('PartSupp')
- for $l1 in
- ( for $s1 in
- ( for $s in dataset('Supplier')
- for $n in dataset('Nation')
- where $n.n_nationkey = $s.s_nationkey
- return
- { "s_suppkey": $s.s_suppkey, "n_name": $n.n_name} )
- for $l in dataset('LineItem')
- where $s1.s_suppkey = $l.l_suppkey
- return
- { "l_suppkey": $l.l_suppkey, "l_extendedprice": $l.l_extendedprice, "l_discount": $l.l_discount,
- "l_quantity": $l.l_quantity, "l_partkey": $l.l_partkey, "l_orderkey": $l.l_orderkey, "n_name": $s1.n_name } )
- where $ps.ps_suppkey = $l1.l_suppkey and $ps.ps_partkey = $l1.l_partkey
- return
- { "l_extendedprice": $l1.l_extendedprice, "l_discount": $l1.l_discount, "l_quantity": $l1.l_quantity,
- "l_partkey": $l1.l_partkey, "l_orderkey": $l1.l_orderkey, "n_name": $l1.n_name, "ps_supplycost": $ps.ps_supplycost } )
- where contains($p.p_name, 'green') and $p.p_partkey = $l2.l_partkey
- return
- { "l_extendedprice": $l2.l_extendedprice, "l_discount": $l2.l_discount, "l_quantity": $l2.l_quantity,
- "l_orderkey": $l2.l_orderkey, "n_name": $l2.n_name, "ps_supplycost": $l2.ps_supplycost } )
- where $o.o_orderkey = $l3.l_orderkey
- let $amount := $l3.l_extendedprice * (1 - $l3.l_discount) - $l3.ps_supplycost * $l3.l_quantity
- let $o_year := year($o.o_orderdate)
- return
- { "nation": $l3.n_name, "o_year": $o_year, "amount": $amount } )
- group by $nation := $profit.nation, $o_year := $profit.o_year with $profit
- order by $nation, $o_year desc
- return
- { "nation": $nation,
- "o_year": $o_year,
- "sum_profit": sum( for $pr in $profit return $pr.amount ) }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.1.ddl.aql
new file mode 100644
index 0000000..c7fbbc6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.1.ddl.aql
@@ -0,0 +1,107 @@
+drop dataverse tpch if exists;
+create dataverse tpch;
+
+use dataverse tpch;
+
+create type LineItemType as closed {
+ l_orderkey: int32,
+ l_partkey: int32,
+ l_suppkey: int32,
+ l_linenumber: int32,
+ l_quantity: int32,
+ l_extendedprice: double,
+ l_discount: double,
+ l_tax: double,
+ l_returnflag: string,
+ l_linestatus: string,
+ l_shipdate: string,
+ l_commitdate: string,
+ l_receiptdate: string,
+ l_shipinstruct: string,
+ l_shipmode: string,
+ l_comment: string
+}
+
+create type OrderType as closed {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create type CustomerType as closed {
+ c_custkey: int32,
+ c_name: string,
+ c_address: string,
+ c_nationkey: int32,
+ c_phone: string,
+ c_acctbal: double,
+ c_mktsegment: string,
+ c_comment: string
+}
+
+create type SupplierType as closed {
+ s_suppkey: int32,
+ s_name: string,
+ s_address: string,
+ s_nationkey: int32,
+ s_phone: string,
+ s_acctbal: double,
+ s_comment: string
+}
+
+create type NationType as closed {
+ n_nationkey: int32,
+ n_name: string,
+ n_regionkey: int32,
+ n_comment: string
+}
+
+create type RegionType as closed {
+ r_regionkey: int32,
+ r_name: string,
+ r_comment: string
+}
+
+create type PartType as closed {
+ p_partkey: int32,
+ p_name: string,
+ p_mfgr: string,
+ p_brand: string,
+ p_type: string,
+ p_size: int32,
+ p_container: string,
+ p_retailprice: double,
+ p_comment: string
+}
+
+create type PartSuppType as closed {
+ ps_partkey: int32,
+ ps_suppkey: int32,
+ ps_availqty: int32,
+ ps_supplycost: double,
+ ps_comment: string
+}
+
+create dataset LineItem(LineItemType)
+ primary key l_orderkey, l_linenumber;
+create dataset Orders(OrderType)
+ primary key o_orderkey;
+create dataset Supplier(SupplierType)
+ primary key s_suppkey;
+create dataset Region(RegionType)
+ primary key r_regionkey;
+create dataset Nation(NationType)
+ primary key n_nationkey;
+create dataset Part(PartType)
+ primary key p_partkey;
+create dataset PartSupp(PartSuppType)
+ primary key ps_partkey, ps_suppkey;
+create dataset Customer(CustomerType)
+ primary key c_custkey;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.2.update.aql
new file mode 100644
index 0000000..c68e0af
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.2.update.aql
@@ -0,0 +1,34 @@
+use dataverse tpch;
+
+load dataset LineItem
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Supplier
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/supplier.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Region
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/region.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Nation
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/nation.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Part
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/part.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset PartSupp
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/partsupp.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset Customer
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/customer.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.3.query.aql
new file mode 100644
index 0000000..bd6457c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt/q9_product_type_profit_nt.3.query.aql
@@ -0,0 +1,40 @@
+use dataverse tpch;
+
+for $profit in
+( for $o in dataset('Orders')
+ for $l3 in
+ ( for $p in dataset('Part')
+ for $l2 in
+ ( for $ps in dataset('PartSupp')
+ for $l1 in
+ ( for $s1 in
+ ( for $s in dataset('Supplier')
+ for $n in dataset('Nation')
+ where $n.n_nationkey = $s.s_nationkey
+ return
+ { "s_suppkey": $s.s_suppkey, "n_name": $n.n_name} )
+ for $l in dataset('LineItem')
+ where $s1.s_suppkey = $l.l_suppkey
+ return
+ { "l_suppkey": $l.l_suppkey, "l_extendedprice": $l.l_extendedprice, "l_discount": $l.l_discount,
+ "l_quantity": $l.l_quantity, "l_partkey": $l.l_partkey, "l_orderkey": $l.l_orderkey, "n_name": $s1.n_name } )
+ where $ps.ps_suppkey = $l1.l_suppkey and $ps.ps_partkey = $l1.l_partkey
+ return
+ { "l_extendedprice": $l1.l_extendedprice, "l_discount": $l1.l_discount, "l_quantity": $l1.l_quantity,
+ "l_partkey": $l1.l_partkey, "l_orderkey": $l1.l_orderkey, "n_name": $l1.n_name, "ps_supplycost": $ps.ps_supplycost } )
+ where contains($p.p_name, 'green') and $p.p_partkey = $l2.l_partkey
+ return
+ { "l_extendedprice": $l2.l_extendedprice, "l_discount": $l2.l_discount, "l_quantity": $l2.l_quantity,
+ "l_orderkey": $l2.l_orderkey, "n_name": $l2.n_name, "ps_supplycost": $l2.ps_supplycost } )
+ where $o.o_orderkey = $l3.l_orderkey
+ let $amount := $l3.l_extendedprice * (1 - $l3.l_discount) - $l3.ps_supplycost * $l3.l_quantity
+ let $o_year := year($o.o_orderdate)
+ return
+ { "nation": $l3.n_name, "o_year": $o_year, "amount": $amount } )
+ group by $nation := $profit.nation, $o_year := $profit.o_year with $profit
+ order by $nation, $o_year desc
+ return
+ { "nation": $nation,
+ "o_year": $o_year,
+ "sum_profit": sum( for $pr in $profit return $pr.amount ) }
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.1.ddl.aql
new file mode 100644
index 0000000..e49225c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.1.ddl.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Invoke a built-in function with incorrect number of arguments
+ * Expected Res : Failure
+ * Date : Nov 13th 2012
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.2.update.aql
new file mode 100644
index 0000000..3a64f98
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Invoke a built-in function with incorrect number of arguments
+ * Expected Res : Failure
+ * Date : Nov 13th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.3.query.aql
new file mode 100644
index 0000000..dbc01cc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/f01/f01.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Invoke a built-in function with incorrect number of arguments
+ * Expected Res : Failure
+ * Date : Nov 13th 2012
+ */
+
+
+use dataverse test;
+
+let $c1 := int8()
+return $c1
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.1.ddl.aql
new file mode 100644
index 0000000..1290600
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.1.ddl.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue201
+ : https://code.google.com/p/asterixdb/issues/detail?id=201
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.2.update.aql
new file mode 100644
index 0000000..31d1bb3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : This test case is to verify the fix for issue201
+ : https://code.google.com/p/asterixdb/issues/detail?id=201
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.3.query.aql
new file mode 100644
index 0000000..6dc27e2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/query-issue201/query-issue201.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : This test case is to verify the fix for issue201
+ : https://code.google.com/p/asterixdb/issues/detail?id=201
+ * Expected Res : Success
+ * Date : 26th November 2012
+ */
+
+
+let $x:=range(1,100)
+for $i in $x
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.1.ddl.aql
new file mode 100644
index 0000000..1a4483e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.1.ddl.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Pass an ordered list as input to UDF
+ * : and return that ordered list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($list){
+$list
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.2.update.aql
new file mode 100644
index 0000000..f3255c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Pass an ordered list as input to UDF
+ * : and return that ordered list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.3.query.aql
new file mode 100644
index 0000000..3191683
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf01/udf01.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Pass an ordered list as input to UDF
+ * : and return that ordered list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+for $a in [1,2,3,4,5,6,7,8,9,10]
+return test.echo($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.1.ddl.aql
new file mode 100644
index 0000000..e149c07
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.1.ddl.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Pass an ordered list as input to UDF and return the zeroth element of that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.getFirst($list){
+$list[0]
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.2.update.aql
new file mode 100644
index 0000000..652d06a
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Pass an ordered list as input to UDF and return the zeroth element of that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.3.query.aql
new file mode 100644
index 0000000..3e550c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf02/udf02.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Pass an ordered list as input to UDF and return the zeroth element of that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+for $a in [[1,2],[3,4]]
+return test.getFirst($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.1.ddl.aql
new file mode 100644
index 0000000..2bcbfab
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Pass an ordered list as input to UDF and return the zeroth element of that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ * Ignored : Not part of test build due to Issue 200
+ */
+
+// This test is returning NPE... Issue 200
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($list){
+$list
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.2.update.aql
new file mode 100644
index 0000000..1ea43e0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.2.update.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Pass an ordered list as input to UDF and return the zeroth element of that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ * Ignored : Not part of test build due to Issue 200
+ */
+
+// This test is returning NPE... Issue 200
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.3.query.aql
new file mode 100644
index 0000000..5c135c3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf03/udf03.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Pass an ordered list as input to UDF and return the zeroth element of that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ * Ignored : Not part of test build due to Issue 200
+ */
+
+// This test is returning NPE... Issue 200
+
+use dataverse test;
+
+for $a in [[1,2],["A","B"],["UCLA","UCSD","UCR","UCI"]]
+return test.echo($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.1.ddl.aql
new file mode 100644
index 0000000..6bcfd05
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.1.ddl.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Pass as input an ordered list of Records as input to UDF and return the list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($list){
+$list
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.2.update.aql
new file mode 100644
index 0000000..ad89936
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Pass as input an ordered list of Records as input to UDF and return the list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.3.query.aql
new file mode 100644
index 0000000..d166e81
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf04/udf04.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Pass as input an ordered list of Records as input to UDF and return the list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+for $a in [{"name":"John","age":45,"id":123},{"name":"Jim","age":55,"id":103},{"name":"Bill","age":35,"id":125}]
+return test.echo($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.1.ddl.aql
new file mode 100644
index 0000000..02b0cdd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.1.ddl.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Create UDF and bind its return value to a variable and return that variable
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create function test.echo($a){
+$a
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.2.update.aql
new file mode 100644
index 0000000..1a6845d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF and bind its return value to a variable and return that variable
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.3.query.aql
new file mode 100644
index 0000000..71b592d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf05/udf05.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create UDF and bind its return value to a variable and return that variable
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+use dataverse test;
+
+let $b:=1234
+return test.echo($b)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.1.ddl.aql
new file mode 100644
index 0000000..fa094ed
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Pass input of type double to UDF
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($a){
+$a
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.2.update.aql
new file mode 100644
index 0000000..dc16bfc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Pass input of type double to UDF
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.3.query.aql
new file mode 100644
index 0000000..ba130dc
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf06/udf06.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Pass input of type double to UDF
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+let $b:=1234.1
+return test.echo($b)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.1.ddl.aql
new file mode 100644
index 0000000..518a6f1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Pass value of type float to UDF
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($a){
+$a
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.2.update.aql
new file mode 100644
index 0000000..23a19e2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Pass value of type float to UDF
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.3.query.aql
new file mode 100644
index 0000000..f4edd80
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf07/udf07.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Pass value of type float to UDF
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+use dataverse test;
+
+let $b:=1234.1f
+return test.echo($b)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.1.ddl.aql
new file mode 100644
index 0000000..5b41ce3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Pass a sting as input to UDF
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($a){
+$a
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.2.update.aql
new file mode 100644
index 0000000..524b312
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Pass a sting as input to UDF
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.3.query.aql
new file mode 100644
index 0000000..168228d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf08/udf08.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Pass a sting as input to UDF
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+let $a:="This is a test string"
+return test.echo($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.1.ddl.aql
new file mode 100644
index 0000000..b485a1c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Create UDF to read from internal dataset
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type test.TestType as open {
+id : int32
+}
+
+create dataset test.t1(TestType) primary key id;
+
+create function test.readDataset($a) {
+$a
+}
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.2.update.aql
new file mode 100644
index 0000000..1196ae7
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.2.update.aql
@@ -0,0 +1,17 @@
+/*
+ * Description : Create UDF to read from internal dataset
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+use dataverse test;
+
+insert into dataset test.t1({"id":345});
+insert into dataset test.t1({"id":315});
+insert into dataset test.t1({"id":245});
+insert into dataset test.t1({"id":385});
+insert into dataset test.t1({"id":241});
+insert into dataset test.t1({"id":745});
+insert into dataset test.t1({"id":349});
+insert into dataset test.t1({"id":845});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.3.query.aql
new file mode 100644
index 0000000..bbe89e6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf09/udf09.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create UDF to read from internal dataset
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+use dataverse test;
+
+test.readDataset(for $a in dataset('test.t1') order by $a.id return $a);
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.1.ddl.aql
new file mode 100644
index 0000000..1ac5132
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF and pass an unordered list as input and return that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.echo($uolist){
+$uolist
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.2.update.aql
new file mode 100644
index 0000000..3ba2d37
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF and pass an unordered list as input and return that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.3.query.aql
new file mode 100644
index 0000000..baad7a8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf10/udf10.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create UDF and pass an unordered list as input and return that list.
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+let $a:={{"this is optional data","this is extra data","open types are good"}}
+return test.echo($a)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.1.ddl.aql
new file mode 100644
index 0000000..6197e3b
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF to return ordered list of integers
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.OList(){
+[1,2,3,4,5,6,7,8,9,10]
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.2.update.aql
new file mode 100644
index 0000000..42148fb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create UDF to return ordered list of integers
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.3.query.aql
new file mode 100644
index 0000000..89019d0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf11/udf11.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create UDF to return ordered list of integers
+ * Expected Res : Success
+ * Date : Sep 4th 2012
+ */
+
+use dataverse test;
+
+for $a in test.OList()
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.1.ddl.aql
new file mode 100644
index 0000000..f158210
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF to add two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.foo($a,$b) {
+$a+$b
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.2.update.aql
new file mode 100644
index 0000000..b011718
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF to add two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.3.query.aql
new file mode 100644
index 0000000..8d993e5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf12/udf12.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create UDF to add two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+test.foo(100,200)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.1.ddl.aql
new file mode 100644
index 0000000..1e88934
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF to subtract two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.foo($a,$b) {
+$a - $b
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.2.update.aql
new file mode 100644
index 0000000..4ce8c6d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF to subtract two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.3.query.aql
new file mode 100644
index 0000000..f92eeb9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf13/udf13.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create UDF to subtract two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+test.foo(400,200)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.1.ddl.aql
new file mode 100644
index 0000000..0e034d8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF to multiply two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.foo($a,$b) {
+$a*$b
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.2.update.aql
new file mode 100644
index 0000000..63c1ba4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF to multiply two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.3.query.aql
new file mode 100644
index 0000000..5b89d75
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf14/udf14.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create UDF to multiply two integers
+ * Expected Res : Success
+ * Date : 4th September 2012
+ */
+
+use dataverse test;
+
+test.foo(400,200)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.1.ddl.aql
new file mode 100644
index 0000000..4ea1733
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Create UDF that returns a heterogeneous ordered list
+ * : invoke the UDF in the FOR expression of FLWOR
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ * Ignored : Not part of current tests because of Issue 200
+ */
+
+// this test resturns NPE:Issue 166
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.OList2(){
+[[1,2,3,4,5,6,7,8,9,10],["a","b","c","d","e","f","g","h","y"]]
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.2.update.aql
new file mode 100644
index 0000000..8328535
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create UDF that returns a heterogeneous ordered list
+ * : invoke the UDF in the FOR expression of FLWOR
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ * Ignored : Not part of current tests because of Issue 200
+ */
+
+// this test resturns NPE:Issue 166
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.3.query.aql
new file mode 100644
index 0000000..5d4ab28
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf15/udf15.3.query.aql
@@ -0,0 +1,14 @@
+/*
+ * Description : Create UDF that returns a heterogeneous ordered list
+ * : invoke the UDF in the FOR expression of FLWOR
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ * Ignored : Not part of current tests because of Issue 200
+ */
+
+// this test resturns NPE:Issue 166
+
+use dataverse test;
+
+for $a in test.OList2()
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.1.ddl.aql
new file mode 100644
index 0000000..0c90307
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.1.ddl.aql
@@ -0,0 +1,16 @@
+/*
+ * Description : Create UDF that returns string
+ * : compute the string lenght of the string
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.fn02(){
+"Welcome to the world of Asterix"
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.2.update.aql
new file mode 100644
index 0000000..86e9b8c
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create UDF that returns string
+ * : compute the string lenght of the string
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.3.query.aql
new file mode 100644
index 0000000..3537503
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf16/udf16.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDF that returns string
+ * : compute the string lenght of the string
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+let $str := test.fn02()
+return string-length($str)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.1.ddl.aql
new file mode 100644
index 0000000..ade9f42
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Create UDF and invoke it from another UDF and
+ * : child UDF returns a string to the parent.
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.parent(){
+test.child()
+}
+
+create function test.child() {
+"This data is from the child function"
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.2.update.aql
new file mode 100644
index 0000000..936919d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create UDF and invoke it from another UDF and
+ * : child UDF returns a string to the parent.
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.3.query.aql
new file mode 100644
index 0000000..92cbf55
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf17/udf17.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDF and invoke it from another UDF and
+ * : child UDF returns a string to the parent.
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+let $str := test.parent()
+return $str
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.1.ddl.aql
new file mode 100644
index 0000000..a887282
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF and invoke the UDF from with in asterix built-in function
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.fn06(){
+false
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.2.update.aql
new file mode 100644
index 0000000..ad2eee1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF and invoke the UDF from with in asterix built-in function
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.3.query.aql
new file mode 100644
index 0000000..0bdf0e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf18/udf18.3.query.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create UDF and invoke the UDF from with in asterix built-in function
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+let $val := not(test.fn06())
+return $val
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.1.ddl.aql
new file mode 100644
index 0000000..e8695d2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Create UDF and invoke in the WHERE clause of FLWOR expression
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.pie(){
+3.14
+}
+
+create function test.area($radius){
+test.pie() * $radius * $radius
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.2.update.aql
new file mode 100644
index 0000000..a209919
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create UDF and invoke in the WHERE clause of FLWOR expression
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.3.query.aql
new file mode 100644
index 0000000..ccbd0b1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf19/udf19.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create UDF and invoke in the WHERE clause of FLWOR expression
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+for $a in [2,4,6,8,10,12]
+where test.area($a) > 100
+return test.area($a)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.1.ddl.aql
new file mode 100644
index 0000000..cf1b5d3
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.1.ddl.aql
@@ -0,0 +1,20 @@
+/*
+ * Description : Create UDF and invoke in the WHERE clause of FLWOR expression
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.pie(){
+3.14
+}
+
+create function test.area($radius){
+test.pie() * $radius * $radius
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.2.update.aql
new file mode 100644
index 0000000..1b0856e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF and invoke in the WHERE clause of FLWOR expression
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.3.query.aql
new file mode 100644
index 0000000..3f88d6d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf20/udf20.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create UDF and invoke in the WHERE clause of FLWOR expression
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+
+use dataverse test;
+
+for $a in [2,4,6,8,10,12]
+where test.area($a) > 100
+return { "radius" : $a,"area" : test.area($a) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.1.ddl.aql
new file mode 100644
index 0000000..bc0e5cd
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF to verify if input is odd
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.isOdd($b){
+$b%2 != 0
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.2.update.aql
new file mode 100644
index 0000000..a186d5e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF to verify if input is odd
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.3.query.aql
new file mode 100644
index 0000000..5b9066d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf21/udf21.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDF to verify if input is odd
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+for $a in [10,20,2,30,4,3,6,44,5,7,9,1,13,17,992,19,40,50,60,25,45,65,75]
+where test.isOdd($a)
+return $a
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.1.ddl.aql
new file mode 100644
index 0000000..97ad3b4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF to concatenate two input strings.
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.getFullName($fname,$lname){
+string-concat([$fname,$lname])
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.2.update.aql
new file mode 100644
index 0000000..2af21f1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF to concatenate two input strings.
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.3.query.aql
new file mode 100644
index 0000000..60e52ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf22/udf22.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDF to concatenate two input strings.
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+let $fn := "Bob"
+let $ln := "Harbus"
+return test.getFullName($fn,$ln)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.1.ddl.aql
new file mode 100644
index 0000000..864b697
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF and invoke it in limit clause
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.numRows(){
+6
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.2.update.aql
new file mode 100644
index 0000000..9c2b7f2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.2.update.aql
@@ -0,0 +1,6 @@
+/*
+ * Description : Create UDF and invoke it in limit clause
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.3.query.aql
new file mode 100644
index 0000000..f43c299
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf23/udf23.3.query.aql
@@ -0,0 +1,11 @@
+/*
+ * Description : Create UDF and invoke it in limit clause
+ * Expected Res : Success
+ * Date : Sep 5th 2012
+ */
+
+use dataverse test;
+
+for $l in dataset('Metadata.Dataset')
+limit test.numRows()
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.1.ddl.aql
new file mode 100644
index 0000000..3c8fc04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.1.ddl.aql
@@ -0,0 +1,19 @@
+/*
+ * Description : Create UDF that returns a range
+ * Expected Res : Success
+ * Date : Sep 5 2012
+ * Ignored : Not part of current test build because of Issue 201
+ */
+
+// Returns java.lang.ClassCastException : Issue 195
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.myRangeFn($n)
+{
+ range(1,$n)
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.2.update.aql
new file mode 100644
index 0000000..fc6a252
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.2.update.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create UDF that returns a range
+ * Expected Res : Success
+ * Date : Sep 5 2012
+ * Ignored : Not part of current test build because of Issue 201
+ */
+
+// Returns java.lang.ClassCastException : Issue 195
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.3.query.aql
new file mode 100644
index 0000000..4e85a92
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf24/udf24.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Create UDF that returns a range
+ * Expected Res : Success
+ * Date : Sep 5 2012
+ * Ignored : Not part of current test build because of Issue 201
+ */
+
+// Returns java.lang.ClassCastException : Issue 195
+
+use dataverse test;
+
+for $i in test.myRangeFn(100)
+return $i
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.1.ddl.aql
new file mode 100644
index 0000000..174b3c9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.1.ddl.aql
@@ -0,0 +1,21 @@
+/*
+ * Description : Create UDF and invoke with negative inputs.
+ * Expected Res : Failure
+ * Date : 5th Sep 2012
+ */
+
+// This one returns NPE...
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.computeBonus($pbcRating,$salary)
+{
+ if ($pbcRating = 1) then
+ $salary * 0.25
+ else
+ $salary * 0.10
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.2.update.aql
new file mode 100644
index 0000000..13118c8
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.2.update.aql
@@ -0,0 +1,8 @@
+/*
+ * Description : Create UDF and invoke with negative inputs.
+ * Expected Res : Failure
+ * Date : 5th Sep 2012
+ */
+
+// This one returns NPE...
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.3.query.aql
new file mode 100644
index 0000000..f2b1bc1
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf25/udf25.3.query.aql
@@ -0,0 +1,12 @@
+/*
+ * Description : Create UDF and invoke with negative inputs.
+ * Expected Res : Failure
+ * Date : 5th Sep 2012
+ */
+
+// This one returns NPE...
+
+use dataverse test;
+
+test.computeBonus(-1,-1)
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.1.ddl.aql
new file mode 100644
index 0000000..3e0cf76
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.1.ddl.aql
@@ -0,0 +1,15 @@
+/*
+ * Description : Create UDF and define with missing references.
+ * Expected Res : Failure
+ * Date : Sep 6th 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.needs_f1($x){
+ $x + f1()
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.2.update.aql
new file mode 100644
index 0000000..58cfb49
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.2.update.aql
@@ -0,0 +1,7 @@
+/*
+ * Description : Create UDF and define with missing references.
+ * Expected Res : Failure
+ * Date : Sep 6th 2012
+ */
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.3.query.aql
new file mode 100644
index 0000000..686b261
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf26/udf26.3.query.aql
@@ -0,0 +1,9 @@
+/*
+ * Description : Create UDF and define with missing references.
+ * Expected Res : Failure
+ * Date : Sep 6th 2012
+ */
+
+use dataverse test;
+
+test.needs_f1(12345)
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.1.ddl.aql
new file mode 100644
index 0000000..8e46ca9
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description : Create UDF and invoke UDF from a quantified expression
+ * Expected Res : Success
+ * Date : Sep 6th 2012
+ */
+
+// this test is not giving expected results.
+// issue 194 reported to track this
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create function test.f1(){
+100
+}
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.2.update.aql
new file mode 100644
index 0000000..57b59fb
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description : Create UDF and invoke UDF from a quantified expression
+ * Expected Res : Success
+ * Date : Sep 6th 2012
+ */
+
+// this test is not giving expected results.
+// issue 194 reported to track this
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.3.query.aql
new file mode 100644
index 0000000..50a1cb2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/user-defined-functions/udf27/udf27.3.query.aql
@@ -0,0 +1,13 @@
+/*
+ * Description : Create UDF and invoke UDF from a quantified expression
+ * Expected Res : Success
+ * Date : Sep 6th 2012
+ */
+
+// this test is not giving expected results.
+// issue 194 reported to track this
+
+use dataverse test;
+
+let $a := true
+return some $i in [100,200] satisfies test.f1()
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/print_01.aql b/asterix-app/src/test/resources/runtimets/queries/writers/print_01.aql
deleted file mode 100644
index dcdc3ee..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/writers/print_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/writers_print_01.adm" using "edu.uci.ics.hyracks.algebricks.core.algebra.runtime.writers.PrinterBasedWriterFactory";
-
-for $x in ["foo", "bar"]
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.2.update.aql
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.2.update.aql
@@ -0,0 +1,2 @@
+
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.3.query.aql
new file mode 100644
index 0000000..9af03ea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/writers/print_01/print_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $x in ["foo", "bar"]
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01.aql b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01.aql
deleted file mode 100644
index fd35a0f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01.aql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-write output to nc1:"rttest/writers_serialized_01.adm" using "edu.uci.ics.hyracks.algebricks.core.algebra.runtime.writers.SerializedDataWriterFactory";
-
-for $x in ["foo", "bar"]
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.1.ddl.aql
new file mode 100644
index 0000000..97b4670
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.1.ddl.aql
@@ -0,0 +1,4 @@
+drop dataverse test if exists;
+
+create dataverse test;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.2.update.aql
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.2.update.aql
diff --git a/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.3.query.aql
new file mode 100644
index 0000000..9af03ea
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/writers/serialized_01/serialized_01.3.query.aql
@@ -0,0 +1,4 @@
+use dataverse test;
+
+for $x in ["foo", "bar"]
+return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/year_01.aql b/asterix-app/src/test/resources/runtimets/queries/year_01.aql
deleted file mode 100644
index da93e96..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/year_01.aql
+++ /dev/null
@@ -1,6 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-
-write output to nc1:"rttest/year_01.adm";
-
-year("1996-12-01")