You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Floating point record equaliser uses primitive equality #8532
Minimal reproduce step
Generate a RecordEqualiser for a DOUBLE or FLOAT field and compare rows containing NaN, non-canonical NaN payloads, or signed zero. The same issue appears through GenericRow, the current BinaryRow fast path, nested arrays, and map keys containing floating-point fields.
What doesn't meet your expectations?
The generated equaliser uses primitive == for floating-point fields. This makes NaN unequal to itself and treats signed zero as equal, while generated comparators already use Float.compare and Double.compare. Raw row/array fast paths and Java map key lookup can also bypass generated floating-point comparison semantics.
Anything else?
The adjacent comparator issue was fixed in PR #8295. This fixes the same floating-point semantics for generated equality, including nested generated scalar equality and raw equality/key-lookup guards.
Activity