lidavidm commented on code in PR #38669:
URL: https://github.com/apache/arrow/pull/38669#discussion_r1391296852
##########
java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/DefaultVectorComparators.java:
##########
@@ -674,6 +686,60 @@ public VectorValueComparator<TimeStampVector> createNew() {
}
}
+ /**
+ * Default comparator for {@link
org.apache.arrow.vector.FixedSizeBinaryVector}.
+ * The comparison is in lexicographic order, with null comes first.
+ */
+ public static class FixedSizeBinaryComparator extends
VectorValueComparator<FixedSizeBinaryVector> {
+
+ @Override
+ public int compare(int index1, int index2) {
+ NullableFixedSizeBinaryHolder holder1 = new
NullableFixedSizeBinaryHolder();
+ NullableFixedSizeBinaryHolder holder2 = new
NullableFixedSizeBinaryHolder();
+ vector1.get(index1, holder1);
+ vector2.get(index2, holder2);
+
+ return ByteFunctionHelpers.compare(
+ holder1.buffer, 0, holder1.byteWidth, holder2.buffer, 0,
holder2.byteWidth);
+ }
+
+ @Override
+ public int compareNotNull(int index1, int index2) {
+ NullableFixedSizeBinaryHolder holder1 = new
NullableFixedSizeBinaryHolder();
+ NullableFixedSizeBinaryHolder holder2 = new
NullableFixedSizeBinaryHolder();
+ vector1.get(index1, holder1);
+ vector2.get(index2, holder2);
+
+ return ByteFunctionHelpers.compare(
+ holder1.buffer, 0, holder1.byteWidth, holder2.buffer, 0,
holder2.byteWidth);
+ }
+
+ @Override
+ public VectorValueComparator<FixedSizeBinaryVector> createNew() {
+ return new FixedSizeBinaryComparator();
+ }
+ }
+
+ /**
+ * Default comparator for {@link org.apache.arrow.vector.NullVector}.
+ */
+ public static class NullComparator extends VectorValueComparator<NullVector>
{
+ @Override
+ public int compare(int index1, int index2) {
Review Comment:
Yes, or AssertionError or similar (did you mean compareNotNull should throw,
though?)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]