org.apache.hadoop.hive.ql.optimizer.optiq
Class JoinUtil.JoinLeafPredicateInfo

java.lang.Object
  extended by org.apache.hadoop.hive.ql.optimizer.optiq.JoinUtil.JoinLeafPredicateInfo
Enclosing class:
JoinUtil

public static class JoinUtil.JoinLeafPredicateInfo
extends Object

JoinLeafPredicateInfo represents leaf predicate in Join condition (conjuctive lement).

JoinLeafPredicateInfo:
1. Stores list of expressions from left and right child which is part of equi join keys.
2. Stores set of projection indexes from left and right child which is part of equi join keys; the indexes are both in child and Join node schema.


Constructor Summary
JoinUtil.JoinLeafPredicateInfo(org.eigenbase.sql.SqlKind comparisonType, List<org.eigenbase.rex.RexNode> joinKeyExprsFromLeft, List<org.eigenbase.rex.RexNode> joinKeyExprsFromRight, Set<Integer> projsFromLeftPartOfJoinKeysInChildSchema, Set<Integer> projsFromRightPartOfJoinKeysInChildSchema, Set<Integer> projsFromRightPartOfJoinKeysInJoinSchema)
           
 
Method Summary
static JoinUtil.JoinLeafPredicateInfo constructJoinLeafPredicateInfo(HiveJoinRel j, org.eigenbase.rex.RexNode pe)
           
 List<org.eigenbase.rex.RexNode> getJoinKeyExprsFromLeft()
           
 List<org.eigenbase.rex.RexNode> getJoinKeyExprsFromRight()
           
 Set<Integer> getProjsFromLeftPartOfJoinKeysInChildSchema()
           
 Set<Integer> getProjsFromLeftPartOfJoinKeysInJoinSchema()
          NOTE: Join Schema = left Schema + (right Schema offset by left.fieldcount).
 Set<Integer> getProjsFromRightPartOfJoinKeysInChildSchema()
           
 Set<Integer> getProjsFromRightPartOfJoinKeysInJoinSchema()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JoinUtil.JoinLeafPredicateInfo

public JoinUtil.JoinLeafPredicateInfo(org.eigenbase.sql.SqlKind comparisonType,
                                      List<org.eigenbase.rex.RexNode> joinKeyExprsFromLeft,
                                      List<org.eigenbase.rex.RexNode> joinKeyExprsFromRight,
                                      Set<Integer> projsFromLeftPartOfJoinKeysInChildSchema,
                                      Set<Integer> projsFromRightPartOfJoinKeysInChildSchema,
                                      Set<Integer> projsFromRightPartOfJoinKeysInJoinSchema)
Method Detail

getJoinKeyExprsFromLeft

public List<org.eigenbase.rex.RexNode> getJoinKeyExprsFromLeft()

getJoinKeyExprsFromRight

public List<org.eigenbase.rex.RexNode> getJoinKeyExprsFromRight()

getProjsFromLeftPartOfJoinKeysInChildSchema

public Set<Integer> getProjsFromLeftPartOfJoinKeysInChildSchema()

getProjsFromLeftPartOfJoinKeysInJoinSchema

public Set<Integer> getProjsFromLeftPartOfJoinKeysInJoinSchema()
NOTE: Join Schema = left Schema + (right Schema offset by left.fieldcount). Hence its ok to return projections from left in child schema.


getProjsFromRightPartOfJoinKeysInChildSchema

public Set<Integer> getProjsFromRightPartOfJoinKeysInChildSchema()

getProjsFromRightPartOfJoinKeysInJoinSchema

public Set<Integer> getProjsFromRightPartOfJoinKeysInJoinSchema()

constructJoinLeafPredicateInfo

public static JoinUtil.JoinLeafPredicateInfo constructJoinLeafPredicateInfo(HiveJoinRel j,
                                                                            org.eigenbase.rex.RexNode pe)


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