BlockletDataMapUtil.updateMinValues(segmentProperties, minMaxIndex.getMinValues()); byte[][] maxValues = BlockletDataMapUtil.updateMaxValues(segmentProperties, minMaxIndex.getMaxValues());
private void fillBlockletInfoToTableBlock(List<TableBlockInfo> tableBlockInfos, TableBlockInfo blockInfo, BlockletDetailInfo blockletDetailInfo, DataFileFooter fileFooter, BlockletInfo blockletInfo, short blockletId, SegmentProperties segmentProperties) { TableBlockInfo info = blockInfo.copy(); BlockletDetailInfo detailInfo = info.getDetailInfo(); // set column schema details detailInfo.setColumnSchemas(fileFooter.getColumnInTable()); detailInfo.setRowCount(blockletInfo.getNumberOfRows()); byte[][] maxValues = blockletInfo.getBlockletIndex().getMinMaxIndex().getMaxValues(); byte[][] minValues = blockletInfo.getBlockletIndex().getMinMaxIndex().getMinValues(); if (blockletDetailInfo.isLegacyStore()) { minValues = BlockletDataMapUtil.updateMinValues(segmentProperties, blockletInfo.getBlockletIndex().getMinMaxIndex().getMinValues()); maxValues = BlockletDataMapUtil.updateMaxValues(segmentProperties, blockletInfo.getBlockletIndex().getMinMaxIndex().getMaxValues()); // update min and max values in case of old store for measures as min and max is written // opposite for measures in old store ( store <= 1.1 version) byte[][] tempMaxValues = maxValues; maxValues = CarbonUtil.updateMinMaxValues(fileFooter, maxValues, minValues, false); minValues = CarbonUtil.updateMinMaxValues(fileFooter, tempMaxValues, minValues, true); info.setDataBlockFromOldStore(true); } blockletInfo.getBlockletIndex().getMinMaxIndex().setMaxValues(maxValues); blockletInfo.getBlockletIndex().getMinMaxIndex().setMinValues(minValues); detailInfo.setBlockletInfo(blockletInfo); detailInfo.setBlockletId(blockletId); detailInfo.setPagesCount((short) blockletInfo.getNumberOfPages()); tableBlockInfos.add(info); }