Github user manishgupta88 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/3022#discussion_r244086110 --- Diff: processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java --- @@ -356,9 +359,20 @@ public static CarbonFactDataHandlerModel getCarbonFactDataHandlerModel(CarbonLoa .getColumnSchemaList(carbonTable.getDimensionByTableName(tableName), carbonTable.getMeasureByTableName(tableName)); carbonFactDataHandlerModel.setWrapperColumnSchema(wrapperColumnSchema); - // get the cardinality for all all the columns including no dictionary columns - int[] formattedCardinality = CarbonUtil - .getFormattedCardinality(segmentProperties.getDimColumnsCardinality(), wrapperColumnSchema); + // get the cardinality for all all the columns including no + // dictionary columns and complex columns + int[] dimAndComplexColumnCardinality = + new int[segmentProperties.getDimColumnsCardinality().length + segmentProperties + .getComplexDimColumnCardinality().length]; + for (int i = 0; i < segmentProperties.getDimColumnsCardinality().length; i++) { + dimAndComplexColumnCardinality[i] = segmentProperties.getDimColumnsCardinality()[i]; --- End diff -- Check for a resturcture drop column case when few loads are done and then dictionary column is dropped and compaction is triggered. In that case segmentProperties will contain cardinality of dropped column also check finally what is the schema and cardinality written during compaction
---