public class MergeJoinStrategy extends JoinStrategy
Modifier and Type | Class and Description |
---|---|
static class |
MergeJoinStrategy.SortOption |
Modifier and Type | Field and Description |
---|---|
protected MergeJoinStrategy.SortOption |
processingSortLeft |
protected MergeJoinStrategy.SortOption |
processingSortRight |
protected boolean |
singleMatch
false if default processing, true if only a single outer match is allowed
|
protected MergeJoinStrategy.SortOption |
sortLeft |
protected MergeJoinStrategy.SortOption |
sortRight |
joinNode, leftSource, reserved, rightSource
Constructor and Description |
---|
MergeJoinStrategy(MergeJoinStrategy.SortOption sortLeft,
MergeJoinStrategy.SortOption sortRight,
boolean grouping) |
Modifier and Type | Method and Description |
---|---|
MergeJoinStrategy |
clone() |
void |
close() |
protected int |
compare(List leftProbe,
List rightProbe,
int[] leftExpressionIndecies,
int[] rightExpressionIndecies) |
protected boolean |
compareToPrevious(org.teiid.query.processor.relational.SourceState target) |
static int |
compareTuples(List<?> leftProbe,
List<?> rightProbe,
int[] leftExpressionIndecies,
int[] rightExpressionIndecies,
boolean nullEquals,
boolean columnDiff)
0 if the values match
positive if right is greater than left
negative if left is greater than right
In column diff mode, return -1 if the they are the same
else return the index where they differ
|
String |
getName() |
void |
initialize(JoinNode joinNode) |
protected void |
loadLeft() |
protected void |
loadRight() |
protected void |
process() |
protected void |
resetMatchState() |
void |
setProcessingSortLeft(boolean processingSortLeft) |
void |
setProcessingSortRight(boolean processingSortRight) |
MergeJoinStrategy |
singleMatch(boolean b)
Optional flag for a left outer join to enforce the single
row restriction of a scalar subquery
|
String |
toString() |
openLeft, openRight, outputTuple
protected MergeJoinStrategy.SortOption sortLeft
protected MergeJoinStrategy.SortOption sortRight
protected boolean singleMatch
protected MergeJoinStrategy.SortOption processingSortLeft
protected MergeJoinStrategy.SortOption processingSortRight
public MergeJoinStrategy(MergeJoinStrategy.SortOption sortLeft, MergeJoinStrategy.SortOption sortRight, boolean grouping)
public MergeJoinStrategy clone()
clone
in class JoinStrategy
JoinStrategy.clone()
public void initialize(JoinNode joinNode)
initialize
in class JoinStrategy
JoinStrategy.initialize(org.teiid.query.processor.relational.JoinNode)
protected void resetMatchState()
public void close()
close
in class JoinStrategy
JoinStrategy.close()
protected void process() throws TeiidComponentException, TeiidProcessingException
process
in class JoinStrategy
TeiidComponentException
TeiidProcessingException
protected boolean compareToPrevious(org.teiid.query.processor.relational.SourceState target) throws TeiidComponentException, TeiidProcessingException
protected int compare(List leftProbe, List rightProbe, int[] leftExpressionIndecies, int[] rightExpressionIndecies)
public static int compareTuples(List<?> leftProbe, List<?> rightProbe, int[] leftExpressionIndecies, int[] rightExpressionIndecies, boolean nullEquals, boolean columnDiff)
leftProbe
- rightProbe
- leftExpressionIndecies
- rightExpressionIndecies
- nullEquals
- columnDiff
- protected void loadLeft() throws TeiidComponentException, TeiidProcessingException
loadLeft
in class JoinStrategy
TeiidComponentException
TeiidProcessingException
protected void loadRight() throws TeiidComponentException, TeiidProcessingException
loadRight
in class JoinStrategy
TeiidComponentException
TeiidProcessingException
public void setProcessingSortRight(boolean processingSortRight)
public void setProcessingSortLeft(boolean processingSortLeft)
public String getName()
public String toString()
toString
in class Object
Object.toString()
public MergeJoinStrategy singleMatch(boolean b)
Copyright © 2019. All rights reserved.