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

for $emp in dataset('testdst') 
where $emp.fname > "Neil" and $emp.fname < "Roger" 
return $emp
