public void reset(ITupleReference tuple) { this.tuple = tuple; permutingTuple.reset(tuple); }
private void updateFilter(ITupleReference tuple) throws HyracksDataException { filterTuple.reset(tuple); filter.update(filterTuple, filterCmp, NoOpOperationCallback.INSTANCE); }
@Override public ITupleReference delete(ITupleReference tuple) throws HyracksDataException { indexTuple.reset(tuple); updateFilter(tuple); return indexTuple; }
private void addMatterTuple(ITupleReference tuple) throws HyracksDataException { sourceTuple.reset(tuple); componentBulkLoader.add(sourceTuple); }
@Override public ITupleReference add(ITupleReference tuple) throws HyracksDataException { indexTuple.reset(tuple); updateFilter(tuple); return indexTuple; }
@Override public ITupleReference doGetTuple() { resultTuple.reset(btreeCursor.getTuple()); return resultTuple; }
@Override public void updateFilter(ILSMIndexOperationContext ctx, ITupleReference tuple) throws HyracksDataException { if (ctx.getFilterTuple() != null && !ctx.isFilterSkipped()) { if (ctx.isRecovery()) { memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter().update(tuple, ctx.getFilterCmp(), ctx.getModificationCallback()); } else { ctx.getFilterTuple().reset(tuple); memoryComponents.get(currentMutableComponentId.get()).getLSMComponentFilter() .update(ctx.getFilterTuple(), ctx.getFilterCmp(), ctx.getModificationCallback()); } } }
/** * Check deleted-keys BTrees whether they contain the key in the checkElement's tuple. */ @Override protected boolean isDeleted(PriorityQueueElement checkElement) throws HyracksDataException { keysOnlyTuple.reset(checkElement.getTuple()); int end = checkElement.getCursorIndex(); for (int i = 0; i < end; i++) { if (bloomFilters[i] != null && !bloomFilters[i].contains(keysOnlyTuple, hashes)) { continue; } deletedKeysBTreeAccessors.get(i).search(deletedKeysBTreeCursors[i], keySearchPred); try { if (deletedKeysBTreeCursors[i].hasNext()) { return true; } } finally { deletedKeysBTreeCursors[i].close(); } } return false; }
private void openInvListRangeSearchCursor() throws HyracksDataException { if (btreeCursor.hasNext()) { btreeCursor.next(); tokenTuple.reset(btreeCursor.getTuple()); invIndex.openInvertedListCursor(btreeCursor.getTuple(), invListRangeSearchCursor, (OnDiskInvertedIndexOpContext) opCtx); invListRangeSearchCursor.prepareLoadPages(); invListRangeSearchCursor.loadPages(); resultTuple.setTokenTuple(tokenTuple); isInvListCursorOpen = true; } else { isInvListCursorOpen = false; } } }
private void setMatterTuple(ITupleReference diskTuple, int cursorIndex) throws HyracksDataException { if (tupleBuilder == null) { tupleBuilder = new ArrayTupleBuilder(diskTuple.getFieldCount() + 2); antiMatterTupleBuilder = new ArrayTupleBuilder(diskTuple.getFieldCount() + 2); int[] permutation = new int[diskTuple.getFieldCount()]; for (int i = 0; i < permutation.length; i++) { permutation[i] = i + 2; } originalTuple = new PermutingTupleReference(permutation); } //build the matter tuple buildTuple(tupleBuilder, diskTuple, cursorIndex, MATTER_TUPLE_FLAG); outputTuple.reset(tupleBuilder.getFieldEndOffsets(), tupleBuilder.getByteArray()); originalTuple.reset(outputTuple); }
@Override public void modify(IIndexOperationContext ictx, ITupleReference tuple) throws HyracksDataException { LSMBTreeOpContext ctx = (LSMBTreeOpContext) ictx; ITupleReference indexTuple; if (ctx.getIndexTuple() != null) { ctx.getIndexTuple().reset(tuple); indexTuple = ctx.getIndexTuple(); } else { indexTuple = tuple; } switch (ctx.getOperation()) { case PHYSICALDELETE: ctx.getCurrentMutableBTreeAccessor().delete(indexTuple); break; case INSERT: insert(indexTuple, ctx); break; default: ctx.getCurrentMutableBTreeAccessor().upsert(indexTuple); break; } updateFilter(ctx, tuple); }
ctx.getIndexTuple().reset(tuple); indexTuple = ctx.getIndexTuple(); } else {
ctx.getIndexTuple().reset(tuple); indexTuple = ctx.getIndexTuple(); } else {
btreeCursors[currentCursor].next(); ITupleReference currentTuple = btreeCursors[currentCursor].getTuple(); buddyBTreeTuple.reset(btreeCursors[currentCursor].getTuple()); boolean killerTupleFound = false; for (int i = 0; i < currentCursor && !killerTupleFound; i++) {
protected void checkReturnedTuple(OrderedIndexTestContext ctx, ITupleReference tuple, ISerializerDeserializer[] fieldSerdes, int componentPos, boolean antimatter, Object value) throws HyracksDataException { int actualComponentPos = IntegerPointable.getInteger(tuple.getFieldData(0), tuple.getFieldStart(0)); Assert.assertEquals("Check returned component position", componentPos, actualComponentPos); boolean actualAntiMatter = BooleanPointable.getBoolean(tuple.getFieldData(1), tuple.getFieldStart(1)); Assert.assertEquals("Check returned anti-matter flag", antimatter, actualAntiMatter); int[] permutation = new int[ctx.getFieldCount()]; for (int i = 0; i < permutation.length; i++) { permutation[i] = i + 2; } PermutingTupleReference originalTuple = new PermutingTupleReference(permutation); originalTuple.reset(tuple); for (int i = 0; i < fieldSerdes.length; i++) { ByteArrayInputStream inStream = new ByteArrayInputStream(originalTuple.getFieldData(i), originalTuple.getFieldStart(i), originalTuple.getFieldLength(i)); DataInput dataIn = new DataInputStream(inStream); Object actualObj = fieldSerdes[i].deserialize(dataIn); if (!actualObj.equals(value)) { fail("Actual and expected fields do not match on field " + i + ".\nExpected: " + value + "\nActual : " + actualObj); } } }
btreeTuple.reset(rtreeCursors[currentCursor].getTuple()); boolean killerTupleFound = false; for (int i = 0; i < currentCursor && !killerTupleFound; i++) {
btreeTuple.reset(frameTuple); for (int i = 0; i < foundIn; i++) { btreeCursors[i].close();
while (btreeCursor.hasNext()) { btreeCursor.next(); tokenTuple.reset(btreeCursor.getTuple());