Added support of typed indexes over open fields & indexes over nested fields

Open indexes requires user to provide a type along with a indexed field name.
This type would be enforced for all the indexed records, i.e. index cannot be created if in some records a field with provided name has a different type.
Index-specific rewrite rules match provided type with the inferred types of other arguments in join\select statements and trigger index rewrite.

Nested indexes use the same semantics as the regular indexes, with exception that field could be located arbitrarily deep inside nested structure

Change-Id: I53d00aba243ccf7cf79cf7d775dd305813d24f98
Reviewed-on: http://fulliautomatix.ics.uci.edu:8443/97
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Steven Jacobs <sjaco002@ucr.edu>
diff --git a/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterix-app/src/test/resources/runtimets/testsuite.xml
index 645b5bf..4820ecb 100644
--- a/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -12,8 +12,11 @@
  ! See the License for the specific language governing permissions and
  ! limitations under the License.
  !-->
-<test-suite xmlns="urn:xml.testframework.asterix.ics.uci.edu" ResultOffsetPath="results" QueryOffsetPath="queries"
-            QueryFileExtension=".aql">
+<test-suite
+    xmlns="urn:xml.testframework.asterix.ics.uci.edu"
+    ResultOffsetPath="results"
+    QueryOffsetPath="queries"
+    QueryFileExtension=".aql">
     <test-group name="flwor">
         <test-case FilePath="flwor">
             <compilation-unit name="at00">
@@ -240,14 +243,14 @@
                 <output-dir compare="Text">count_null</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="aggregate">
       <compilation-unit name="droptype">
         <output-dir compare="Text">droptype</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!-- TODO(madhusudancs): These tests that test for local_<agg>/global_<agg> functions should be removed, but
+    <!-- TODO(madhusudancs): These tests that test for local_<agg>/global_<agg> functions should be removed, but
     before that we should modify the code to make sure those built-in functions are still defined but not exposed
     by AQL, so leaving these test cases commented.
     <test-case FilePath="aggregate">
@@ -990,7 +993,7 @@
                 <output-dir compare="Text">neq_01</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="comparison">
       <compilation-unit name="numeric-comparison_01">
         <output-dir compare="Text">numeric-comparison_01</output-dir>
@@ -1225,7 +1228,7 @@
                 <output-dir compare="Text">customer_q_08</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="custord">
       <compilation-unit name="denorm-cust-order_01">
         <output-dir compare="Text">denorm-cust-order_01</output-dir>
@@ -1237,14 +1240,14 @@
                 <output-dir compare="Text">denorm-cust-order_02</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="custord">
       <compilation-unit name="denorm-cust-order_03">
         <output-dir compare="Text">denorm-cust-order_03</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="custord">
       <compilation-unit name="freq-clerk">
         <output-dir compare="Text">freq-clerk</output-dir>
@@ -1318,7 +1321,7 @@
                 <output-dir compare="Text">q2</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="dapd">
       <compilation-unit name="q3">
         <output-dir compare="Text">q3</output-dir>
@@ -1484,7 +1487,7 @@
                 <output-dir compare="Text">insert_less_nc</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="dml">
       <compilation-unit name="load-from-hdfs">
         <output-dir compare="Text">load-from-hdfs</output-dir>
@@ -1508,6 +1511,12 @@
             </compilation-unit>
         </test-case>
         <test-case FilePath="dml">
+            <compilation-unit name="load-with-autogenerated-pk_adm_03">
+                <output-dir compare="Text">load-with-autogenerated-pk_adm_03</output-dir>
+                <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
             <compilation-unit name="load-with-autogenerated-pk_csv_01">
                 <output-dir compare="Text">load-with-autogenerated-pk_csv_01</output-dir>
             </compilation-unit>
@@ -1653,6 +1662,66 @@
                 <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index-nullable</output-dir>
             </compilation-unit>
         </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="load-with-index-open">
