/** * Current memory address of the row * * @return The memory address */ public long recordStartAddr() { return currentAddr() - curOffset; }
@Override public void putTime(long val) { ensureSize(SizeOf.SIZE_OF_LONG); long addr = currentAddr(); PlatformDependent.putLong(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_LONG); }
@Override public void putFloat8(double val) { ensureSize(SizeOf.SIZE_OF_DOUBLE); long addr = currentAddr(); UnsafeUtil.unsafe.putDouble(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_DOUBLE); }
@Override public void putDate(int val) { ensureSize(SizeOf.SIZE_OF_INT); long addr = currentAddr(); PlatformDependent.putInt(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_INT); }
@Override public void putInet4(int val) { ensureSize(SizeOf.SIZE_OF_INT); long addr = currentAddr(); PlatformDependent.putInt(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_INT); }
@Override public void putFloat4(float val) { ensureSize(SizeOf.SIZE_OF_FLOAT); long addr = currentAddr(); UnsafeUtil.unsafe.putFloat(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_FLOAT); }
@Override public void putInt2(short val) { ensureSize(SizeOf.SIZE_OF_SHORT); long addr = currentAddr(); PlatformDependent.putShort(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_SHORT); }
@Override public void putByte(byte val) { ensureSize(SizeOf.SIZE_OF_BYTE); long addr = currentAddr(); PlatformDependent.putByte(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_BYTE); }
@Override public void putInt2(short val) { ensureSize(SizeOf.SIZE_OF_SHORT); long addr = currentAddr(); PlatformDependent.putShort(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_SHORT); }
@Override public void putTime(long val) { ensureSize(SizeOf.SIZE_OF_LONG); long addr = currentAddr(); PlatformDependent.putLong(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_LONG); }
@Override public void putFloat8(double val) { ensureSize(SizeOf.SIZE_OF_DOUBLE); long addr = currentAddr(); UnsafeUtil.unsafe.putDouble(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_DOUBLE); }
@Override public void putDate(int val) { ensureSize(SizeOf.SIZE_OF_INT); long addr = currentAddr(); PlatformDependent.putInt(addr, val); curFieldIdx++; forwardField(SizeOf.SIZE_OF_INT); }
@Override public void putInt4(int val) { ensureSize(MAXIMUM_VARIANT_INT32); curFieldIdx++; forwardField(writeRawVarint32(currentAddr(), encodeZigZag32(val))); }
@Override public void putBlob(byte[] val) { int bytesLen = val.length; ensureSize(MAXIMUM_VARIANT_INT32 + bytesLen); long addr = currentAddr(); short length = writeRawVarint32(addr, bytesLen); PlatformDependent.copyMemory(val, 0, addr + length, bytesLen); curFieldIdx++; forwardField(length + bytesLen); }
@Override public void putInt8(long val) { ensureSize(MAXIMUM_VARIANT_INT64); curFieldIdx++; forwardField(writeRawVarint64(currentAddr(), encodeZigZag64(val))); }
@Override public void putBlob(byte[] val) { int bytesLen = val.length; ensureSize(MAXIMUM_VARIANT_INT32 + bytesLen); long addr = currentAddr(); short length = writeRawVarint32(addr, bytesLen); PlatformDependent.copyMemory(val, 0, addr + length, bytesLen); curFieldIdx++; forwardField(length + bytesLen); }
@Override public void putInt4(int val) { ensureSize(MAXIMUM_VARIANT_INT32); curFieldIdx++; forwardField(writeRawVarint32(currentAddr(), encodeZigZag32(val))); }
@Override public void putInt8(long val) { ensureSize(MAXIMUM_VARIANT_INT64); curFieldIdx++; forwardField(writeRawVarint64(currentAddr(), encodeZigZag64(val))); }
@Override public void putInterval(IntervalDatum val) { ensureSize(MAXIMUM_VARIANT_INT32 + MAXIMUM_VARIANT_INT64); long addr = currentAddr(); short length = writeRawVarint32(addr, encodeZigZag32(val.getMonths())); length += writeRawVarint64(addr, encodeZigZag64(val.getMilliSeconds())); curFieldIdx++; forwardField(length); }
@Override public void putInterval(IntervalDatum val) { ensureSize(MAXIMUM_VARIANT_INT32 + MAXIMUM_VARIANT_INT64); long addr = currentAddr(); short length = writeRawVarint32(addr, encodeZigZag32(val.getMonths())); length += writeRawVarint64(addr, encodeZigZag64(val.getMilliSeconds())); curFieldIdx++; forwardField(length); }