public BooleanPointable createPointable(boolean value) { BooleanPointable pointable = new BooleanPointable(); pointable.setBoolean(value); return pointable; }
public void setBoolean(boolean value) { if (bytes == null) { start = 0; length = TYPE_TRAITS.getFixedLength(); bytes = new byte[length]; } setBoolean(bytes, start, value); }
@Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException { eval1.evaluate(tuple, p); int v1 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); eval2.evaluate(tuple, p); int v2 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); BooleanPointable.setBoolean(rBytes, 0, v1 > v2); result.set(rBytes, 0, 1); } };
@Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException { eval1.evaluate(tuple, p); int v1 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); eval2.evaluate(tuple, p); int v2 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); BooleanPointable.setBoolean(rBytes, 0, v1 == v2); result.set(rBytes, 0, 1); } };
@Override public byte[] getByteArray() { if (binaryFilter.getLength() == 0) { int binarySize = 2; if (min.getLength() > 0) { binarySize += Integer.BYTES + min.getLength(); } if (max.getLength() > 0) { binarySize += Integer.BYTES + max.getLength(); } binaryFilter.setSize(binarySize); byte[] buf = binaryFilter.getByteArray(); BooleanPointable.setBoolean(buf, MIN_SET_INDICATOR_OFFSET, min.getLength() > 0); BooleanPointable.setBoolean(buf, MAX_SET_INDICATOR_OFFSET, max.getLength() > 0); int offset = 2; if (min.getLength() > 0) { IntegerPointable.setInteger(buf, offset, min.getLength()); offset += Integer.BYTES; System.arraycopy(min.getByteArray(), 0, buf, offset, min.getLength()); offset += min.getLength(); } if (max.getLength() > 0) { IntegerPointable.setInteger(buf, offset, max.getLength()); offset += Integer.BYTES; System.arraycopy(max.getByteArray(), 0, buf, offset, max.getLength()); } } return binaryFilter.getByteArray(); }