Class GroupedTopNRankAccumulator

java.lang.Object
io.trino.operator.GroupedTopNRankAccumulator

public class GroupedTopNRankAccumulator extends Object
Memory Layout:

                    +----------------------+
                    |PeerGroupLookup       |
                    +----------------------+
                    |Map:                  |
 (Group1, RowID4)+->+(Group,RowID):HeapNode+-+
                    +----------------------+ |
                                             |
                    +--------------------+   |  +---------------+    +---------------+
                    |GroupIdToHeapBuffer |   |  |HeapNodeBuffer |    |PeerGroupBuffer|
                    +--------------------+   |  +---------------+    +---------------+
           Group1+->+RootNodeIndex1+----------->+PeerGroupIndex1+--->+RowID1         |
                    |RootNodeIndex2      |   |  |PeerGroupCount1|    |NextPeerIndex1+--+
                    |...                 |   |  |LeftChild1   +----+ |RowID2         | |
                    +--------------------+   |  |RightChild1    |  | |NextPeerIndex2 | |
                    |ValueCount1         |   +->+PeerGroupIndex2+<-+ |RowID3   <-------+
                    |HeapSize1           |      |PeerGroupCount2|    |NextPeerIndex3 |
                    |ValueCount2         |      |LeftChild2     |    |...            |
                    |HeapSize2           |      |RightChild2    |    +---------------+
                    |...                 |      |...            |
                    +--------------------+      +---------------+