Class UnnestColumnValueSelectorCursor

  • All Implemented Interfaces:
    Cursor

    public class UnnestColumnValueSelectorCursor
    extends Object
    implements Cursor
    The cursor to help unnest MVDs without dictionary encoding and ARRAY type selectors.

    Consider a segment has 2 rows ['a', 'b', 'c'] ['d', 'e']

    The baseCursor points to the row ['a', 'b', 'c'] while the unnestCursor with each call of advance() moves over individual elements.

    unnestCursor.advance() -> 'a' unnestCursor.advance() -> 'b' unnestCursor.advance() -> 'c' unnestCursor.advance() -> 'd' (advances base cursor first) unnestCursor.advance() -> 'e'

    The index reference points to the index of each row that the unnest cursor is accessing through currentVal The index ranges from 0 to the size of the list in each row which is held in the unnestListForCurrentRow

    The needInitialization flag sets up the initial values of unnestListForCurrentRow at the beginning of the segment