public Object getFieldValue(_Fields field) { switch (field) { case MIN_VALUES: return getMin_values(); case MAX_VALUES: return getMax_values(); case MIN_MAX_PRESENCE: return getMin_max_presence(); } throw new IllegalStateException(); }
/** * convert external thrift BlockletMinMaxIndex to BlockletMinMaxIndex of carbon metadata */ public static org.apache.carbondata.core.metadata.blocklet.index.BlockletMinMaxIndex convertExternalMinMaxIndex(BlockletMinMaxIndex minMaxIndex) { if (minMaxIndex == null) { return null; } List<Boolean> isMinMaxSet = null; if (minMaxIndex.isSetMin_max_presence()) { isMinMaxSet = minMaxIndex.getMin_max_presence(); } else { Boolean[] minMaxFlag = new Boolean[minMaxIndex.getMax_values().size()]; Arrays.fill(minMaxFlag, true); isMinMaxSet = Arrays.asList(minMaxFlag); } return new org.apache.carbondata.core.metadata.blocklet.index.BlockletMinMaxIndex( minMaxIndex.getMin_values(), minMaxIndex.getMax_values(), isMinMaxSet); }
MeasureRawColumnChunk getMeasureRawColumnChunk(FileReader fileReader, int columnIndex, long offset, int dataLength, ByteBuffer buffer, DataChunk3 dataChunk) { // creating a raw chunks instance and filling all the details MeasureRawColumnChunk rawColumnChunk = new MeasureRawColumnChunk(columnIndex, buffer, offset, dataLength, this); int numberOfPages = dataChunk.getPage_length().size(); byte[][] maxValueOfEachPage = new byte[numberOfPages][]; byte[][] minValueOfEachPage = new byte[numberOfPages][]; int[] eachPageLength = new int[numberOfPages]; for (int i = 0; i < minValueOfEachPage.length; i++) { maxValueOfEachPage[i] = dataChunk.getData_chunk_list().get(i).getMin_max().getMax_values().get(0).array(); minValueOfEachPage[i] = dataChunk.getData_chunk_list().get(i).getMin_max().getMin_values().get(0).array(); eachPageLength[i] = dataChunk.getData_chunk_list().get(i).getNumberOfRowsInpage(); } rawColumnChunk.setDataChunkV3(dataChunk); rawColumnChunk.setFileReader(fileReader); rawColumnChunk.setPagesCount(dataChunk.getPage_length().size()); rawColumnChunk.setMaxValues(maxValueOfEachPage); rawColumnChunk.setMinValues(minValueOfEachPage); rawColumnChunk.setRowCount(eachPageLength); rawColumnChunk.setOffsets(ArrayUtils .toPrimitive(dataChunk.page_offset.toArray(new Integer[dataChunk.page_offset.size()]))); return rawColumnChunk; }
/** * Below method will be used to convert the blocklet index of thrift to * wrapper * * @param blockletIndexThrift * @return blocklet index wrapper */ protected BlockletIndex getBlockletIndex( org.apache.carbondata.format.BlockletIndex blockletIndexThrift) { org.apache.carbondata.format.BlockletBTreeIndex btreeIndex = blockletIndexThrift.getB_tree_index(); org.apache.carbondata.format.BlockletMinMaxIndex minMaxIndex = blockletIndexThrift.getMin_max_index(); List<Boolean> isMinMaxSet = null; // Below logic is added to handle backward compatibility if (minMaxIndex.isSetMin_max_presence()) { isMinMaxSet = minMaxIndex.getMin_max_presence(); } else { Boolean[] minMaxFlag = new Boolean[minMaxIndex.getMax_values().size()]; Arrays.fill(minMaxFlag, true); isMinMaxSet = Arrays.asList(minMaxFlag); } return new BlockletIndex( new BlockletBTreeIndex(btreeIndex.getStart_key(), btreeIndex.getEnd_key()), new BlockletMinMaxIndex(minMaxIndex.getMin_values(), minMaxIndex.getMax_values(), isMinMaxSet)); }
for (int i = 0; i < minValueOfEachPage.length; i++) { maxValueOfEachPage[i] = dataChunk.getData_chunk_list().get(i).getMin_max().getMax_values().get(0).array(); minValueOfEachPage[i] = dataChunk.getData_chunk_list().get(i).getMin_max().getMin_values().get(0).array();
BlockletMinMaxIndex minMaxIndex = new BlockletMinMaxIndex(index.getMin_max_index().getMin_values(), index.getMin_max_index().getMax_values(), index.getMin_max_index().getMin_max_presence()); org.apache.carbondata.core.metadata.blocklet.index.BlockletIndex bIndex =