private void readTimestamp(int total, TimestampColumnVector c, int rowId) throws IOException { int left = total; while (left > 0) { readRepetitionAndDefinitionLevels(); if (definitionLevel >= maxDefLevel) { switch (descriptor.getType()) { //INT64 is not yet supported case INT96: c.set(rowId, dataColumn.readTimestamp().toSqlTimestamp()); break; default: throw new IOException( "Unsupported parquet logical type: " + type.getOriginalType() + " for timestamp"); } c.isNull[rowId] = false; c.isRepeating = c.isRepeating && ((c.time[0] == c.time[rowId]) && (c.nanos[0] == c.nanos[rowId])); } else { setNullValue(c, rowId); } rowId++; left--; } }
(descriptor.getType() == PrimitiveType.PrimitiveTypeName.INT32 || (descriptor.getType() == PrimitiveType.PrimitiveTypeName.INT64 && column.dataType() != DataTypes.TimestampType) || descriptor.getType() == PrimitiveType.PrimitiveTypeName.FLOAT || descriptor.getType() == PrimitiveType.PrimitiveTypeName.DOUBLE || descriptor.getType() == PrimitiveType.PrimitiveTypeName.BINARY))) { switch (descriptor.getType()) { case BOOLEAN: readBooleanBatch(rowId, num, column); break; default: throw new IOException("Unsupported type: " + descriptor.getType());
public boolean isFixedLength( ) { return column.getType() != PrimitiveType.PrimitiveTypeName.BINARY; }
public void resolveDrillType(Map<String, SchemaElement> schemaElements, OptionManager options) { se = schemaElements.get(ParquetReaderUtility.getFullColumnPath(column)); type = ParquetToDrillTypeConverter.toMajorType(column.getType(), column.getTypeLength(), getDataMode(column), se, options); field = MaterializedField.create(toFieldName(column.getPath()).getLastSegment().getNameSegment().getPath(), type); length = getDataTypeLength(); }
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { checkArgument( descriptor.getType() == BINARY || descriptor.getType() == FIXED_LEN_BYTE_ARRAY, "Encoding DELTA_BYTE_ARRAY is only supported for type BINARY and FIXED_LEN_BYTE_ARRAY"); return new DeltaByteArrayReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { checkArgument( descriptor.getType() == BINARY || descriptor.getType() == FIXED_LEN_BYTE_ARRAY, "Encoding DELTA_BYTE_ARRAY is only supported for type BINARY and FIXED_LEN_BYTE_ARRAY"); return new DeltaByteArrayReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { if (descriptor.getType() != BINARY && descriptor.getType() != FIXED_LEN_BYTE_ARRAY) { throw new ParquetDecodingException("Encoding DELTA_BYTE_ARRAY is only supported for type BINARY and FIXED_LEN_BYTE_ARRAY"); } return new DeltaByteArrayReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { checkArgument(descriptor.getType() == BINARY, "Encoding DELTA_LENGTH_BYTE_ARRAY is only supported for type BINARY"); return new DeltaLengthByteArrayValuesReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { if(descriptor.getType() != INT32 && descriptor.getType() != INT64) { throw new ParquetDecodingException("Encoding DELTA_BINARY_PACKED is only supported for type INT32 and INT64"); } return new DeltaBinaryPackingValuesReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { if (descriptor.getType() != BINARY && descriptor.getType() != FIXED_LEN_BYTE_ARRAY) { throw new ParquetDecodingException("Encoding DELTA_BYTE_ARRAY is only supported for type BINARY and FIXED_LEN_BYTE_ARRAY"); } return new DeltaByteArrayReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { if(descriptor.getType() != INT32 && descriptor.getType() != INT64) { throw new ParquetDecodingException("Encoding DELTA_BINARY_PACKED is only supported for type INT32 and INT64"); } return new DeltaBinaryPackingValuesReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { checkArgument(descriptor.getType() == INT32, "Encoding DELTA_BINARY_PACKED is only supported for type INT32"); return new DeltaBinaryPackingValuesReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { checkArgument(descriptor.getType() == INT32, "Encoding DELTA_BINARY_PACKED is only supported for type INT32"); return new DeltaBinaryPackingValuesReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { checkArgument(descriptor.getType() == BINARY, "Encoding DELTA_LENGTH_BYTE_ARRAY is only supported for type BINARY"); return new DeltaLengthByteArrayValuesReader(); } },
@Override public ValuesReader getDictionaryBasedValuesReader(ColumnDescriptor descriptor, ValuesType valuesType, Dictionary dictionary) { switch (descriptor.getType()) { case BINARY: case FIXED_LEN_BYTE_ARRAY: case INT96: case INT64: case DOUBLE: case INT32: case FLOAT: return new DictionaryValuesReader(dictionary); default: throw new ParquetDecodingException("Dictionary encoding not supported for type: " + descriptor.getType()); } }
@Override public ValuesReader getDictionaryBasedValuesReader(ColumnDescriptor descriptor, ValuesType valuesType, Dictionary dictionary) { switch (descriptor.getType()) { case BINARY: case FIXED_LEN_BYTE_ARRAY: case INT96: case INT64: case DOUBLE: case INT32: case FLOAT: return new DictionaryValuesReader(dictionary); default: throw new ParquetDecodingException("Dictionary encoding not supported for type: " + descriptor.getType()); } }
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { if (descriptor.getType() != BINARY) { throw new ParquetDecodingException("Encoding DELTA_LENGTH_BYTE_ARRAY is only supported for type BINARY"); } return new DeltaLengthByteArrayValuesReader(); } },
@Override public ValuesReader getValuesReader(ColumnDescriptor descriptor, ValuesType valuesType) { if (descriptor.getType() != BINARY) { throw new ParquetDecodingException("Encoding DELTA_LENGTH_BYTE_ARRAY is only supported for type BINARY"); } return new DeltaLengthByteArrayValuesReader(); } },
@SuppressWarnings("resource") FixedWidthRepeatedReader makeRepeatedFixedWidthReader(ParquetRecordReader reader) throws Exception { final RepeatedValueVector repeatedVector = RepeatedValueVector.class.cast(vector); ColumnReader<?> dataReader = ColumnReaderFactory.createFixedColumnReader(reader, true, column, columnChunkMetaData, repeatedVector.getDataVector(), se); return new FixedWidthRepeatedReader(reader, dataReader, getTypeLengthInBits(column.getType()), column, columnChunkMetaData, false, repeatedVector, se); }