Class ModeAccumulator

java.lang.Object
dev.frostlake.functions.aggregate.ModeAccumulator
All Implemented Interfaces:
AggregateFunction.Accumulator

public class ModeAccumulator extends Object implements AggregateFunction.Accumulator
MODE's accumulator: the most frequent non-NULL value, a tie going to the value seen FIRST.

Live documents a tie as "one of them" and hands back whichever value its hash table lists first — a choice that shifts with the value's family, the plan and the insertion order (live-verified: {1.50, 2.50} is 1.50 in either order, {2, 4} the second inserted, a VARIANT {2, 4} 4 in either order, a DATE pair the later date, a two-row table's BOOLEAN the first inserted, and (7, 8, 9, 10, 11) is 9 while its reverse is 8). No rule reproduces that, so the engine keeps the one deterministic choice a reader can predict; a test can pin a tie only as membership in the tied set.

Equal values share a count however they are carried — 1.50 and 1.5, a Long and a BigDecimal, a VARIANT by its text — and the value handed back is the first one's own carrier.