/*
 *  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
 */

// Please note this is a Negative test and the BTree index should NOT be used in the plan.

drop dataverse test if exists;
create dataverse test;
use dataverse test;

write output to nc1:"rttest/btree-index_btree-primary-01.adm";

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

// create internal dataset with primary index (composite key) 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 > "Roger"
return $emp
