/** * check the block whether is valid * * @param segName segment name * @param blockName block name * @return the status of block whether is valid */ public boolean isBlockValid(String segName, String blockName) { SegmentUpdateDetails details = getDetailsForABlock(segName, blockName); return details == null || !CarbonUpdateUtil.isBlockInvalid(details.getSegmentStatus()); } /**
/** * Return row count of input block */ public static long getRowCount( BlockMappingVO blockMappingVO, CarbonTable carbonTable) { SegmentUpdateStatusManager updateStatusManager = new SegmentUpdateStatusManager(carbonTable); long rowCount = 0; Map<String, Long> blockRowCountMap = blockMappingVO.getBlockRowCountMapping(); for (Map.Entry<String, Long> blockRowEntry : blockRowCountMap.entrySet()) { String key = blockRowEntry.getKey(); long alreadyDeletedCount = 0; SegmentUpdateDetails detail = updateStatusManager.getDetailsForABlock(key); if (detail != null) { alreadyDeletedCount = Long.parseLong(detail.getDeletedRowsInBlock()); } rowCount += (blockRowEntry.getValue() - alreadyDeletedCount); } return rowCount; }
/** * * @param blockMappingVO * @param segmentUpdateStatusManager */ public static void createBlockDetailsMap(BlockMappingVO blockMappingVO, SegmentUpdateStatusManager segmentUpdateStatusManager) { Map<String, Long> blockRowCountMap = blockMappingVO.getBlockRowCountMapping(); Map<String, RowCountDetailsVO> outputMap = new HashMap<>(CarbonCommonConstants.DEFAULT_COLLECTION_SIZE); for (Map.Entry<String, Long> blockRowEntry : blockRowCountMap.entrySet()) { String key = blockRowEntry.getKey(); long alreadyDeletedCount = 0; SegmentUpdateDetails detail = segmentUpdateStatusManager.getDetailsForABlock(key); if (null != detail) { alreadyDeletedCount = Long.parseLong(detail.getDeletedRowsInBlock()); } RowCountDetailsVO rowCountDetailsVO = new RowCountDetailsVO(blockRowEntry.getValue(), alreadyDeletedCount); outputMap.put(key, rowCountDetailsVO); } blockMappingVO.setCompleteBlockRowDetailVO(outputMap); }
SegmentUpdateDetails details = updateStatusManager.getDetailsForABlock(key);