Package io.prestosql.operator
Interface PagesHashStrategy
-
- All Known Implementing Classes:
SimplePagesHashStrategy
public 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 atoutputChannelOffset
.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 sizelong
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 atposition
inpage
.boolean
isPositionNull(int blockIndex, int blockPosition)
Checks if any of the hashed columns is nullboolean
isSortChannelPositionNull(int blockIndex, int blockPosition)
Checks if sort channel is null at the specified positionboolean
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 atoutputChannelOffset
.
-
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 atposition
inpage
. 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, soleftPage
andrightPage
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, sorightPage
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, sorightPage
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
-
-