+                <output-dir compare="Text">load-with-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="load-with-ngram-index-open">
+                <output-dir compare="Text">load-with-ngram-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="load-with-rtree-index-open">
+                <output-dir compare="Text">load-with-rtree-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="load-with-word-index-open">
+                <output-dir compare="Text">load-with-word-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-delete-btree-secondary-index-open">
+                <output-dir compare="Text">scan-delete-btree-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index-open">
+                <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-delete-inverted-index-word-secondary-index-open">
+                <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-delete-rtree-secondary-index-open">
+                <output-dir compare="Text">scan-delete-rtree-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-insert-btree-secondary-index-open">
+                <output-dir compare="Text">scan-insert-btree-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-open">
+                <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-insert-inverted-index-word-secondary-index-open">
+                <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="dml">
+            <compilation-unit name="scan-insert-rtree-secondary-index-open">
+                <output-dir compare="Text">scan-insert-rtree-secondary-index-open</output-dir>
+            </compilation-unit>
+        </test-case>
     </test-group>
     <test-group name="employee">
         <test-case FilePath="employee">
@@ -1667,7 +1736,7 @@
         </test-case>
     </test-group>
     <test-group name="failure">
-        <!--
+    <!--
     <test-case FilePath="failure">
       <compilation-unit name="q1_pricing_summary_report_failure">
         <output-dir compare="Text">q1_pricing_summary_report_failure</output-dir>
@@ -1675,7 +1744,7 @@
     </test-case>
     -->
     </test-group>
-    <!--
+  <!--
   <test-group name="flwor">
     <test-case FilePath="flwor">
       <compilation-unit name="for01">
@@ -2333,7 +2402,7 @@
                 <output-dir compare="Text">dblp-lookup_1</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="fuzzyjoin">
       <compilation-unit name="dblp-splits-3_1">
         <output-dir compare="Text">dblp-splits-3_1</output-dir>
@@ -2778,14 +2847,14 @@
                 <output-dir compare="Text">stable_sort</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+   <!--
     <test-case FilePath="misc">
       <compilation-unit name="range_01">
         <output-dir compare="Text">range_01</output-dir>
       </compilation-unit>
     </test-case>
    -->
-        <!--
+  <!--
     <test-case FilePath="misc">
       <compilation-unit name="tid_01">
         <output-dir compare="Text">tid_01</output-dir>
@@ -2808,6 +2877,769 @@
             </compilation-unit>
         </test-case>
     </test-group>
