org.apache.hadoop.hive.ql.parse
Class QBJoinTree

java.lang.Object
  extended by org.apache.hadoop.hive.ql.parse.QBJoinTree
All Implemented Interfaces:
Serializable

public class QBJoinTree
extends Object
implements Serializable

Internal representation of the join tree.

See Also:
Serialized Form

Constructor Summary
QBJoinTree()
          constructor.
 
Method Summary
 void addFilterMapping(int outer, int target, int length)
           
 void addPostJoinFilter(ASTNode filter)
           
 void addRHSSemijoin(String alias)
          Insert only a key to the semijoin table name to column names map.
 void addRHSSemijoinColumns(String alias, ArrayList<ASTNode> columns)
          Remeber the mapping of table alias to set of columns.
 void addRHSSemijoinColumns(String alias, ASTNode column)
          Remeber the mapping of table alias to set of columns.
 Map<String,Operator<? extends OperatorDesc>> getAliasToOpInfo()
           
 String[] getBaseSrc()
           
 ArrayList<ArrayList<ASTNode>> getExpressions()
           
 int[][] getFilterMap()
           
 ArrayList<ArrayList<ASTNode>> getFilters()
           
 ArrayList<ArrayList<ASTNode>> getFiltersForPushing()
           
 String getId()
           
 JoinCond[] getJoinCond()
           
 QBJoinTree getJoinSrc()
           
 String getLeftAlias()
          returns left alias if any - this is used for merging later on.
 String[] getLeftAliases()
           
 List<String> getMapAliases()
           
 int getNextTag()
           
 boolean getNoOuterJoin()
           
 boolean getNoSemiJoin()
           
 ArrayList<Boolean> getNullSafes()
           
 List<ASTNode> getPostJoinFilters()
           
 ArrayList<ASTNode> getRHSSemijoinColumns(String alias)
           
 String[] getRightAliases()
           
 List<String> getStreamAliases()
           
 boolean isMapSideJoin()
           
 void mergeRHSSemijoin(QBJoinTree src)
          Merge the rhs tables from another join tree.
 void setAliasToOpInfo(Map<String,Operator<? extends OperatorDesc>> aliasToOpInfo)
           
 void setBaseSrc(String[] baseSrc)
           
 void setExpressions(ArrayList<ArrayList<ASTNode>> expressions)
           
 void setFilterMap(int[][] filterMap)
           
 void setFilters(ArrayList<ArrayList<ASTNode>> filters)
           
 void setFiltersForPushing(ArrayList<ArrayList<ASTNode>> filters)
           
 void setId(String id)
           
 void setJoinCond(JoinCond[] joinCond)
           
 void setJoinSrc(QBJoinTree joinSrc)
           
 void setLeftAlias(String leftAlias)
          set left alias for the join expression.
 void setLeftAliases(String[] leftAliases)
           
 void setMapAliases(List<String> mapAliases)
           
 void setMapSideJoin(boolean mapSideJoin)
           
 void setNoOuterJoin(boolean noOuterJoin)
           
 void setNoSemiJoin(boolean semi)
           
 void setNullSafes(ArrayList<Boolean> nullSafes)
           
 void setRightAliases(String[] rightAliases)
           
 void setStreamAliases(List<String> streamAliases)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QBJoinTree

public QBJoinTree()
constructor.

Method Detail

getLeftAlias

public String getLeftAlias()
returns left alias if any - this is used for merging later on.

Returns:
left alias if any

setLeftAlias

public void setLeftAlias(String leftAlias)
set left alias for the join expression.

Parameters:
leftAlias - String

getRightAliases

public String[] getRightAliases()

setRightAliases

public void setRightAliases(String[] rightAliases)

getLeftAliases

public String[] getLeftAliases()

setLeftAliases

public void setLeftAliases(String[] leftAliases)

getExpressions

public ArrayList<ArrayList<ASTNode>> getExpressions()

setExpressions

public void setExpressions(ArrayList<ArrayList<ASTNode>> expressions)

getBaseSrc

public String[] getBaseSrc()

setBaseSrc

public void setBaseSrc(String[] baseSrc)

getJoinSrc

public QBJoinTree getJoinSrc()

setJoinSrc

public void setJoinSrc(QBJoinTree joinSrc)

getNextTag

public int getNextTag()

getJoinCond

public JoinCond[] getJoinCond()

setJoinCond

public void setJoinCond(JoinCond[] joinCond)

getNoOuterJoin

public boolean getNoOuterJoin()

setNoOuterJoin

public void setNoOuterJoin(boolean noOuterJoin)

getNoSemiJoin

public boolean getNoSemiJoin()

setNoSemiJoin

public void setNoSemiJoin(boolean semi)

getFilters

public ArrayList<ArrayList<ASTNode>> getFilters()
Returns:
the filters

setFilters

public void setFilters(ArrayList<ArrayList<ASTNode>> filters)
Parameters:
filters - the filters to set

getFiltersForPushing

public ArrayList<ArrayList<ASTNode>> getFiltersForPushing()
Returns:
the filters for pushing

setFiltersForPushing

public void setFiltersForPushing(ArrayList<ArrayList<ASTNode>> filters)
Parameters:
filters - for pushing the filters to set

isMapSideJoin

public boolean isMapSideJoin()
Returns:
the mapSidejoin

setMapSideJoin

public void setMapSideJoin(boolean mapSideJoin)
Parameters:
mapSideJoin - the mapSidejoin to set

getMapAliases

public List<String> getMapAliases()
Returns:
the mapAliases

setMapAliases

public void setMapAliases(List<String> mapAliases)
Parameters:
mapAliases - the mapAliases to set

getStreamAliases

public List<String> getStreamAliases()

setStreamAliases

public void setStreamAliases(List<String> streamAliases)

addRHSSemijoin

public void addRHSSemijoin(String alias)
Insert only a key to the semijoin table name to column names map.

Parameters:
alias - table name alias.

addRHSSemijoinColumns

public void addRHSSemijoinColumns(String alias,
                                  ArrayList<ASTNode> columns)
Remeber the mapping of table alias to set of columns.

Parameters:
alias -
columns -

addRHSSemijoinColumns

public void addRHSSemijoinColumns(String alias,
                                  ASTNode column)
Remeber the mapping of table alias to set of columns.

Parameters:
alias -
column -

getRHSSemijoinColumns

public ArrayList<ASTNode> getRHSSemijoinColumns(String alias)

mergeRHSSemijoin

public void mergeRHSSemijoin(QBJoinTree src)
Merge the rhs tables from another join tree.

Parameters:
src - the source join tree

getNullSafes

public ArrayList<Boolean> getNullSafes()

setNullSafes

public void setNullSafes(ArrayList<Boolean> nullSafes)

addFilterMapping

public void addFilterMapping(int outer,
                             int target,
                             int length)

getFilterMap

public int[][] getFilterMap()

setFilterMap

public void setFilterMap(int[][] filterMap)

getAliasToOpInfo

public Map<String,Operator<? extends OperatorDesc>> getAliasToOpInfo()

setAliasToOpInfo

public void setAliasToOpInfo(Map<String,Operator<? extends OperatorDesc>> aliasToOpInfo)

getId

public String getId()

setId

public void setId(String id)

addPostJoinFilter

public void addPostJoinFilter(ASTNode filter)

getPostJoinFilters

public List<ASTNode> getPostJoinFilters()


Copyright © 2014 The Apache Software Foundation. All rights reserved.