Github user kiszk commented on a diff in the pull request:
https://github.com/apache/spark/pull/22101#discussion_r209863964
--- Diff:
sql/catalyst/src/main/java/org/apache/spark/sql/execution/RecordBinaryComparator.java
---
@@ -42,16 +42,16 @@ public int compare(
while ((leftOff + i) % 8 != 0 && i < leftLen) {
res = (Platform.getByte(leftObj, leftOff + i) & 0xff) -
(Platform.getByte(rightObj, rightOff + i) & 0xff);
- if (res != 0) return res;
+ if (res != 0) return (int) res;
i += 1;
}
}
// for architectures that support unaligned accesses, chew it up 8
bytes at a time
if (Platform.unaligned() || (((leftOff + i) % 8 == 0) && ((rightOff +
i) % 8 == 0))) {
while (i <= leftLen - 8) {
- res = (int) ((Platform.getLong(leftObj, leftOff + i) -
- Platform.getLong(rightObj, rightOff + i)) %
Integer.MAX_VALUE);
- if (res != 0) return res;
+ res = Platform.getLong(leftObj, leftOff + i) -
+ Platform.getLong(rightObj, rightOff + i);
+ if (res != 0) return res > 0 ? 1 : -1;
--- End diff --
+1 for no subtraction.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]