+    <test-group name="open-index-enforced">
+        <test-group FilePath="open-index-enforced/error-checking">
+            <test-case FilePath="open-index-enforced/error-checking">
+                <compilation-unit name="enforced-field-name-collision">
+                    <output-dir compare="Text">enforced-field-name-collision</output-dir>
+                    <expected-error>edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException
+                    </expected-error>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/error-checking">
+                <compilation-unit name="enforced-field-type-collision">
+                    <output-dir compare="Text">enforced-field-type-collision</output-dir>
+                    <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/error-checking">
+                <compilation-unit name="missing-enforce-statement">
+                    <output-dir compare="Text">missing-enforce-statement</output-dir>
+                    <expected-error>edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException
+                    </expected-error>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/error-checking">
+                <compilation-unit name="index-on-closed-type">
+                    <output-dir compare="Text">index-on-closed-type</output-dir>
+                    <expected-error>edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException
+                    </expected-error>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="open-index-enforced/index-join">
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="btree-secondary-equi-join">
+                    <output-dir compare="Text">btree-secondary-equi-join</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="ngram-edit-distance">
+                    <output-dir compare="Text">ngram-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="ngram-edit-distance-inline">
+                    <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="ngram-jaccard">
+                    <output-dir compare="Text">ngram-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="ngram-jaccard-inline">
+                    <output-dir compare="Text">ngram-jaccard-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="rtree-spatial-intersect-point">
+                    <output-dir compare="Text">rtree-spatial-intersect-point</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="word-jaccard">
+                    <output-dir compare="Text">word-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-join">
+                <compilation-unit name="word-jaccard-inline">
+                    <output-dir compare="Text">word-jaccard-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="open-index-enforced/index-leftouterjoin">
+            <test-case FilePath="open-index-enforced/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-btree-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-btree-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-btree-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-btree-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-invidx-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-invidx-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-invidx-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-invidx-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-rtree-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-rtree-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-rtree-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-rtree-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="open-index-enforced/index-selection">
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="btree-index-composite-key">
+                    <output-dir compare="Text">btree-index-composite-key</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="btree-index-composite-key-mixed-intervals">
+                    <output-dir compare="Text">btree-index-composite-key-mixed-intervals</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="btree-index-rewrite-multiple">
+                    <output-dir compare="Text">btree-index-rewrite-multiple</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-ngram-contains">
+                    <output-dir compare="Text">inverted-index-ngram-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-contains">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-panic">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-panic</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-word-tokens">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-word-tokens</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-ngram-jaccard">
+                    <output-dir compare="Text">inverted-index-ngram-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-word-contains">
+                    <output-dir compare="Text">inverted-index-word-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="inverted-index-word-jaccard">
+                    <output-dir compare="Text">inverted-index-word-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="orders-index-custkey">
+                    <output-dir compare="Text">orders-index-custkey</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="orders-index-custkey-conjunctive">
+                    <output-dir compare="Text">orders-index-custkey-conjunctive</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="range-search">
+                    <output-dir compare="Text">range-search</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/index-selection">
+                <compilation-unit name="rtree-secondary-index">
+                    <output-dir compare="Text">rtree-secondary-index</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group name="open-index-enforced/external-indexing">
+            <test-case FilePath="open-index-enforced/external-indexing">
+                <compilation-unit name="adm-format">
+                    <output-dir compare="Text">adm-format</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/external-indexing">
+                <compilation-unit name="rtree-index">
+                    <output-dir compare="Text">rtree-index</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/external-indexing">
+                <compilation-unit name="leftouterjoin">
+                    <output-dir compare="Text">leftouterjoin</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="open-index-enforced/external-indexing">
+                <compilation-unit name="leftouterjoin-rtree">
+                    <output-dir compare="Text">leftouterjoin-rtree</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+    </test-group>
+    <test-group name="nested-open-index">
+        <test-group FilePath="nested-open-index/index-join">
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="btree-secondary-equi-join">
+                    <output-dir compare="Text">btree-secondary-equi-join</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="ngram-edit-distance">
+                    <output-dir compare="Text">ngram-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="ngram-edit-distance-inline">
+                    <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="ngram-jaccard">
+                    <output-dir compare="Text">ngram-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="ngram-jaccard-inline">
+                    <output-dir compare="Text">ngram-jaccard-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="rtree-spatial-intersect-point">
+                    <output-dir compare="Text">rtree-spatial-intersect-point</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="word-jaccard">
+                    <output-dir compare="Text">word-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-join">
+                <compilation-unit name="word-jaccard-inline">
+                    <output-dir compare="Text">word-jaccard-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="nested-open-index/index-leftouterjoin">
+            <test-case FilePath="nested-open-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-btree-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-btree-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-btree-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-btree-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-invidx-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-invidx-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-invidx-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-invidx-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-rtree-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-rtree-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-rtree-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-rtree-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="nested-open-index/index-selection">
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="btree-index-composite-key">
+                    <output-dir compare="Text">btree-index-composite-key</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="btree-index-composite-key-mixed-intervals">
+                    <output-dir compare="Text">btree-index-composite-key-mixed-intervals</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="btree-index-rewrite-multiple">
+                    <output-dir compare="Text">btree-index-rewrite-multiple</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-contains">
+                    <output-dir compare="Text">inverted-index-ngram-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-contains">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-panic">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-panic</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-work-tokens">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-word-tokens</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-jaccard">
+                    <output-dir compare="Text">inverted-index-ngram-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-word-contains">
+                    <output-dir compare="Text">inverted-index-word-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="inverted-index-word-jaccard">
+                    <output-dir compare="Text">inverted-index-word-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="orders-index-custkey">
+                    <output-dir compare="Text">orders-index-custkey</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="orders-index-custkey-conjunctive">
+                    <output-dir compare="Text">orders-index-custkey-conjunctive</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="range-search">
+                    <output-dir compare="Text">range-search</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/index-selection">
+                <compilation-unit name="rtree-secondary-index">
+                    <output-dir compare="Text">rtree-secondary-index</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group name="nested-open-index/external-indexing">
+            <test-case FilePath="nested-open-index/external-indexing">
+                <compilation-unit name="adm-format">
+                    <output-dir compare="Text">adm-format</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/external-indexing">
+                <compilation-unit name="rtree-index">
+                    <output-dir compare="Text">rtree-index</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/external-indexing">
+                <compilation-unit name="leftouterjoin">
+                    <output-dir compare="Text">leftouterjoin</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/external-indexing">
+                <compilation-unit name="leftouterjoin-rtree">
+                    <output-dir compare="Text">leftouterjoin-rtree</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group name="nested-open-index/highly-open-highly-nested">
+            <test-case FilePath="nested-open-index/highly-open-highly-nested">
+                <compilation-unit name="bottom-closed-top-closed">
+                    <output-dir compare="Text">bottom-closed-top-closed</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/highly-open-highly-nested">
+                <compilation-unit name="bottom-closed-top-open">
+                    <output-dir compare="Text">bottom-closed-top-open</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/highly-open-highly-nested">
+                <compilation-unit name="bottom-open-top-closed">
+                    <output-dir compare="Text">bottom-open-top-closed</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-open-index/highly-open-highly-nested">
+                <compilation-unit name="bottom-open-top-open">
+                    <output-dir compare="Text">bottom-open-top-open</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+    </test-group>
+    <test-group name="nested-index">
+        <test-group FilePath="nested-index/index-join">
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="btree-primary-equi-join">
+                    <output-dir compare="Text">btree-primary-equi-join</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="btree-secondary-equi-join">
+                    <output-dir compare="Text">btree-secondary-equi-join</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="ngram-edit-distance">
+                    <output-dir compare="Text">ngram-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="ngram-edit-distance-inline">
+                    <output-dir compare="Text">ngram-edit-distance-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="ngram-jaccard">
+                    <output-dir compare="Text">ngram-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="ngram-jaccard-inline">
+                    <output-dir compare="Text">ngram-jaccard-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="rtree-spatial-intersect-point">
+                    <output-dir compare="Text">rtree-spatial-intersect-point</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="word-jaccard">
+                    <output-dir compare="Text">word-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-join">
+                <compilation-unit name="word-jaccard-inline">
+                    <output-dir compare="Text">word-jaccard-inline</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="nested-index/index-leftouterjoin">
+            <test-case FilePath="nested-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-btree-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-btree-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-btree-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-btree-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-invidx-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-invidx-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-invidx-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-invidx-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-rtree-sidx1">
+                    <output-dir compare="Text">probe-pidx-with-join-rtree-sidx1</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-leftouterjoin">
+                <compilation-unit name="probe-pidx-with-join-rtree-sidx2">
+                    <output-dir compare="Text">probe-pidx-with-join-rtree-sidx2</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group FilePath="nested-index/index-selection">
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="btree-index-composite-key">
+                    <output-dir compare="Text">btree-index-composite-key</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="btree-index-composite-key-mixed-intervals">
+                    <output-dir compare="Text">btree-index-composite-key-mixed-intervals</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="btree-index-rewrite-multiple">
+                    <output-dir compare="Text">btree-index-rewrite-multiple</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="cust-index-age-nullable">
+                    <output-dir compare="Text">cust-index-age-nullable</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-contains">
+                    <output-dir compare="Text">inverted-index-ngram-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-contains">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-panic">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-panic</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-edit-distance-word-tokens">
+                    <output-dir compare="Text">inverted-index-ngram-edit-distance-word-tokens</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ngram-jaccard">
+                    <output-dir compare="Text">inverted-index-ngram-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-olist-edit-distance">
+                    <output-dir compare="Text">inverted-index-olist-edit-distance</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-olist-edit-distance-panic">
+                    <output-dir compare="Text">inverted-index-olist-edit-distance-panic</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-olist-jaccard">
+                    <output-dir compare="Text">inverted-index-olist-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-ulist-jaccard">
+                    <output-dir compare="Text">inverted-index-ulist-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-word-contains">
+                    <output-dir compare="Text">inverted-index-word-contains</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="inverted-index-word-jaccard">
+                    <output-dir compare="Text">inverted-index-word-jaccard</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="orders-index-custkey">
+                    <output-dir compare="Text">orders-index-custkey</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="orders-index-custkey-conjunctive">
+                    <output-dir compare="Text">orders-index-custkey-conjunctive</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="orders-index-custkey-conjunctive-open">
+                    <output-dir compare="Text">orders-index-custkey-conjunctive-open</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="orders-index-custkey-open">
+                    <output-dir compare="Text">orders-index-custkey-open</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="range-search">
+                    <output-dir compare="Text">range-search</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="range-search-open">
+                    <output-dir compare="Text">range-search-open</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="rtree-secondary-index">
+                    <output-dir compare="Text">rtree-secondary-index</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="rtree-secondary-index-nullable">
+                    <output-dir compare="Text">rtree-secondary-index-nullable</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/index-selection">
+                <compilation-unit name="rtree-secondary-index-open">
+                    <output-dir compare="Text">rtree-secondary-index-open</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+        <test-group name="nested-index/external-indexing">
+            <test-case FilePath="nested-index/external-indexing">
+                <compilation-unit name="adm-format">
+                    <output-dir compare="Text">adm-format</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/external-indexing">
+                <compilation-unit name="rtree-index">
+                    <output-dir compare="Text">rtree-index</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/external-indexing">
+                <compilation-unit name="leftouterjoin">
+                    <output-dir compare="Text">leftouterjoin</output-dir>
+                </compilation-unit>
+            </test-case>
+            <test-case FilePath="nested-index/external-indexing">
+                <compilation-unit name="leftouterjoin-rtree">
+                    <output-dir compare="Text">leftouterjoin-rtree</output-dir>
+                </compilation-unit>
+            </test-case>
+        </test-group>
+    </test-group>
+    <test-group name="nested-index-dml">
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="compact-dataset-and-its-indexes">
+                <output-dir compare="Text">compact-dataset-and-its-indexes</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="nested-uuid-load">
+                <output-dir compare="Text">nested-uuid-load</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="nested-uuid-insert">
+                <output-dir compare="Text">nested-uuid-insert</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="delete-from-loaded-dataset-with-index">
+                <output-dir compare="Text">delete-from-loaded-dataset-with-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="drop-index">
+                <output-dir compare="Text">drop-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="insert-into-empty-dataset-with-index">
+                <output-dir compare="Text">insert-into-empty-dataset-with-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="insert-into-loaded-dataset-with-index_01">
+                <output-dir compare="Text">insert-into-loaded-dataset-with-index_01</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="insert-into-loaded-dataset-with-index_02">
+                <output-dir compare="Text">insert-into-loaded-dataset-with-index_02</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="load-with-index">
+                <output-dir compare="Text">load-with-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="load-with-ngram-index">
+                <output-dir compare="Text">load-with-ngram-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="load-with-rtree-index">
+                <output-dir compare="Text">load-with-rtree-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="load-with-word-index">
+                <output-dir compare="Text">load-with-word-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-btree-secondary-index-nullable">
+                <output-dir compare="Text">scan-delete-btree-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-rtree-secondary-index-nullable">
+                <output-dir compare="Text">scan-delete-rtree-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-rtree-secondary-index">
+                <output-dir compare="Text">scan-delete-rtree-secondary-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-btree-secondary-index-nullable">
+                <output-dir compare="Text">scan-insert-btree-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-rtree-secondary-index-nullable">
+                <output-dir compare="Text">scan-insert-rtree-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-rtree-secondary-index">
+                <output-dir compare="Text">scan-insert-rtree-secondary-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index">
+                <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-inverted-index-word-secondary-index">
+                <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-nullable">
+                <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-insert-inverted-index-word-secondary-index-nullable">
+                <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index">
+                <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-inverted-index-word-secondary-index">
+                <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index-nullable">
+                <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="nested-index-dml">
+            <compilation-unit name="scan-delete-inverted-index-word-secondary-index-nullable">
+                <output-dir compare="Text">scan-delete-inverted-index-word-secondary-index-nullable</output-dir>
+            </compilation-unit>
+        </test-case>
+    </test-group>
     <test-group name="nestrecords">
         <test-case FilePath="nestrecords">
             <compilation-unit name="nestrecord">
