@Override public long getLong(int rowId) { DataType dataType = columnPage.getDataType(); if (dataType == DataTypes.BOOLEAN || dataType == DataTypes.BYTE) { return converter.decodeLong(columnPage.getByte(rowId)); } else if (dataType == DataTypes.SHORT) { return converter.decodeLong(columnPage.getShort(rowId)); } else if (dataType == DataTypes.SHORT_INT) { return converter.decodeLong(columnPage.getShortInt(rowId)); } else if (dataType == DataTypes.INT) { return converter.decodeLong(columnPage.getInt(rowId)); } else if (dataType == DataTypes.LONG) { return columnPage.getLong(rowId); } else { throw new RuntimeException("internal error: " + this.toString()); } }
} else if (type == DataTypes.SHORT) { value = page.getShort(rowId); } else if (type == DataTypes.INT) {
@Override public double getDouble(int rowId) { DataType dataType = columnPage.getDataType(); if (dataType == DataTypes.BOOLEAN || dataType == DataTypes.BYTE) { return converter.decodeDouble(columnPage.getByte(rowId)); } else if (dataType == DataTypes.SHORT) { return converter.decodeDouble(columnPage.getShort(rowId)); } else if (dataType == DataTypes.SHORT_INT) { return converter.decodeDouble(columnPage.getShortInt(rowId)); } else if (dataType == DataTypes.INT) { return converter.decodeDouble(columnPage.getInt(rowId)); } else if (dataType == DataTypes.LONG) { return converter.decodeDouble(columnPage.getLong(rowId)); } else if (dataType == DataTypes.FLOAT) { return converter.decodeDouble(columnPage.getFloat(rowId)); } else if (dataType == DataTypes.DOUBLE) { return columnPage.getDouble(rowId); } else { throw new RuntimeException("internal error: " + this.toString()); } }
return getShort(rowId); } else if (dataType == DataTypes.INT) { return getInt(rowId);
@Override public BigDecimal getDecimal(int rowId) { DecimalConverterFactory.DecimalConverter decimalConverter = ((DecimalColumnPage) columnPage).getDecimalConverter(); DataType dataType = columnPage.getDataType(); if (dataType == DataTypes.BYTE) { return decimalConverter.getDecimal(converter.decodeLong(columnPage.getByte(rowId))); } else if (dataType == DataTypes.SHORT) { return decimalConverter.getDecimal(converter.decodeLong(columnPage.getShort(rowId))); } else if (dataType == DataTypes.SHORT_INT) { return decimalConverter.getDecimal(converter.decodeLong(columnPage.getShortInt(rowId))); } else if (dataType == DataTypes.INT) { return decimalConverter.getDecimal(converter.decodeLong(columnPage.getInt(rowId))); } else if (dataType == DataTypes.LONG || DataTypes.isDecimal(dataType)) { return columnPage.getDecimal(rowId); } else { throw new RuntimeException("internal error: " + this.toString()); } }
/** * Get null at rowId */ private Object getNull(int rowId) { Object result; DataType dataType = columnPageEncoderMeta.getStoreDataType(); if (dataType == DataTypes.BOOLEAN) { result = getBoolean(rowId); } else if (dataType == DataTypes.BYTE) { result = getByte(rowId); if (columnPageEncoderMeta.getColumnSpec().getSchemaDataType() == DataTypes.BOOLEAN) { result = BooleanConvert.byte2Boolean((byte)result); } } else if (dataType == DataTypes.SHORT) { result = getShort(rowId); } else if (dataType == DataTypes.INT) { result = getInt(rowId); } else if (dataType == DataTypes.LONG) { result = getLong(rowId); } else if (dataType == DataTypes.DOUBLE) { result = getDouble(rowId); } else if (DataTypes.isDecimal(dataType)) { result = getDecimal(rowId); } else { throw new IllegalArgumentException("unsupported data type: " + dataType); } return result; }
data[i] = input.getShort(i);