[ https://issues.apache.org/jira/browse/DRILL-4081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15006137#comment-15006137 ]
ASF GitHub Bot commented on DRILL-4081: --------------------------------------- Github user jacques-n commented on a diff in the pull request: https://github.com/apache/drill/pull/257#discussion_r44883050 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/record/BatchSchema.java --- @@ -113,10 +115,45 @@ public boolean equals(Object obj) { } else if (!fields.equals(other.fields)) { return false; } + for (int i = 0; i < fields.size(); i++) { + MajorType t1 = fields.get(i).getType(); + MajorType t2 = other.fields.get(i).getType(); + if (t1 == null) { + if (t2 != null) { + return false; + } + } else { + if (!majorTypeEqual(t1, t2)) { + return false; + } + } + } if (selectionVectorMode != other.selectionVectorMode) { return false; } return true; } + /** + * We treat fields with same set of Subtypes as equal, even if they are in a different order + * @param t1 + * @param t2 + * @return + */ + private boolean majorTypeEqual(MajorType t1, MajorType t2) { --- End diff -- A better function name would be good here. maybe majorTypeSubfieldSetsAreEqual? > Handle schema changes in ExternalSort > ------------------------------------- > > Key: DRILL-4081 > URL: https://issues.apache.org/jira/browse/DRILL-4081 > Project: Apache Drill > Issue Type: Improvement > Reporter: Steven Phillips > Assignee: Steven Phillips > > This improvement will make use of the Union vector to handle schema changes. > When a new schema appears, the schema will be "merged" with the previous > schema. The result will be a new schema that uses Union type to store the > columns where this is a type conflict. All of the batches (including the > batches that have already arrived) will be coerced into this new schema. > A new comparison function will be included to handle the comparison of Union > type. Comparison of union type will work as follows: > 1. All numeric types can be mutually compared, and will be compared using > Drill implicit cast rules. > 2. All other types will not be compared against other types, but only among > values of the same type. > 3. There will be an overall precedence of types with regards to ordering. > This precedence is not yet defined, but will be as part of the work on this > issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)