@@ -3124,21 +3956,21 @@
         </test-case>
     </test-group>
     <test-group name="open-closed">
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="c2c-w-optional">
         <output-dir compare="Text">c2c-w-optional</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="c2c-wo-optional">
         <output-dir compare="Text">c2c-wo-optional</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="c2c">
         <output-dir compare="Text">c2c</output-dir>
@@ -3155,14 +3987,14 @@
                 <output-dir compare="Text">heterog-list01</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="heterog-list02">
         <output-dir compare="Text">heterog-list02</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="heterog-list03">
         <output-dir compare="Text">heterog-list03</output-dir>
@@ -3214,49 +4046,49 @@
                 <output-dir compare="Text">query-issue236</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-15">
         <output-dir compare="Text">open-closed-15</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-16">
         <output-dir compare="Text">open-closed-16</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-17">
         <output-dir compare="Text">open-closed-17</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-19">
         <output-dir compare="Text">open-closed-19</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-20">
         <output-dir compare="Text">open-closed-20</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-21">
         <output-dir compare="Text">open-closed-21</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-22">
         <output-dir compare="Text">open-closed-22</output-dir>
@@ -3278,7 +4110,7 @@
                 <output-dir compare="Text">open-closed-26</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-28">
         <output-dir compare="Text">open-closed-28</output-dir>
