(TreeIndexDiskOrderScanCursor) treeIndexAccessor.createDiskOrderScanCursor(); try { treeIndexAccessor.diskOrderScan(diskOrderCursor); try { while (diskOrderCursor.hasNext()) {
(TreeIndexDiskOrderScanCursor) treeIndexAccessor.createDiskOrderScanCursor(); try { treeIndexAccessor.diskOrderScan(diskOrderCursor); try { while (diskOrderCursor.hasNext()) {
try { int actualCount = 0; treeIndexAccessor.diskOrderScan(diskOrderCursor); try { actualCount = scan(ctx, diskOrderCursor);
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(); } }