in algorithm/src/main/java/org/apache/arrow/algorithm/sort/DefaultVectorComparators.java [67:135]
public static <T extends ValueVector> VectorValueComparator<T> createDefaultComparator(T vector) {
if (vector instanceof BaseFixedWidthVector) {
if (vector instanceof TinyIntVector) {
return (VectorValueComparator<T>) new ByteComparator();
} else if (vector instanceof SmallIntVector) {
return (VectorValueComparator<T>) new ShortComparator();
} else if (vector instanceof IntVector) {
return (VectorValueComparator<T>) new IntComparator();
} else if (vector instanceof BigIntVector) {
return (VectorValueComparator<T>) new LongComparator();
} else if (vector instanceof Float4Vector) {
return (VectorValueComparator<T>) new Float4Comparator();
} else if (vector instanceof Float8Vector) {
return (VectorValueComparator<T>) new Float8Comparator();
} else if (vector instanceof UInt1Vector) {
return (VectorValueComparator<T>) new UInt1Comparator();
} else if (vector instanceof UInt2Vector) {
return (VectorValueComparator<T>) new UInt2Comparator();
} else if (vector instanceof UInt4Vector) {
return (VectorValueComparator<T>) new UInt4Comparator();
} else if (vector instanceof UInt8Vector) {
return (VectorValueComparator<T>) new UInt8Comparator();
} else if (vector instanceof BitVector) {
return (VectorValueComparator<T>) new BitComparator();
} else if (vector instanceof DateDayVector) {
return (VectorValueComparator<T>) new DateDayComparator();
} else if (vector instanceof DateMilliVector) {
return (VectorValueComparator<T>) new DateMilliComparator();
} else if (vector instanceof Decimal256Vector) {
return (VectorValueComparator<T>) new Decimal256Comparator();
} else if (vector instanceof DecimalVector) {
return (VectorValueComparator<T>) new DecimalComparator();
} else if (vector instanceof DurationVector) {
return (VectorValueComparator<T>) new DurationComparator();
} else if (vector instanceof IntervalDayVector) {
return (VectorValueComparator<T>) new IntervalDayComparator();
} else if (vector instanceof IntervalMonthDayNanoVector) {
throw new IllegalArgumentException(
"No default comparator for " + vector.getClass().getCanonicalName());
} else if (vector instanceof TimeMicroVector) {
return (VectorValueComparator<T>) new TimeMicroComparator();
} else if (vector instanceof TimeMilliVector) {
return (VectorValueComparator<T>) new TimeMilliComparator();
} else if (vector instanceof TimeNanoVector) {
return (VectorValueComparator<T>) new TimeNanoComparator();
} else if (vector instanceof TimeSecVector) {
return (VectorValueComparator<T>) new TimeSecComparator();
} else if (vector instanceof TimeStampVector) {
return (VectorValueComparator<T>) new TimeStampComparator();
} else if (vector instanceof FixedSizeBinaryVector) {
return (VectorValueComparator<T>) new FixedSizeBinaryComparator();
}
} else if (vector instanceof VariableWidthVector) {
return (VectorValueComparator<T>) new VariableWidthComparator();
} else if (vector instanceof RepeatedValueVector) {
VectorValueComparator<?> innerComparator =
createDefaultComparator(((RepeatedValueVector) vector).getDataVector());
return new RepeatedValueComparator(innerComparator);
} else if (vector instanceof FixedSizeListVector) {
VectorValueComparator<?> innerComparator =
createDefaultComparator(((FixedSizeListVector) vector).getDataVector());
return new FixedSizeListComparator(innerComparator);
} else if (vector instanceof NullVector) {
return (VectorValueComparator<T>) new NullComparator();
}
throw new IllegalArgumentException(
"No default comparator for " + vector.getClass().getCanonicalName());
}