private boolean searchMemBTrees(ITupleReference tuple, int lastBTreeToSearch) throws HyracksDataException { for (int i = 0; i < lastBTreeToSearch; i++) { btreeCursors[i].close(); btreeRangePredicate.setHighKey(tuple, true); btreeRangePredicate.setLowKey(tuple, true); btreeAccessors[i].search(btreeCursors[i], btreeRangePredicate); try { if (btreeCursors[i].hasNext()) { return false; } } finally { btreeCursors[i].close(); } } return true; }
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; }
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(); } }
Assert.assertFalse(cursor.hasNext()); } finally { cursor.close();