@Override
 public void close() throws HyracksDataException {
   if (lsmHarness != null) {
     try {
       for (int i = 0; i < rangeCursors.length; i++) {
         rangeCursors[i].close();
       }
       rangeCursors = null;
     } finally {
       lsmHarness.endSearch(opCtx);
     }
   }
   nextHasBeenCalled = false;
   foundTuple = false;
 }
 @Override
 public void reset() throws HyracksDataException, IndexException {
   try {
     if (rangeCursors != null) {
       for (int i = 0; i < rangeCursors.length; ++i) {
         rangeCursors[i].reset();
       }
     }
     rangeCursors = null;
     nextHasBeenCalled = false;
     foundTuple = false;
   } finally {
     if (lsmHarness != null) {
       lsmHarness.endSearch(opCtx);
     }
   }
 }