public abstract class CommonJoinOperator<T extends JoinDesc> extends Operator<T> implements java.io.Serializable
Operator.OperatorFunc, Operator.ProgressCounter, Operator.State
Modifier and Type | Field and Description |
---|---|
protected java.lang.Byte |
alias |
protected short[] |
aliasFilterTags
On filterTags
ANDed value of all filter tags in current join group
if any of values passes on outer join alias (which makes zero for the tag alias),
it means there exists a pair for it and safely regarded as a inner join
for example, with table a, b something like,
a = 100, 10 | 100, 20 | 100, 30
b = 100, 10 | 100, 20 | 100, 30
the query "a FO b ON a.k=b.k AND a.v>10 AND b.v>30" makes filter map
0(a) = [1(b),1] : a.v>10
1(b) = [0(a),1] : b.v>30
for filtered rows in a (100,10) create a-NULL
for filtered rows in b (100,10) (100,20) (100,30) create NULL-b
with 0(a) = [1(b),1] : a.v>10
100, 10 = 00000010 (filtered)
100, 20 = 00000000 (valid)
100, 30 = 00000000 (valid)
-------------------------
sum = 00000000 : for valid rows in b, there is at least one pair in a
with 1(b) = [0(a),1] : b.v>30
100, 10 = 00000001 (filtered)
100, 20 = 00000001 (filtered)
100, 30 = 00000001 (filtered)
-------------------------
sum = 00000001 : for valid rows in a (100,20) (100,30), there is no pair in b
result :
100, 10 : N, N
N, N : 100, 10
N, N : 100, 20
N, N : 100, 30
100, 20 : N, N
100, 30 : N, N
|
protected JoinCondDesc[] |
condn |
protected int |
countAfterReport |
protected java.util.ArrayList<java.lang.Object>[] |
dummyObj |
protected RowContainer<java.util.List<java.lang.Object>>[] |
dummyObjVectors |
protected int[][] |
filterMaps |
protected short[] |
filterTags |
protected java.lang.Object[] |
forwardCache |
protected int |
heartbeatInterval |
protected java.util.List[] |
intermediate |
protected java.util.List<ObjectInspector>[] |
joinFilterObjectInspectors
The ObjectInspectors for join filters.
|
protected java.util.List<ExprNodeEvaluator>[] |
joinFilters
The filters for join
|
protected java.util.List<ExprNodeEvaluator>[] |
joinValues
The expressions for join inputs.
|
protected java.util.List<ObjectInspector>[] |
joinValuesObjectInspectors
The ObjectInspectors for the join inputs.
|
protected java.util.List<ObjectInspector>[] |
joinValuesStandardObjectInspectors
The standard ObjectInspectors for the join inputs.
|
protected static org.apache.commons.logging.Log |
LOG |
boolean |
noOuterJoin |
protected static int |
NOTSKIPBIGTABLE |
protected boolean[] |
nullsafes |
protected int |
numAliases |
protected int[] |
offsets |
protected java.lang.Byte[] |
order |
protected java.util.List<ObjectInspector>[] |
rowContainerStandardObjectInspectors
The standard ObjectInspectors for the row container.
|
protected boolean[][] |
skipVectors |
protected TableDesc[] |
spillTableDesc |
protected int |
totalSz |
beginTime, childOperators, childOperatorsArray, childOperatorsTag, colExprMap, conf, counterNames, counterNameToEnum, counters, done, fatalErrorCntr, groupKeyObject, id, inputObjInspectors, inputRows, isLogInfoEnabled, numInputRowsCntr, numOutputRowsCntr, operatorId, out, outputObjInspector, outputRows, parentOperators, reporter, state, statsMap, timeTakenCntr, totalTime
Constructor and Description |
---|
CommonJoinOperator() |
CommonJoinOperator(CommonJoinOperator<T> clone) |
Modifier and Type | Method and Description |
---|---|
protected void |
checkAndGenObject() |
void |
closeOp(boolean abort)
All done.
|
void |
endGroup()
Forward a record of join results.
|
protected java.util.ArrayList<java.lang.Object> |
getFilteredValue(byte alias,
java.lang.Object row) |
protected short |
getFilterTag(java.util.List<java.lang.Object> row) |
protected static <T extends JoinDesc> |
getJoinOutputObjectInspector(java.lang.Byte[] order,
java.util.List<ObjectInspector>[] aliasToObjectInspectors,
T conf) |
java.lang.String |
getName()
Implements the getName function for the Node Interface.
|
protected long |
getNextSize(long sz) |
static java.lang.String |
getOperatorName() |
java.util.Map<java.lang.Integer,java.util.Set<java.lang.String>> |
getPosToAliasMap() |
protected boolean |
hasFilter(int alias) |
protected void |
initializeOp(Configuration hconf)
Operator specific initialization.
|
boolean |
opAllowedAfterMapJoin() |
boolean |
opAllowedBeforeMapJoin() |
protected void |
reportProgress() |
void |
setPosToAliasMap(java.util.Map<java.lang.Integer,java.util.Set<java.lang.String>> posToAliasMap) |
void |
startGroup() |
acceptLimitPushdown, allInitializedParentsAreClosed, areAllParentsInitialized, assignCounterNameToEnum, augmentPlan, checkFatalErrors, cleanUpInputFileChanged, cleanUpInputFileChangedOp, clone, close, columnNamesRowResolvedCanBeObtained, dump, dump, fatalErrorMessage, flush, forward, getAdditionalCounters, getChildOperators, getChildren, getColumnExprMap, getConf, getConfiguration, getCounterNames, getCounterNameToEnum, getCounters, getDone, getExecContext, getGroupKeyObject, getIdentifier, getInputObjInspectors, getNextCntr, getNumChild, getNumParent, getOperatorId, getParentOperators, getSchema, getStats, getType, getWrappedCounterName, incrCounter, initEvaluators, initEvaluators, initEvaluatorsAndReturnStruct, initialize, initialize, initializeChildren, initializeCounters, initializeLocalWork, initOperatorId, isUseBucketizedHiveInputFormat, jobClose, jobCloseOp, logStats, opAllowedBeforeSortMergeJoin, opAllowedConvertMapJoin, passExecContext, preorderMap, process, processGroup, processOp, removeChild, removeChildAndAdoptItsChildren, removeChildren, removeParent, replaceChild, replaceParent, reset, resetId, resetLastEnumUsed, resetStats, setAlias, setChildOperators, setColumnExprMap, setConf, setCounterNames, setCounterNameToEnum, setDone, setExecContext, setGroupKeyObject, setId, setInputObjInspectors, setOperatorId, setOutputCollector, setParentOperators, setReporter, setSchema, setUseBucketizedHiveInputFormat, supportAutomaticSortMergeJoin, supportSkewJoinOptimization, supportUnionRemoveOptimization, toString, toString, updateCounters
protected static final org.apache.commons.logging.Log LOG
protected transient int numAliases
protected transient java.util.List<ExprNodeEvaluator>[] joinValues
protected transient java.util.List<ExprNodeEvaluator>[] joinFilters
protected transient int[][] filterMaps
protected transient java.util.List<ObjectInspector>[] joinValuesObjectInspectors
protected transient java.util.List<ObjectInspector>[] joinFilterObjectInspectors
protected transient java.util.List<ObjectInspector>[] joinValuesStandardObjectInspectors
protected transient java.util.List<ObjectInspector>[] rowContainerStandardObjectInspectors
protected transient java.lang.Byte[] order
protected transient JoinCondDesc[] condn
protected transient boolean[] nullsafes
public transient boolean noOuterJoin
protected transient java.util.ArrayList<java.lang.Object>[] dummyObj
protected transient RowContainer<java.util.List<java.lang.Object>>[] dummyObjVectors
protected transient int totalSz
protected transient TableDesc[] spillTableDesc
protected transient int countAfterReport
protected transient int heartbeatInterval
protected static final int NOTSKIPBIGTABLE
protected transient java.lang.Byte alias
protected transient java.lang.Object[] forwardCache
protected transient int[] offsets
protected transient boolean[][] skipVectors
protected transient java.util.List[] intermediate
protected transient short[] filterTags
protected transient short[] aliasFilterTags
public CommonJoinOperator()
public CommonJoinOperator(CommonJoinOperator<T> clone)
protected static <T extends JoinDesc> ObjectInspector getJoinOutputObjectInspector(java.lang.Byte[] order, java.util.List<ObjectInspector>[] aliasToObjectInspectors, T conf)
protected void initializeOp(Configuration hconf) throws HiveException
Operator
initializeOp
in class Operator<T extends JoinDesc>
HiveException
public void startGroup() throws HiveException
startGroup
in class Operator<T extends JoinDesc>
HiveException
protected long getNextSize(long sz)
protected java.util.ArrayList<java.lang.Object> getFilteredValue(byte alias, java.lang.Object row) throws HiveException
HiveException
protected final boolean hasFilter(int alias)
protected final short getFilterTag(java.util.List<java.lang.Object> row)
public void endGroup() throws HiveException
endGroup
in class Operator<T extends JoinDesc>
HiveException
protected void checkAndGenObject() throws HiveException
HiveException
protected void reportProgress()
public void closeOp(boolean abort) throws HiveException
closeOp
in class Operator<T extends JoinDesc>
HiveException
public java.lang.String getName()
Operator
public static java.lang.String getOperatorName()
public java.util.Map<java.lang.Integer,java.util.Set<java.lang.String>> getPosToAliasMap()
public void setPosToAliasMap(java.util.Map<java.lang.Integer,java.util.Set<java.lang.String>> posToAliasMap)
posToAliasMap
- the posToAliasMap to setpublic boolean opAllowedBeforeMapJoin()
opAllowedBeforeMapJoin
in class Operator<T extends JoinDesc>
public boolean opAllowedAfterMapJoin()
opAllowedAfterMapJoin
in class Operator<T extends JoinDesc>
Copyright © 2012 The Apache Software Foundation