Github user kunal642 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2956#discussion_r236768636
--- 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);
+ List<ColumnSchema> clonedObj2 = new ArrayList<>(obj2);
+ clonedObj1.addAll(obj1);
+ clonedObj2.addAll(obj2);
+ Collections.sort(clonedObj1, new Comparator<ColumnSchema>() {
+ @Override public int compare(ColumnSchema o1, ColumnSchema o2) {
+ return o1.getColumnUniqueId().compareTo(o2.getColumnUniqueId());
+ }
+ });
+ Collections.sort(clonedObj2, new Comparator<ColumnSchema>() {
--- End diff --
done
---