org.teiid.query.processor.relational
Class PartitionedSortJoin

java.lang.Object
  extended by org.teiid.query.processor.relational.JoinStrategy
      extended by org.teiid.query.processor.relational.MergeJoinStrategy
          extended by org.teiid.query.processor.relational.PartitionedSortJoin

public class PartitionedSortJoin
extends MergeJoinStrategy

Extends the basic fully sorted merge join to check for conditions necessary to not fully sort one of the sides Will be used for inner joins and only if both sorts are not required. Degrades to a normal merge join if the tuples are balanced.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.teiid.query.processor.relational.MergeJoinStrategy
MergeJoinStrategy.SortOption
 
Field Summary
 
Fields inherited from class org.teiid.query.processor.relational.MergeJoinStrategy
processingSortLeft, processingSortRight, sortLeft, sortRight
 
Fields inherited from class org.teiid.query.processor.relational.JoinStrategy
joinNode, leftSource, rightSource
 
Constructor Summary
PartitionedSortJoin(MergeJoinStrategy.SortOption sortLeft, MergeJoinStrategy.SortOption sortRight)
           
 
Method Summary
 int binarySearch(java.util.List<?> tuple, java.util.List[] tuples, int[] leftIndexes, int[] rightIndexes)
           
 PartitionedSortJoin clone()
           
 void close()
           
 void computeBatchBounds(org.teiid.query.processor.relational.SourceState state)
           
 java.lang.String getName()
           
 void initialize(JoinNode joinNode)
           
protected  void loadLeft()
           
protected  void loadRight()
           
protected  void process()
           
 
Methods inherited from class org.teiid.query.processor.relational.MergeJoinStrategy
compare, compareToPrevious, setProcessingSortRight, toString
 
Methods inherited from class org.teiid.query.processor.relational.JoinStrategy
openLeft, openRight, outputTuple
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PartitionedSortJoin

public PartitionedSortJoin(MergeJoinStrategy.SortOption sortLeft,
                           MergeJoinStrategy.SortOption sortRight)
Method Detail

close

public void close()
Overrides:
close in class MergeJoinStrategy
See Also:
JoinStrategy.close()

initialize

public void initialize(JoinNode joinNode)
Overrides:
initialize in class MergeJoinStrategy
See Also:
JoinStrategy.initialize(org.teiid.query.processor.relational.JoinNode)

computeBatchBounds

public void computeBatchBounds(org.teiid.query.processor.relational.SourceState state)
                        throws TeiidComponentException,
                               TeiidProcessingException
Throws:
TeiidComponentException
TeiidProcessingException

loadLeft

protected void loadLeft()
                 throws TeiidComponentException,
                        TeiidProcessingException
Overrides:
loadLeft in class MergeJoinStrategy
Throws:
TeiidComponentException
TeiidProcessingException

loadRight

protected void loadRight()
                  throws TeiidComponentException,
                         TeiidProcessingException
Overrides:
loadRight in class MergeJoinStrategy
Throws:
TeiidComponentException
TeiidProcessingException

process

protected void process()
                throws TeiidComponentException,
                       TeiidProcessingException
Overrides:
process in class MergeJoinStrategy
Throws:
TeiidComponentException
TeiidProcessingException

binarySearch

public int binarySearch(java.util.List<?> tuple,
                        java.util.List[] tuples,
                        int[] leftIndexes,
                        int[] rightIndexes)

clone

public PartitionedSortJoin clone()
Overrides:
clone in class MergeJoinStrategy
See Also:
JoinStrategy.clone()

getName

public java.lang.String getName()
Overrides:
getName in class MergeJoinStrategy


Copyright © 2010. All Rights Reserved.