/** * return DataChunk3 that contains the input DataChunk2 list */ public static DataChunk3 getDataChunk3(List<DataChunk2> dataChunksList, LocalDictionaryChunk encodedDictionary) { int offset = 0; DataChunk3 dataChunk = new DataChunk3(); List<Integer> pageOffsets = new ArrayList<>(); List<Integer> pageLengths = new ArrayList<>(); int length = 0; for (DataChunk2 dataChunk2 : dataChunksList) { pageOffsets.add(offset); length = dataChunk2.getData_page_length() + dataChunk2.getRle_page_length() + dataChunk2.getRowid_page_length(); pageLengths.add(length); offset += length; } dataChunk.setLocal_dictionary(encodedDictionary); dataChunk.setData_chunk_list(dataChunksList); dataChunk.setPage_length(pageLengths); dataChunk.setPage_offset(pageOffsets); return dataChunk; }
private void fillBasicFields(ColumnPage inputPage, DataChunk2 dataChunk) throws IOException { dataChunk.setChunk_meta(CarbonMetadataUtil.getChunkCompressorMeta(inputPage, dataChunk.getData_page_length())); dataChunk.setNumberOfRowsInpage(inputPage.getPageSize()); dataChunk.setRowMajor(false); }
public Object getFieldValue(_Fields field) { switch (field) { case CHUNK_META: return getChunk_meta(); case ROW_MAJOR: return isRowMajor(); case DATA_PAGE_LENGTH: return getData_page_length(); case ROWID_PAGE_LENGTH: return getRowid_page_length(); case RLE_PAGE_LENGTH: return getRle_page_length(); case PRESENCE: return getPresence(); case SORT_STATE: return getSort_state(); case ENCODERS: return getEncoders(); case ENCODER_META: return getEncoder_meta(); case MIN_MAX: return getMin_max(); case NUMBER_OF_ROWS_INPAGE: return getNumberOfRowsInpage(); } throw new IllegalStateException(); }