@Override public int findDeleteTupleIndex(ITupleReference tuple) throws HyracksDataException { return slotManager.findTupleIndex(tuple, frameTuple, cmp, FindTupleMode.INCLUSIVE, FindTupleNoExactMatchPolicy.HIGHER_KEY); }
@Override public int findUpsertTupleIndex(ITupleReference tuple) throws HyracksDataException { int tupleIndex; tupleIndex = slotManager.findTupleIndex(tuple, frameTuple, cmp, FindTupleMode.INCLUSIVE, FindTupleNoExactMatchPolicy.HIGHER_KEY); // Just return the found tupleIndex. The caller will make the final // decision whether to insert or update. return tupleIndex; }
@Override public int findTupleIndex(ITupleReference tuple, MultiComparator cmp) throws HyracksDataException { return slotManager.findTupleIndex(tuple, frameTuple, cmp, null, null); }
@Override public int findInsertTupleIndex(ITupleReference tuple) throws HyracksDataException { return slotManager.findTupleIndex(tuple, frameTuple, cmp, FindTupleMode.INCLUSIVE, FindTupleNoExactMatchPolicy.HIGHER_KEY); }
@Override public int findTupleIndex(ITupleReference searchKey, ITreeIndexTupleReference pageTuple, MultiComparator cmp, FindTupleMode ftm, FindTupleNoExactMatchPolicy ftp) throws HyracksDataException { return slotManager.findTupleIndex(searchKey, pageTuple, cmp, ftm, ftp); }
@Override public int findInsertTupleIndex(ITupleReference tuple) throws HyracksDataException { int tupleIndex; tupleIndex = slotManager.findTupleIndex(tuple, frameTuple, cmp, FindTupleMode.EXCLUSIVE_ERROR_IF_EXISTS, FindTupleNoExactMatchPolicy.HIGHER_KEY); // Error indicator is set if there is an exact match. if (tupleIndex == slotManager.getErrorIndicator()) { throw HyracksDataException.create(ErrorCode.DUPLICATE_KEY); } return tupleIndex; }
@Override public int findUpdateTupleIndex(ITupleReference tuple) throws HyracksDataException { int tupleIndex; tupleIndex = slotManager.findTupleIndex(tuple, frameTuple, cmp, FindTupleMode.EXACT, FindTupleNoExactMatchPolicy.HIGHER_KEY); // Error indicator is set if there is no exact match. if (tupleIndex == slotManager.getErrorIndicator() || tupleIndex == slotManager.getGreatestKeyIndicator()) { throw HyracksDataException.create(ErrorCode.UPDATE_OR_DELETE_NON_EXISTENT_KEY); } return tupleIndex; }
@Override public int findDeleteTupleIndex(ITupleReference tuple) throws HyracksDataException { int tupleIndex; tupleIndex = slotManager.findTupleIndex(tuple, frameTuple, cmp, FindTupleMode.EXACT, FindTupleNoExactMatchPolicy.HIGHER_KEY); // Error indicator is set if there is no exact match. if (tupleIndex == slotManager.getErrorIndicator() || tupleIndex == slotManager.getGreatestKeyIndicator()) { throw HyracksDataException.create(ErrorCode.UPDATE_OR_DELETE_NON_EXISTENT_KEY); } return tupleIndex; }
slotManager.findTupleIndex(tuple, frameTuple, targetCmp, fsm, FindTupleNoExactMatchPolicy.HIGHER_KEY); int slotOff = slotManager.getSlotOff(tupleIndex);