/*
 *  Description     : BTree Index verification test
 *                  : This test is intended to verify that the secondary 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-31.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,lname);

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