difin commented on code in PR #5527:
URL: https://github.com/apache/hive/pull/5527#discussion_r1835266877
##########
serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java:
##########
@@ -1652,4 +1654,20 @@ public static boolean
hasAllFieldsSettable(ObjectInspector oi,
private ObjectInspectorUtils() {
// prevent instantiation
}
+
+ /**
+ * Returns slot value used for ordering the fields to make it deterministic
+ * @param field : field of a given class
+ * @return
+ */
+ private static int getSlotValue(Field field) {
+ try {
+ Field slotField = Field.class.getDeclaredField("slot");
+ slotField.setAccessible(true);
+ return slotField.getInt(field);
+ } catch (NoSuchFieldException | IllegalAccessException |
IllegalArgumentException e) {
+ LOG.info("Field not found: {}", e);
Review Comment:
Yes, just I think it would be better to make the exception message something
like "Error getting a slot number
If an exception happens here, why do we log it on info level and return 0?
In Comparator zero means equality.
Maybe it's better to log it on error level and throw a Hive-specific runtime
exception?
--
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]