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 value". 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: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org