Github user manishgupta88 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2956#discussion_r236644573 --- Diff: core/src/main/java/org/apache/carbondata/core/datastore/block/SegmentPropertiesAndSchemaHolder.java --- @@ -332,13 +334,42 @@ public void clear() { } SegmentPropertiesAndSchemaHolder.SegmentPropertiesWrapper other = (SegmentPropertiesAndSchemaHolder.SegmentPropertiesWrapper) obj; - return tableIdentifier.equals(other.tableIdentifier) && columnsInTable - .equals(other.columnsInTable) && Arrays + return tableIdentifier.equals(other.tableIdentifier) && checkColumnSchemaEquality( + columnsInTable, other.columnsInTable) && Arrays .equals(columnCardinality, other.columnCardinality); } + private boolean checkColumnSchemaEquality(List<ColumnSchema> obj1, List<ColumnSchema> obj2) { + List<ColumnSchema> clonedObj1 = new ArrayList<>(obj1); --- End diff -- You can add the first check for length in the first line of method...if length of 2 lists is not same then we can return false from here itself
---