@Override public MeasureRawColumnChunk readRawMeasureChunk(FileReader fileReader, int columnIndex) throws IOException { int dataLength = 0; if (measureColumnChunkOffsets.size() - 1 == columnIndex) { DataChunk2 metadataChunk = null; synchronized (fileReader) { metadataChunk = CarbonUtil.readDataChunk(ByteBuffer.wrap(fileReader .readByteArray(filePath, measureColumnChunkOffsets.get(columnIndex), measureColumnChunkLength.get(columnIndex))), 0, measureColumnChunkLength.get(columnIndex)); } dataLength = measureColumnChunkLength.get(columnIndex) + metadataChunk.data_page_length; } else { long currentMeasureOffset = measureColumnChunkOffsets.get(columnIndex); dataLength = (int) (measureColumnChunkOffsets.get(columnIndex + 1) - currentMeasureOffset); } ByteBuffer buffer = null; synchronized (fileReader) { buffer = fileReader .readByteBuffer(filePath, measureColumnChunkOffsets.get(columnIndex), dataLength); } MeasureRawColumnChunk rawColumnChunk = new MeasureRawColumnChunk(columnIndex, buffer, 0, dataLength, this); rawColumnChunk.setFileReader(fileReader); rawColumnChunk.setPagesCount(1); rawColumnChunk.setRowCount(new int[] { numberOfRows }); return rawColumnChunk; }
synchronized (fileReader) { columnIndexData = fileReader .readByteArray(filePath, dataChunk.getRowIdPageOffset(), dataChunk.getRowIdPageLength()); synchronized (fileReader) { key = fileReader .readByteArray(filePath, dataChunk.getRlePageOffset(), dataChunk.getRlePageLength());