private static boolean isEqual(byte[] a, ITupleReference b, int size) { int readOffset = b.getFieldStart(0); byte[] readBuffer = b.getFieldData(0); for (int i = 0; i < size; i++) { if (a[i] != readBuffer[readOffset + i]) { return false; } } return true; }
@Override public int getFieldLength(int fIdx) { return sourceTuple.getFieldLength(fieldPermutation[fIdx]); } }
@Override public void setNewValue(ITupleReference newValue) { this.newValue = newValue; this.newValueFieldCount = newValue.getFieldCount(); }
@Override public int getFieldStart(int fIdx) { return tuple.getFieldStart(fIdx); }
@Override public byte[] getFieldData(int fIdx) { return tuple.getFieldData(fIdx); }
@Override public int getFieldStart(int fIdx) { int leftFieldCount = refLeft.getFieldCount(); if (fIdx < leftFieldCount) { return refLeft.getFieldStart(fIdx); } else { return refRight.getFieldStart(fIdx - leftFieldCount); } }
@Override public int getFieldLength(int fIdx) { int leftFieldCount = refLeft.getFieldCount(); if (fIdx < leftFieldCount) { return refLeft.getFieldLength(fIdx); } else { return refRight.getFieldLength(fIdx - leftFieldCount); } }
@Override public byte[] getFieldData(int fIdx) { int leftFieldCount = refLeft.getFieldCount(); if (fIdx < leftFieldCount) { return refLeft.getFieldData(fIdx); } else { return refRight.getFieldData(fIdx - leftFieldCount); } }
@Override public int getFieldCount() { return refLeft.getFieldCount() + refRight.getFieldCount(); }
private static void readPKValueIntoByteArray(ITupleReference pkValue, int pkSize, byte[] byteArrayPKValue) { int readOffset = pkValue.getFieldStart(0); byte[] readBuffer = pkValue.getFieldData(0); for (int i = 0; i < pkSize; i++) { byteArrayPKValue[i] = readBuffer[readOffset + i]; } }
/** * Returns whether the doc field is missing (only with a type tag) * * @param tuple * @return */ private boolean isDocFieldMissing(ITupleReference tuple) { return tuple.getFieldLength(docField) <= 1; } }
@Override public int getFieldStart(int fIdx) { return sourceTuple.getFieldStart(fieldPermutation[fIdx]); }
@Override public void setOldValue(ITupleReference oldValue) { this.oldValue = oldValue; this.oldValueFieldCount = oldValue.getFieldCount(); }
private static boolean isEqual(ITupleReference a, ITupleReference b, int size) { int aOffset = a.getFieldStart(0); byte[] aBuffer = a.getFieldData(0); int bOffset = b.getFieldStart(0); byte[] bBuffer = b.getFieldData(0); for (int i = 0; i < size; i++) { if (aBuffer[aOffset + i] != bBuffer[bOffset + i]) { return false; } } return true; }
@Override public void computeAndSetPKValueSize() { int i; PKValueSize = 0; for (i = 0; i < PKFieldCnt; i++) { PKValueSize += PKValue.getFieldLength(PKFields[i]); } }
public void addTuple(ITupleReference tuple) { tuples[numTuples] = tuple; totalFieldCount += tuple.getFieldCount(); if (numTuples > 0) { fieldCounts[numTuples] = fieldCounts[numTuples - 1] + tuple.getFieldCount(); } else { fieldCounts[numTuples] = tuple.getFieldCount(); } ++numTuples; }
@Override public int getFieldLength(int fIdx) { return tuple.getFieldLength(fIdx); }
@Override public int getFieldCount() { return tuple.getFieldCount(); }
public void removeLastTuple() { if (numTuples > 0) { ITupleReference lastTuple = tuples[--numTuples]; totalFieldCount -= lastTuple.getFieldCount(); } }