Interface PagesHashStrategy

All Known Implementing Classes:
SimplePagesHashStrategy

public interface PagesHashStrategy
  • Method Summary

    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
    Gets the number of columns appended by this PagesHashStrategy.
    long
    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
    positionNotDistinctFromPosition(int leftBlockIndex, int leftPosition, int rightBlockIndex, int rightPosition)
    Compares the hashed columns in this PagesHashStrategy at the specified positions.
    boolean
    positionNotDistinctFromRow(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.
    boolean
    rowNotDistinctFromRow(int leftPosition, Page leftPage, int rightPosition, Page rightPage)
    Compares the values in the specified pages.
  • Method Details

    • 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.
    • rowNotDistinctFromRow

      boolean rowNotDistinctFromRow(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. The values are compared under "not distinct from" semantics.
    • 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.
    • positionNotDistinctFromRow

      boolean positionNotDistinctFromRow(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. The values are compared under "not distinct from" semantics.
    • 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.
    • positionNotDistinctFromPosition

      boolean positionNotDistinctFromPosition(int leftBlockIndex, int leftPosition, int rightBlockIndex, int rightPosition)
      Compares the hashed columns in this PagesHashStrategy at the specified positions. The values are compared under "not distinct from" semantics.
    • 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