Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.15.1
Description
Currently RangeEqualsVisitor generally only checks type once and keep the result to avoid repeated type checking, see
typeCompareResult = left.getField().getType().equals(right.getField().getType());
This only compares ArrowType and for complex type, this may cause unexpected behavior, for example List<Int> and List<BigInt> would be type equals which not consider their child field.
We should compare Field here instead and to make it more extendable, we use TypeEqualsVisitor to compare Field, in this way, one could choose whether checks names or metadata either.
Also provide a test for ListVector to validate this change.
Attachments
Issue Links
- links to