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")