@@ -3290,7 +4122,7 @@
                 <output-dir compare="Text">open-closed-29</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="open-closed">
       <compilation-unit name="open-closed-30">
         <output-dir compare="Text">open-closed-30</output-dir>
@@ -3422,14 +4254,14 @@
                 <output-dir compare="Text">everysat_01</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="quantifiers">
       <compilation-unit name="everysat_02">
         <output-dir compare="Text">everysat_02</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="quantifiers">
       <compilation-unit name="everysat_03">
         <output-dir compare="Text">everysat_03</output-dir>
@@ -3451,21 +4283,21 @@
                 <output-dir compare="Text">somesat_02</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="quantifiers">
       <compilation-unit name="somesat_03">
         <output-dir compare="Text">somesat_03</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="quantifiers">
       <compilation-unit name="somesat_04">
         <output-dir compare="Text">somesat_04</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--
+    <!--
     <test-case FilePath="quantifiers">
       <compilation-unit name="somesat_05">
         <output-dir compare="Text">somesat_05</output-dir>
@@ -3591,7 +4423,7 @@
                 <output-dir compare="Text">spatial_types_01</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="scan">
       <compilation-unit name="spatial_types_02">
         <output-dir compare="Text">spatial_types_02</output-dir>
@@ -3603,7 +4435,7 @@
                 <output-dir compare="Text">temp_types_01</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="scan">
       <compilation-unit name="temp_types_02">
         <output-dir compare="Text">temp_types_02</output-dir>
