diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-01.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-01.aql
index 63e1248..45942c6 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-01.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-01.aql
@@ -1,7 +1,6 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for this predicate.
+ *  Description     : This test is intended to verify that the primary BTree index is NOT used 
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-02.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-02.aql
index 88a50ac..c12fcf5 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-02.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-02.aql
@@ -1,6 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is NOT used 
+ *  Description     : This test is intended to verify that the primary BTree index is NOT used 
  *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-03.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-03.aql
index 4fd1926..1df918a 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-03.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-03.aql
@@ -1,7 +1,6 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for the predicates that satisfy BTree index look up rule.
+ *  Description     : This test is intended to verify that the primary BTree index is NOT used 
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-04.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-04.aql
index d9bf70f..8dc90af 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-04.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-04.aql
@@ -1,6 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is NOT used 
+ *  Description     : This test is intended to verify that the primary BTree index is NOT used 
  *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-05.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-05.aql
index b3dfe80..33d2b39 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-05.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-05.aql
@@ -1,6 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is NOT used 
+ *  Description     : This test is intended to verify that the primary BTree index is NOT used 
  *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-06.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-06.aql
index f4dc44a..0136fb8 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-06.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-06.aql
@@ -1,7 +1,6 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for the predicates that satisfy BTree index look up rule.
+ *  Description     : This test is intended to verify that the primary BTree index is used 
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-07.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-07.aql
index 770db27..e982a01 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-07.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-07.aql
@@ -1,6 +1,6 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is NOT used 
+ *  Description     : This test is intended to verify that the primary BTree index is NOT used 
+ *                  : in the optimized query plan. 
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-08.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-08.aql
index 6ab5c9a..fd0717d 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-08.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-08.aql
@@ -1,7 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the primary BTree index is used in the optimized query plan 
- *                  : predicate => where $emp.fname = "Young Seok" and $emp.lname = "Kim"      
+ *  Description     : This test is intended to verify that the primary BTree index is used in the optimized query plan 
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +15,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Young Seok" and $emp.lname = "Kim"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-09.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-09.aql
index 7906bb4..7f97296 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-09.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-09.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like (predicate 1 or predicate 2).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -19,17 +19,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Julio" or $emp.lname = "Malaika"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-10.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-10.aql
index 14f68b5..2cd2218 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-10.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-10.aql
@@ -1,7 +1,7 @@
 /*
  *  Description     : BTree Index verification (usage) test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate 1 and predicate 2).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Alex" and $emp.lname < "Zach"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-11.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-11.aql
index 5b09c49..6f44e0d 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-11.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-11.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like the one used in this test.
+ *                  : in the optimized query plan for predicates.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Allan" and $emp.lname < "Zubi"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-12.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-12.aql
index f2d52f3..decb330 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-12.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-12.aql
@@ -1,7 +1,7 @@
 /*
  *  Description     : BTree Index verification (usage) test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ($v1 > v2 and $v3 = v4)
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -19,17 +19,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Allan" and $emp.lname = "Xu"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-13.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-13.aql
index d2463f5..23207de 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-13.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-13.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ( $V1 = V2 and $V3 < V4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -19,17 +19,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Julio" and $emp.lname < "Xu"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-14.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-14.aql
index 3a15220..6b40be8 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-14.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-14.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ($v1 >= v2 and $v3 <= v4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Michael" and $emp.lname <= "Xu"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-15.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-15.aql
index 255c11e..0d81301 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-15.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-15.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Craig" and $emp.lname > "Kevin" and $emp.fname < "Mary" and $emp.lname < "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-16.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-16.aql
index fecece0..1abe1c1 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-16.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-16.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Craig" and $emp.lname >= "Kevin" and $emp.fname <= "Mary" and $emp.lname <= "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-17.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-17.aql
index f15cee1..3b1a5dd 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-17.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-17.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ($v1 <= v2 and $v3 > v4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname <= "Craig" and $emp.lname > "Kevin"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-18.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-18.aql
index 89f4859..b298fdb6 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-18.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-18.aql
@@ -1,5 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is NOT used 
  *                  : in the optimized query plan 
  *  Expected Result : Success
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname != "Michael" and $emp.lname != "Carey"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-19.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-19.aql
index 19abd0d..cf80f32 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-19.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-19.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Craig" and $emp.lname > "Kevin" and $emp.fname <= "Mary" and $emp.lname <= "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-20.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-20.aql
index a991aab..fd2896c 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-20.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-20.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname,lname fields
 create dataset testdst(TestType) partitioned by key fname,lname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Craig" and $emp.lname >= "Kevin" and $emp.fname < "Mary" and $emp.lname < "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-21.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-21.aql
index adf7a25..d1ff718 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-21.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-21.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like $v1 > v2.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname field
 create dataset testdst(TestType) partitioned by key fname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Max" 
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-22.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-22.aql
index 6ee1a0b..6d02379 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-22.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-22.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like $v1 >= v2.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname field
 create dataset testdst(TestType) partitioned by key fname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Sofia" 
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-23.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-23.aql
index ced01e5..295a37e 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-23.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-23.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like $v1 < v2.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname field
 create dataset testdst(TestType) partitioned by key fname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname < "Chen" 
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-24.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-24.aql
index cb60d9b..9306a41 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-24.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-24.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like $v1 <= v2.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname field
 create dataset testdst(TestType) partitioned by key fname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname <= "Julio" 
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-25.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-25.aql
index a104c58..6efe596 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-25.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-25.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like $v1 > v2 and $v3 < v4.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname field
 create dataset testdst(TestType) partitioned by key fname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Neil" and $emp.fname < "Roger" 
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-26.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-26.aql
index af1ca79..ee02059 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-26.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-primary-26.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the primary BTree index is used 
- *                  : in the optimized query plan for predicates like $v1 >= v2 and $v3 <= v4.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -17,17 +17,12 @@
     lname : string
 }
 
-// create internal dataset with primary index defined on fname field
 create dataset testdst(TestType) partitioned by key fname;
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Max" and $emp.fname <= "Roger" 
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-31.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-31.aql
index 5f975c9..ae17445 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-31.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-31.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for this predicate.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with id, fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Roger"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-32.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-32.aql
index 2baec2f..24c1f04 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-32.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-32.aql
@@ -1,5 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
  *                  : in the optimized query plan.
  *  Expected Result : Success
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Susan"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-33.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-33.aql
index 0782bb3..62dff29 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-33.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-33.aql
@@ -1,7 +1,7 @@
 /*
  *  Description     : BTree Index verification (usage) test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for the predicates that satisfy BTree index look up rule.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname < "Isa"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-34.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-34.aql
index 9e244d8..3f24cad 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-34.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-34.aql
@@ -1,5 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
  *                  : in the optimized query plan.
  *  Expected Result : Success
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname <= "Vanpatten"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-35.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-35.aql
index 847e38c..ca63c2b 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-35.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-35.aql
@@ -1,5 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
  *                  : in the optimized query plan.
  *  Expected Result : Success
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname != "Max"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-36.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-36.aql
index 44a3fe7..2d45593 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-36.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-36.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for the predicates that satisfy BTree index look up rule.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Julio"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-37.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-37.aql
index 1ae840e..446ec4c 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-37.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-37.aql
@@ -1,6 +1,6 @@
 /*
- *  Description     : BTree Index verification (usage) test
- *                  : This test is intended to verify that the secondary BTree index is NOT used 
+ *  Description     : BTree Index verification test
+ *                  : This test is intended to verify that the secondary BTree index is NOT used in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.lname = "Kim"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-38.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-38.aql
index d093ac4..8f902e8 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-38.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-38.aql
@@ -1,7 +1,6 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used in the optimized query plan 
- *                  : predicate => where $emp.fname = "Young Seok" and $emp.lname = "Kim"      
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +17,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Young Seok" and $emp.lname = "Kim"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-39.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-39.aql
index 9249e21..f63b9f0 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-39.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-39.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like (predicate 1 or predicate 2).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Julio" or $emp.lname = "Malaika"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-40.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-40.aql
index cfc1319..797f3a8 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-40.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-40.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate 1 and predicate 2).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Alex" and $emp.lname < "Zach"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-41.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-41.aql
index 38e4d6b..4f7d1ed 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-41.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-41.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like the one used in this test.
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Allan" and $emp.lname < "Zubi"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-42.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-42.aql
index 5224aaf..3f5946a 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-42.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-42.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ($v1 > v2 and $v3 = v4)
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Allan" and $emp.lname = "Xu"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-43.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-43.aql
index 44f6983..0524ce4 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-43.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-43.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ( $V1 = V2 and $V3 < V4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -20,20 +20,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname = "Julio" and $emp.lname < "Xu"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-44.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-44.aql
index 6fd0577..0666846 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-44.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-44.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ($v1 >= v2 and $v3 <= v4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Michael" and $emp.lname <= "Xu"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-45.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-45.aql
index 02723cb..9d1024f 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-45.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-45.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Craig" and $emp.lname > "Kevin" and $emp.fname < "Mary" and $emp.lname < "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-46.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-46.aql
index 86c4f84..867c59a 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-46.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-46.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Craig" and $emp.lname >= "Kevin" and $emp.fname <= "Mary" and $emp.lname <= "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-47.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-47.aql
index b9d3eed..ea92628 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-47.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-47.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
- *                  : in the optimized query plan for predicates like ($v1 <= v2 and $v3 > v4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname <= "Craig" and $emp.lname > "Kevin"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-48.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-48.aql
index 96e81ee..98d0ffb 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-48.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-48.aql
@@ -1,5 +1,5 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is NOT used 
  *                  : in the optimized query plan 
  *  Expected Result : Success
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname != "Michael" and $emp.lname != "Carey"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-49.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-49.aql
index 0bd3f78..2c6b756 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-49.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-49.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -21,17 +21,12 @@
 // create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname > "Craig" and $emp.lname > "Kevin" and $emp.fname <= "Mary" and $emp.lname <= "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-50.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-50.aql
index 9bd5b5a..489319f 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-50.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-50.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst') 
 where $emp.fname >= "Craig" and $emp.lname >= "Kevin" and $emp.fname < "Mary" and $emp.lname < "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-51.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-51.aql
index d4860ec..246c071 100644
--- a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-51.aql
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-51.aql
@@ -1,7 +1,7 @@
 /*
- *  Description     : BTree Index verification (usage) test
+ *  Description     : BTree Index verification test
  *                  : This test is intended to verify that the secondary BTree index is used 
- *                  : in the optimized query plan for predicates like (predicate1 and predicate2 and predicate3 and predicate4).
+ *                  : in the optimized query plan.
  *  Expected Result : Success
  *  Date            : 13th Aug 2012
  */
