private int scan(IIndexTestContext ctx, ITreeIndexCursor diskOrderCursor) throws HyracksDataException { int actualCount = 0; while (diskOrderCursor.hasNext()) { diskOrderCursor.next(); ITupleReference tuple = diskOrderCursor.getTuple(); CheckTuple checkTuple = createCheckTupleFromTuple(tuple, ctx.getFieldSerdes(), ctx.getKeyFieldCount()); if (!checkDiskOrderScanResult(tuple, checkTuple, ctx)) { fail("Disk-order scan returned unexpected answer: " + checkTuple.toString()); } actualCount++; } return actualCount; }
if (((ILSMTreeTupleReference) btreeCursors[i].getTuple()).isAntimatter()) { if (reconciled) { searchCallback.cancel(predicate.getLowKey()); return false; } else { frameTuple = btreeCursors[i].getTuple(); foundTuple = true; foundIn = i; if (btreeCursors[i].hasNext()) { btreeCursors[i].next(); if (((ILSMTreeTupleReference) btreeCursors[i].getTuple()).isAntimatter()) { searchCallback.cancel(predicate.getLowKey()); btreeCursors[i].close(); return false; } else { frameTuple = btreeCursors[i].getTuple(); foundTuple = true; searchCallback.complete(predicate.getLowKey()); frameTuple = btreeCursors[i].getTuple(); searchCallback.reconcile(frameTuple); searchCallback.complete(frameTuple);
private void doScan(ITreeIndex treeIndex, ITreeIndexAccessor indexAccessor, FrameTupleAppender appender) throws IOException { int fieldCount = treeIndex.getFieldCount(); ArrayTupleBuilder tb = new ArrayTupleBuilder(fieldCount); DataOutput dos = tb.getDataOutput(); ITreeIndexFrame cursorFrame = treeIndex.getLeafFrameFactory().createFrame(); ITreeIndexCursor cursor = new TreeIndexDiskOrderScanCursor(cursorFrame); try { indexAccessor.diskOrderScan(cursor); try { while (cursor.hasNext()) { tb.reset(); cursor.next(); ITupleReference frameTuple = cursor.getTuple(); for (int i = 0; i < frameTuple.getFieldCount(); i++) { dos.write(frameTuple.getFieldData(i), frameTuple.getFieldStart(i), frameTuple.getFieldLength(i)); tb.addFieldEndOffset(); } FrameUtils.appendToWriter(writer, appender, tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize()); } } finally { cursor.close(); } } finally { cursor.destroy(); } }