/*
 *  Description     : BTree Index verification test
 *                  : 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-49.adm";

create type TestType as open {
    id : int32,
    fname : string,
    lname : string
}

// create internal dataset
create dataset testdst(TestType) partitioned by key id;

create index sec_Idx on testdst(fname,lname);

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 > "Craig" and $emp.lname > "Kevin" and $emp.fname <= "Mary" and $emp.lname <= "Tomes"
return $emp
