@Override public String getText(int fieldId) { return values[fieldId].asChars(); }
@Override public int getInt4(int fieldId) { return values[fieldId].asInt4(); }
@Override public float getFloat4(int fieldId) { return values[fieldId].asFloat4(); }
@Override public double getFloat8(int fieldId) { return values[fieldId].asFloat8(); }
@Test public void testPut() { VTuple t1 = new VTuple(260); t1.put(0, DatumFactory.createText("str")); t1.put(1, DatumFactory.createInt4(2)); t1.put(257, DatumFactory.createFloat4(0.76f)); assertTrue(t1.contains(0)); assertTrue(t1.contains(1)); assertEquals(t1.getText(0),"str"); assertEquals(t1.get(1).asInt4(),2); assertTrue(t1.get(257).asFloat4() == 0.76f); }
@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); if (!predicandValue.isNull()) { return DatumFactory.createBool(not ^ (predicandValue.greaterThanEqual(begin).asBool() && predicandValue.lessThanEqual(end).asBool())); } else { return NullDatum.get(); } } }
@Override public short getInt2(int fieldId) { return values[fieldId].asInt2(); }
@Override public byte [] getBytes(int fieldId) { return values[fieldId].asByteArray(); }
@Override void write(Datum datum) throws IOException { super.write(datum); if (datum != null && datum.isNotNull()) { byte[] buf = datum.asByteArray(); stream.write(buf, 0, buf.length); length.write(datum.size()); indexStatistics.updateBinary(buf, 0, buf.length, 1); if (createBloomFilter) { bloomFilter.addBytes(buf, 0, buf.length); } } }
@Override public int compareTo(Datum datum) { switch (datum.type()) { case TEXT: case CHAR: case BLOB: return COMPARATOR.compare(bytes, datum.asByteArray()); case NULL_TYPE: return -1; default: throw new InvalidOperationException(datum.type()); } }
@Override public long getInt8(int fieldId) { return values[fieldId].asInt8(); }