// TODO - figure out if we need multiple dictionary pages, I believe it may be limited to one
// I think we are clobbering parts of the dictionary if there can be multiple pages of dictionary
do {
pageHeader = dataReader.readPageHeader();
if (pageHeader.getType() == PageType.DICTIONARY_PAGE) {
BytesInput bytesIn = parentColumnReader.parentReader.getCodecFactoryExposer()
.decompress( //
dataReader.getPageAsBytesInput(pageHeader.compressed_page_size), //
pageHeader.getUncompressed_page_size(), //
parentColumnReader.columnChunkMetaData.getCodec());
DictionaryPage page = new DictionaryPage(
bytesIn,
pageHeader.uncompressed_page_size,
pageHeader.dictionary_page_header.num_values,
parquet.column.Encoding.valueOf(pageHeader.dictionary_page_header.encoding.name())
);
this.dictionary = page.getEncoding().initDictionary(parentColumnReader.columnDescriptor, page);
}
} while (pageHeader.getType() == PageType.DICTIONARY_PAGE);
BytesInput bytesIn = parentColumnReader.parentReader.getCodecFactoryExposer()
.decompress( //
dataReader.getPageAsBytesInput(pageHeader.compressed_page_size), //
pageHeader.getUncompressed_page_size(), //
parentColumnReader.columnChunkMetaData.getCodec());
currentPage = new Page(