public class SimplePagesHashStrategy extends Object implements PagesHashStrategy
Constructor and Description |
---|
SimplePagesHashStrategy(List<Type> types,
List<Integer> outputChannels,
List<List<Block>> channels,
List<Integer> hashChannels,
OptionalInt precomputedHashChannel,
Optional<Integer> sortChannel,
FunctionRegistry functionRegistry,
boolean groupByUsesEqualTo) |
Modifier and Type | Method and 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 |
positionEqualsRow(int leftBlockIndex,
int leftPosition,
int rightPosition,
Page page,
int[] rightHashChannels)
Compares the hashed columns in this PagesHashStrategy to the hashed columns in the 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.
|
public int getChannelCount()
PagesHashStrategy
getChannelCount
in interface PagesHashStrategy
public long getSizeInBytes()
PagesHashStrategy
getSizeInBytes
in interface PagesHashStrategy
public void appendTo(int blockIndex, int position, PageBuilder pageBuilder, int outputChannelOffset)
PagesHashStrategy
outputChannelOffset
.appendTo
in interface PagesHashStrategy
public long hashPosition(int blockIndex, int position)
PagesHashStrategy
hashPosition
in interface PagesHashStrategy
public long hashRow(int position, Page page)
PagesHashStrategy
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.hashRow
in interface PagesHashStrategy
public boolean rowEqualsRow(int leftPosition, Page leftPage, int rightPosition, Page rightPage)
PagesHashStrategy
leftPage
and rightPage
must have the same number of entries as the hashed columns and each entry
is expected to be the same type.rowEqualsRow
in interface PagesHashStrategy
public boolean positionEqualsRow(int leftBlockIndex, int leftPosition, int rightPosition, Page rightPage)
PagesHashStrategy
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.positionEqualsRow
in interface PagesHashStrategy
public boolean positionEqualsRowIgnoreNulls(int leftBlockIndex, int leftPosition, int rightPosition, Page rightPage)
PagesHashStrategy
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.
positionEqualsRowIgnoreNulls
in interface PagesHashStrategy
public boolean positionEqualsRow(int leftBlockIndex, int leftPosition, int rightPosition, Page page, int[] rightHashChannels)
PagesHashStrategy
rightChannels
must have the same number of entries as
the hashed columns and each entry is expected to be the same type.positionEqualsRow
in interface PagesHashStrategy
public boolean positionNotDistinctFromRow(int leftBlockIndex, int leftPosition, int rightPosition, Page page, int[] rightChannels)
PagesHashStrategy
rightChannels
must have the same number of entries as the hashed columns
and each entry is expected to be the same type.positionNotDistinctFromRow
in interface PagesHashStrategy
public boolean positionEqualsPosition(int leftBlockIndex, int leftPosition, int rightBlockIndex, int rightPosition)
PagesHashStrategy
positionEqualsPosition
in interface PagesHashStrategy
public boolean positionEqualsPositionIgnoreNulls(int leftBlockIndex, int leftPosition, int rightBlockIndex, int rightPosition)
PagesHashStrategy
This method does not perform any null checks.
positionEqualsPositionIgnoreNulls
in interface PagesHashStrategy
public boolean isPositionNull(int blockIndex, int blockPosition)
PagesHashStrategy
isPositionNull
in interface PagesHashStrategy
public int compareSortChannelPositions(int leftBlockIndex, int leftBlockPosition, int rightBlockIndex, int rightBlockPosition)
PagesHashStrategy
compareSortChannelPositions
in interface PagesHashStrategy
public boolean isSortChannelPositionNull(int blockIndex, int blockPosition)
PagesHashStrategy
isSortChannelPositionNull
in interface PagesHashStrategy
Copyright © 2012–2019. All rights reserved.