@@ -18,20 +18,14 @@
     lname : string
 }
 
-// create internal dataset
 create dataset testdst(TestType) partitioned by key id;
 
-// create secondary index
 create index sec_Idx on testdst(fname,lname);
 
-// load valid data with fname and lname entries
-
 load dataset testdst
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
 
-// Query the data that was loaded above. 
-
 for $emp in dataset('testdst')
 where $emp.fname >= "Craig" and $emp.lname <= "Kevin" and $emp.fname <= "Mary" and $emp.lname >= "Tomes"
 return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-52.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-52.aql
new file mode 100644
index 0000000..769c8c1
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-52.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the secondary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-secondary-52.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+ 
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname > "Max" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-53.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-53.aql
new file mode 100644
index 0000000..606ab5b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-53.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the secondary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-secondary-53.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname >= "Sofia" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-54.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-54.aql
new file mode 100644
index 0000000..ab4c669
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-54.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the secondary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-secondary-54.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname < "Chen" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-55.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-55.aql
new file mode 100644
index 0000000..1df8b0f
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-55.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the secondary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-secondary-55.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname <= "Julio" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-56.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-56.aql
new file mode 100644
index 0000000..2279f5a
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-56.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the primary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-primary-56.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname > "Neil" and $emp.fname < "Roger" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-57.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-57.aql
new file mode 100644
index 0000000..8f98736
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-57.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the secondary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-secondary-57.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname >= "Max" and $emp.fname <= "Roger" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-58.aql b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-58.aql
new file mode 100644
index 0000000..42f49e6
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-secondary-58.aql
@@ -0,0 +1,30 @@
+/*
+ *  Description     : This test is intended to verify that the secondary BTree index is used 
+ *                  : in the optimized query plan.
+ *  Expected Result : Success
+ *  Date            : 13th Aug 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+write output to nc1:"rttest/btree-index_btree-secondary-58.adm";
+
+create type TestType as open {
+    id : int32,
+    fname : string,
+    lname : string
+}
+ 
+create dataset testdst(TestType) partitioned by key id;
+
+create index sec_Idx on testdst(fname);
+
+load dataset testdst
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/id-fn-ln.adm"),("format"="delimited-text"),("delimiter"="|"));
+
+for $emp in dataset('testdst') 
+where $emp.fname = "Max" 
+return $emp
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-52.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-52.plan
new file mode 100644
index 0000000..bc7e26b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-52.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$8(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-53.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-53.plan
new file mode 100644
index 0000000..bc7e26b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-53.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$8(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-54.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-54.plan
new file mode 100644
index 0000000..bc7e26b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-54.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$8(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-55.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-55.plan
new file mode 100644
index 0000000..bc7e26b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-55.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$8(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-56.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-56.plan
new file mode 100644
index 0000000..cb0d369
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-56.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$13(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-57.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-57.plan
new file mode 100644
index 0000000..cb0d369
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-57.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$13(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-58.plan b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-58.plan
new file mode 100644
index 0000000..8c6eaed
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-secondary-58.plan
@@ -0,0 +1,14 @@
+-- SINK_WRITE  |PARTITIONED|
+  -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- BTREE_SEARCH  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |LOCAL|
+            -- STABLE_SORT [$$9(ASC)]  |LOCAL|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- BTREE_SEARCH  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
