private void initHelperTuples() { try { lowerBoundTupleBuilder.reset(); // Write dummy value. lowerBoundTupleBuilder.getDataOutput().writeShort(Short.MIN_VALUE); lowerBoundTupleBuilder.addFieldEndOffset(); lowerBoundTuple.reset(lowerBoundTupleBuilder.getFieldEndOffsets(), lowerBoundTupleBuilder.getByteArray()); // Only needed for setting the number of fields in searchKey. searchKey.reset(queryTokenAppender, 0); fullLowSearchKey.reset(); fullLowSearchKey.addTuple(searchKey); fullLowSearchKey.addTuple(lowerBoundTuple); upperBoundTupleBuilder.reset(); // Write dummy value. upperBoundTupleBuilder.getDataOutput().writeShort(Short.MAX_VALUE); upperBoundTupleBuilder.addFieldEndOffset(); upperBoundTuple.reset(upperBoundTupleBuilder.getFieldEndOffsets(), upperBoundTupleBuilder.getByteArray()); // Only needed for setting the number of fields in searchKey. searchKey.reset(queryTokenAppender, 0); fullHighSearchKey.reset(); fullHighSearchKey.addTuple(searchKey); fullHighSearchKey.addTuple(upperBoundTuple); } catch (IOException e) { throw new IllegalStateException(e); } }
public void reset(ITupleReference tuple) throws HyracksDataException { numElements = -1; // Copy the tokens tuple for later use in btree probes. TupleUtils.copyTuple(tokenTupleBuilder, tuple, tuple.getFieldCount()); tokenTuple.reset(tokenTupleBuilder.getFieldEndOffsets(), tokenTupleBuilder.getByteArray()); btreeSearchTuple.reset(); btreeSearchTuple.addTuple(tokenTuple); btreeCursor.close(); countingCursor.close(); }
@Override public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException { // Close cursor if necessary. unloadPages(); btreeSearchTuple.addTuple(searchTuple); btreePred.setLowKeyComparator(btreeCmp); btreePred.setHighKeyComparator(btreeCmp); btreePred.setLowKey(btreeSearchTuple, true); btreePred.setHighKey(btreeSearchTuple, true); try { btreeAccessor.search(btreeCursor, btreePred); cursorNeedsClose = true; } catch (Exception e) { btreeSearchTuple.removeLastTuple(); throw HyracksDataException.create(e); } boolean containsKey = false; try { containsKey = btreeCursor.hasNext(); } finally { btreeCursor.close(); btreeSearchTuple.removeLastTuple(); } return containsKey; }