@Override public byte[] readVarchar(int id) { return dict.decodeToBinary(id).getBytesUnsafe(); }
@Override public byte[] readString(int id) { return dict.decodeToBinary(id).getBytesUnsafe(); }
@Override public Timestamp readTimestamp(int id) { return convert(dict.decodeToBinary(id)); }
@Override public byte[] readBytes(int id) { return dict.decodeToBinary(id).getBytesUnsafe(); }
@Override public byte[] readString(int id) { return convertToBytes(dict.decodeToBinary(id)); }
@Override public byte[] readChar(int id) { return dict.decodeToBinary(id).getBytesUnsafe(); }
@Override public byte[] readDecimal(int id) { return dict.decodeToBinary(id).getBytesUnsafe(); }
@Override public void setDictionary(Dictionary dictionary) { int length = dictionary.getMaxId() + 1; lookupTable = new ArrayList<T>(); for (int i = 0; i < length; i++) { lookupTable.add(convert(dictionary.decodeToBinary(i))); } }
@Override public byte[] readVarchar(int id) { // check the character numbers with the length final byte[] value = dict.decodeToBinary(id).getBytesUnsafe(); return truncateIfNecesssary(value); }
@Override public byte[] readChar(int id) { // check the character numbers with the length final byte[] value = dict.decodeToBinary(id).getBytesUnsafe(); return truncateIfNecesssary(value); }
@Override public byte[] readChar(int id) { String value = enforceMaxLength( convertToString(dict.decodeToBinary(id))); return convertToBytes(value); }
@Override public byte[] readVarchar(int id) { String value = enforceMaxLength( convertToString(dict.decodeToBinary(id))); return convertToBytes(value); }
@Override public byte[] readDecimal(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return super.validatedScaledDecimal(scale); } }
@Override public double readDouble(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return (super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.DOUBLE_TYPE_NAME)); }
@Override public long readLong(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return (long)(super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.BIGINT_TYPE_NAME)); }
@Override public long readTinyInt(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return (long)(super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.TINYINT_TYPE_NAME)); }
@Override public long readSmallInt(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return (long)(super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.SMALLINT_TYPE_NAME)); }
@Override public long readInteger(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return (long)(super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.INT_TYPE_NAME)); }
@Override public float readFloat(int id) { hiveDecimalWritable.set(dict.decodeToBinary(id).getBytesUnsafe(), scale); return (float)(super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.FLOAT_TYPE_NAME)); }
@Override public byte[] decodeToBinary(int id) { return dictionary.decodeToBinary(id).getBytes(); } }