Interface PagesHashStrategy

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void appendTo​(int blockIndex, int position, PageBuilder pageBuilder, int outputChannelOffset)
      Appends all values at the specified position to the page builder starting at outputChannelOffset.
      int compareSortChannelPositions​(int leftBlockIndex, int leftBlockPosition, int rightBlockIndex, int rightBlockPosition)
      Compares sort channel (if applicable) values at the specified positions.
      int getChannelCount()
      Gets the number of columns appended by this PagesHashStrategy.
      long getSizeInBytes()
      Get the total of allocated size
      long hashPosition​(int blockIndex, int position)
      Calculates the hash code the hashed columns in this PagesHashStrategy at the specified position.
      long hashRow​(int position, Page page)
      Calculates the hash code at position in page.
      boolean isPositionNull​(int blockIndex, int blockPosition)
      Checks if any of the hashed columns is null
      boolean isSortChannelPositionNull​(int blockIndex, int blockPosition)
      Checks if sort channel is null at the specified position
      boolean positionEqualsPosition​(int leftBlockIndex, int leftPosition, int rightBlockIndex, int rightPosition)
      Compares the hashed columns in this PagesHashStrategy at the specified positions.
      boolean positionEqualsPositionIgnoreNulls​(int leftBlockIndex, int leftPosition, int rightBlockIndex, int rightPosition)
      Compares the hashed columns in this PagesHashStrategy at the specified positions.
      boolean positionEqualsRow​(int leftBlockIndex, int leftPosition, int rightPosition, Page rightPage)
      Compares the hashed columns in this PagesHashStrategy to the values in the specified page.
      boolean positionEqualsRowIgnoreNulls​(int leftBlockIndex, int leftPosition, int rightPosition, Page rightPage)
      Compares the hashed columns in this PagesHashStrategy to the values in the specified page.
      boolean positionNotDistinctFromRow​(int leftBlockIndex, int leftPosition, int rightPosition, Page page, int[] rightChannels)
      Compares the hashed columns in this PagesHashStrategy to the hashed columns in the Page.
      boolean rowEqualsRow​(int leftPosition, Page leftPage, int rightPosition, Page rightPage)
      Compares the values in the specified pages.
    • Method Detail

      • getChannelCount

        int getChannelCount()
        Gets the number of columns appended by this PagesHashStrategy.
      • getSizeInBytes

        long getSizeInBytes()
        Get the total of allocated size
      • appendTo

        void appendTo​(int blockIndex,
                      int position,
                      PageBuilder pageBuilder,
                      int outputChannelOffset)
        Appends all values at the specified position to the page builder starting at outputChannelOffset.
      • hashPosition

        long hashPosition​(int blockIndex,
                          int position)
        Calculates the hash code the hashed columns in this PagesHashStrategy at the specified position.
      • hashRow

        long hashRow​(int position,
                     Page page)
        Calculates the hash code at position in page. Page must have the same number of Blocks as the hashed columns and each entry is expected to be the same type.
      • rowEqualsRow

        boolean rowEqualsRow​(int leftPosition,
                             Page leftPage,
                             int rightPosition,
                             Page rightPage)
        Compares the values in the specified pages. The values are compared positionally, so leftPage and rightPage must have the same number of entries as the hashed columns and each entry is expected to be the same type.
      • positionEqualsRow

        boolean positionEqualsRow​(int leftBlockIndex,
                                  int leftPosition,
                                  int rightPosition,
                                  Page rightPage)
        Compares the hashed columns in this PagesHashStrategy to the values in the specified page. The values are compared positionally, so rightPage must have the same number of entries as the hashed columns and each entry is expected to be the same type. rightPage is used if join uses filter function and must contain all columns from probe side of join.
      • positionEqualsRowIgnoreNulls

        boolean positionEqualsRowIgnoreNulls​(int leftBlockIndex,
                                             int leftPosition,
                                             int rightPosition,
                                             Page rightPage)
        Compares the hashed columns in this PagesHashStrategy to the values in the specified page. The values are compared positionally, so rightPage must have the same number of entries as the hashed columns and each entry is expected to be the same type. rightPage is used if join uses filter function and must contain all columns from probe side of join.

        This method does not perform any null checks.

      • positionNotDistinctFromRow

        boolean positionNotDistinctFromRow​(int leftBlockIndex,
                                           int leftPosition,
                                           int rightPosition,
                                           Page page,
                                           int[] rightChannels)
        Compares the hashed columns in this PagesHashStrategy to the hashed columns in the Page. The values are compared positionally under "not distinct from" semantics. rightChannels must have the same number of entries as the hashed columns and each entry is expected to be the same type.
      • positionEqualsPosition

        boolean positionEqualsPosition​(int leftBlockIndex,
                                       int leftPosition,
                                       int rightBlockIndex,
                                       int rightPosition)
        Compares the hashed columns in this PagesHashStrategy at the specified positions.
      • positionEqualsPositionIgnoreNulls

        boolean positionEqualsPositionIgnoreNulls​(int leftBlockIndex,
                                                  int leftPosition,
                                                  int rightBlockIndex,
                                                  int rightPosition)
        Compares the hashed columns in this PagesHashStrategy at the specified positions.

        This method does not perform any null checks.

      • isPositionNull

        boolean isPositionNull​(int blockIndex,
                               int blockPosition)
        Checks if any of the hashed columns is null
      • compareSortChannelPositions

        int compareSortChannelPositions​(int leftBlockIndex,
                                        int leftBlockPosition,
                                        int rightBlockIndex,
                                        int rightBlockPosition)
        Compares sort channel (if applicable) values at the specified positions.
      • isSortChannelPositionNull

        boolean isSortChannelPositionNull​(int blockIndex,
                                          int blockPosition)
        Checks if sort channel is null at the specified position