RussellSpitzer commented on code in PR #14500:
URL: https://github.com/apache/iceberg/pull/14500#discussion_r2755721526
##########
api/src/main/java/org/apache/iceberg/expressions/Literals.java:
##########
@@ -608,9 +608,24 @@ public String toString() {
}
}
- static class UUIDLiteral extends ComparableLiteral<UUID> {
+ static class UUIDLiteral extends BaseLiteral<UUID> {
+ private static final Comparator<UUID> RFC_CMP =
+ Comparators.<UUID>nullsFirst().thenComparing(Comparators.uuids());
+ private static final Comparator<UUID> SIGNED_CMP =
+
Comparators.<UUID>nullsFirst().thenComparing(Comparators.signedUUIDs());
+
+ // Flag to indicate which comparator to use (serializable)
+ private final boolean useSignedComparator;
+ // Transient cached comparator (reconstructed on deserialization)
+ private transient volatile Comparator<UUID> cmp;
Review Comment:
Is this important? Seems like we are just caching a reference to one of the
above static comparators. I would hope the java compiler would be able to see
that `comparator()` is essentially a static method call which always returns
one of the two. Seems like we are just adding a little shortcut to that
optimization?
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]