@@ -4128,7 +4960,7 @@
                 <output-dir compare="Text">startwith02</output-dir>
             </compilation-unit>
         </test-case>
-        <!--
+    <!--
     <test-case FilePath="string">
       <compilation-unit name="startwith03">
         <output-dir compare="Text">startwith03</output-dir>
@@ -4569,7 +5401,7 @@
         <test-case FilePath="tpch">
             <compilation-unit name="query-issue810">
                 <output-dir compare="Text">query-issue810</output-dir>
-        </compilation-unit>
+            </compilation-unit>
         </test-case>
         <test-case FilePath="tpch">
             <compilation-unit name="query-issue810-2">
@@ -4594,7 +5426,7 @@
     </test-group>
     <test-group name="tpch-sql-like">
         <test-case FilePath="tpch-sql-like">
-        <compilation-unit name="query-issue638">
+            <compilation-unit name="query-issue638">
                 <output-dir compare="Text">query-issue638</output-dir>
             </compilation-unit>
         </test-case>
@@ -4694,9 +5526,9 @@
             </compilation-unit>
         </test-case>
         <test-case FilePath="tpch-sql-like">
-        <compilation-unit name="q22_global_sales_opportunity">
-            <output-dir compare="Text">q22_global_sales_opportunity</output-dir>
-        </compilation-unit>
+            <compilation-unit name="q22_global_sales_opportunity">
+                <output-dir compare="Text">q22_global_sales_opportunity</output-dir>
+            </compilation-unit>
         </test-case>
         <test-case FilePath="tpch-sql-like">
             <compilation-unit name="q02_minimum_cost_supplier">
