Fixed issue 204.
git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_stabilization@762 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple.aql b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple.aql
new file mode 100644
index 0000000..7b72a80
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/index-selection/btree-index-rewrite-multiple.aql
@@ -0,0 +1,48 @@
+/*
+ * Description : Test that multiple subtrees in the same query
+ * can be rewritten with secondary BTree indexes.
+ * Guards against regression to issue 204.
+ * Expected Result : Success
+ * Issue : Issue 204
+ */
+
+drop dataverse tpch if exists;
+create dataverse tpch;
+use dataverse tpch;
+
+create type OrderType as open {
+ o_orderkey: int32,
+ o_custkey: int32,
+ o_orderstatus: string,
+ o_totalprice: double,
+ o_orderdate: string,
+ o_orderpriority: string,
+ o_clerk: string,
+ o_shippriority: int32,
+ o_comment: string
+}
+
+create dataset Orders(OrderType) partitioned by key o_orderkey;
+
+load dataset Orders
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+create index idx_Orders_Custkey on Orders(o_custkey);
+
+write output to nc1:"rttest/index-selection_btree-index-rewrite-multiple.adm";
+
+for $o in dataset('Orders')
+for $o2 in dataset('Orders')
+where $o.o_custkey = 20 and $o2.o_custkey = 10
+and $o.o_orderstatus < $o2.o_orderstatus
+order by $o.o_orderkey, $o2.o_orderkey
+return {
+ "o_orderkey": $o.o_orderkey,
+ "o_custkey": $o.o_custkey,
+ "o_orderstatus": $o.o_orderstatus,
+ "o_orderkey2": $o2.o_orderkey,
+ "o_custkey2": $o2.o_custkey,
+ "o_orderstatus2": $o2.o_orderstatus
+}
+
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-rewrite-multiple.adm b/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-rewrite-multiple.adm
new file mode 100644
index 0000000..3bf46e6
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-rewrite-multiple.adm
@@ -0,0 +1,18 @@
+{ "o_orderkey": 1188, "o_custkey": 20, "o_orderstatus": "O", "o_orderkey2": 3911, "o_custkey2": 10, "o_orderstatus2": "P" }
+{ "o_orderkey": 1377, "o_custkey": 20, "o_orderstatus": "O", "o_orderkey2": 3911, "o_custkey2": 10, "o_orderstatus2": "P" }
+{ "o_orderkey": 1378, "o_custkey": 20, "o_orderstatus": "O", "o_orderkey2": 3911, "o_custkey2": 10, "o_orderstatus2": "P" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 227, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 517, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 1223, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 1860, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 1890, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 3428, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 3618, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 3843, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 3911, "o_custkey2": 10, "o_orderstatus2": "P" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 4032, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 4097, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 4388, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 4421, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 4449, "o_custkey2": 10, "o_orderstatus2": "O" }
+{ "o_orderkey": 3042, "o_custkey": 20, "o_orderstatus": "F", "o_orderkey2": 5123, "o_custkey2": 10, "o_orderstatus2": "O" }
\ No newline at end of file