private DataChunk2 buildPageMetadata(ColumnPage inputPage, byte[] encodedBytes) throws IOException { DataChunk2 dataChunk = new DataChunk2(); dataChunk.setData_page_length(encodedBytes.length); fillBasicFields(inputPage, dataChunk); fillNullBitSet(inputPage, dataChunk); fillEncoding(inputPage, dataChunk); fillMinMaxIndex(inputPage, dataChunk); fillLegacyFields(dataChunk); return dataChunk; }
/** * Fill legacy fields if required * * @param dataChunk * @param result */ public void fillLegacyFieldsIfRequired(DataChunk2 dataChunk, byte[] result) { if (null != indexStorage) { SortState sort = (indexStorage.getRowIdPageLengthInBytes() > 0) ? SortState.SORT_EXPLICIT : SortState.SORT_NATIVE; dataChunk.setSort_state(sort); if (indexStorage.getRowIdPageLengthInBytes() > 0) { int rowIdPageLength = CarbonCommonConstants.INT_SIZE_IN_BYTE + indexStorage.getRowIdPageLengthInBytes() + indexStorage.getRowIdRlePageLengthInBytes(); dataChunk.setRowid_page_length(rowIdPageLength); } } else { dataChunk.setRowid_page_length(0); } if (null != result) { dataChunk.setData_page_length(result.length); } }
@Override protected void fillLegacyFields(DataChunk2 dataChunk) throws IOException { SortState sort = (indexStorage.getRowIdPageLengthInBytes() > 0) ? SortState.SORT_EXPLICIT : SortState.SORT_NATIVE; dataChunk.setSort_state(sort); if (indexStorage.getRowIdPageLengthInBytes() > 0) { int rowIdPageLength = CarbonCommonConstants.INT_SIZE_IN_BYTE + indexStorage.getRowIdPageLengthInBytes() + indexStorage.getRowIdRlePageLengthInBytes(); dataChunk.setRowid_page_length(rowIdPageLength); } if (indexStorage.getDataRlePageLengthInBytes() > 0) { dataChunk.setRle_page_length(indexStorage.getDataRlePageLengthInBytes()); } dataChunk.setData_page_length(compressedDataPage.length); } }
unsetData_page_length(); } else { setData_page_length((Integer)value);