@@ -4734,7 +5566,7 @@
             </compilation-unit>
         </test-case>
         <test-case FilePath="tpch-sql-like">
-        <compilation-unit name="q09_product_type_profit_nt">
+            <compilation-unit name="q09_product_type_profit_nt">
                 <output-dir compare="Text">q09_product_type_profit_nt</output-dir>
             </compilation-unit>
         </test-case>
@@ -4745,7 +5577,7 @@
                 <output-dir compare="Text">print_01</output-dir>
             </compilation-unit>
         </test-case>
-        <!--  TODO(madhusudancs): Enable this test when REST API supports serialized output support.
+<!--  TODO(madhusudancs): Enable this test when REST API supports serialized output support.
     <test-case FilePath="writers">
       <compilation-unit name="serialized_01">
         <output-dir compare="Text">serialized_01</output-dir>
@@ -4779,7 +5611,7 @@
                 <output-dir compare="Text">cross-dv07</output-dir>
             </compilation-unit>
         </test-case>
-        <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
+    <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
     <test-case FilePath="cross-dataverse">
       <compilation-unit name="cross-dv08">
         <output-dir compare="Text">cross-dv08</output-dir>
@@ -4823,14 +5655,14 @@
                 <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error>
             </compilation-unit>
         </test-case>
-        <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
+    <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
     <test-case FilePath="cross-dataverse">
       <compilation-unit name="cross-dv17">
         <output-dir compare="Text">cross-dv17</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
+    <!--NotImplementedException: No binary comparator factory implemented for type RECORD.
     <test-case FilePath="cross-dataverse">
       <compilation-unit name="cross-dv18">
         <output-dir compare="Text">cross-dv18</output-dir>
@@ -4900,7 +5732,7 @@
                 <output-dir compare="Text">udf02</output-dir>
             </compilation-unit>
         </test-case>
-        <!-- causes NPE: Issue 200
+    <!-- causes NPE: Issue 200
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="udf03">
         <output-dir compare="Text">udf03</output-dir>
@@ -4962,7 +5794,7 @@
                 <output-dir compare="Text">udf14</output-dir>
             </compilation-unit>
         </test-case>
-        <!-- Issue 166
+    <!-- Issue 166
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="udf15">
         <output-dir compare="Text">udf15</output-dir>
@@ -5009,14 +5841,14 @@
                 <output-dir compare="Text">udf23</output-dir>
             </compilation-unit>
         </test-case>
-        <!-- Issue 195
+    <!-- Issue 195
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="udf24">
         <output-dir compare="Text">udf24</output-dir>
       </compilation-unit>
     </test-case>
     -->
-        <!-- Issue 218
+    <!-- Issue 218
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="udf25">
         <output-dir compare="Text">udf25</output-dir>
@@ -5216,7 +6048,7 @@
                 <output-dir compare="Text">feeds_05</output-dir>
             </compilation-unit>
         </test-case>
-        <!--Disable it because of sporadic failures. Raman will re-enable it.
+    <!--Disable it because of sporadic failures. Raman will re-enable it.
     <test-case FilePath="feeds">
       <compilation-unit name="feeds_06">
         <output-dir compare="Text">feeds_06</output-dir>
@@ -5710,6 +6542,11 @@
                 <output-dir compare="Text">insert-with-secondary-rtree</output-dir>
             </compilation-unit>
         </test-case>
+        <test-case FilePath="filters">
+            <compilation-unit name="nested-filterequality-predicate">
+                <output-dir compare="Text">nested-filter-equality-predicate</output-dir>
+            </compilation-unit>
+        </test-case>
     </test-group>
     <test-group name="json">
         <test-case FilePath="json">
@@ -5778,5 +6615,4 @@
         </test-case>
     </test-group>
 
-
 </test-suite>