@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()); } }
dictionaryLengthDeterminingReader = new DictionaryValuesReader(dictionary); dictionaryLengthDeterminingReader.initFromPage(currentPageCount, pageDataBuffer, (int) readPosInBytes); dictionaryValueReader = new DictionaryValuesReader(dictionary); dictionaryValueReader.initFromPage(currentPageCount, pageDataBuffer, (int) readPosInBytes); parentColumnReader.usingDictionary = true;
int index = (int)readPosInBytes; ByteBuffer byteBuffer = pageData.nioBuffer(index, pageData.capacity() - index); dictionaryLengthDeterminingReader = new DictionaryValuesReader(dictionary); dictionaryLengthDeterminingReader.initFromPage(currentPageCount, ByteBufferInputStream.wrap(byteBuffer)); dictionaryValueReader = new DictionaryValuesReader(dictionary); dictionaryValueReader.initFromPage(currentPageCount, ByteBufferInputStream.wrap(byteBuffer)); parentColumnReader.usingDictionary = true;