本文整理汇总了Java中org.apache.tajo.engine.planner.logical.JoinNode.getJoinQual方法的典型用法代码示例。如果您正苦于以下问题:Java JoinNode.getJoinQual方法的具体用法?Java JoinNode.getJoinQual怎么用?Java JoinNode.getJoinQual使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.tajo.engine.planner.logical.JoinNode
的用法示例。
在下文中一共展示了JoinNode.getJoinQual方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: NLLeftOuterJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public NLLeftOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild) {
super(context, plan.getInSchema(), plan.getOutSchema(), leftChild, rightChild);
this.plan = plan;
if (plan.hasJoinQual()) {
this.joinQual = plan.getJoinQual();
}
// for projection
projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
needNextRightTuple = true;
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
foundAtLeastOneMatch = false;
rightNumCols = rightChild.getSchema().size();
}
示例2: NLJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public NLJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner) {
super(context, plan.getInSchema(), plan.getOutSchema(), outer, inner);
this.plan = plan;
if (plan.hasJoinQual()) {
this.joinQual = plan.getJoinQual();
}
// for projection
projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
needNewOuter = true;
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
}
示例3: MergeFullOuterJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public MergeFullOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild, SortSpec[] leftSortKey, SortSpec[] rightSortKey) {
super(context, plan.getInSchema(), plan.getOutSchema(), leftChild, rightChild);
Preconditions.checkArgument(plan.hasJoinQual(), "Sort-merge join is only used for the equi-join, " +
"but there is no join condition");
this.joinNode = plan;
this.joinQual = plan.getJoinQual();
this.leftTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
this.rightTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
SortSpec[][] sortSpecs = new SortSpec[2][];
sortSpecs[0] = leftSortKey;
sortSpecs[1] = rightSortKey;
this.joincomparator = new JoinTupleComparator(leftChild.getSchema(),
rightChild.getSchema(), sortSpecs);
this.tupleComparator = PlannerUtil.getComparatorsFromJoinQual(
plan.getJoinQual(), leftChild.getSchema(), rightChild.getSchema());
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftNumCols = leftChild.getSchema().size();
rightNumCols = rightChild.getSchema().size();
}
示例4: RightOuterMergeJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public RightOuterMergeJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner, SortSpec[] outerSortKey, SortSpec[] innerSortKey) {
super(context, plan.getInSchema(), plan.getOutSchema(), outer, inner);
Preconditions.checkArgument(plan.hasJoinQual(), "Sort-merge join is only used for the equi-join, " +
"but there is no join condition");
this.joinNode = plan;
this.joinQual = plan.getJoinQual();
this.leftTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
this.innerTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
SortSpec[][] sortSpecs = new SortSpec[2][];
sortSpecs[0] = outerSortKey;
sortSpecs[1] = innerSortKey;
this.joinComparator = new JoinTupleComparator(outer.getSchema(), inner.getSchema(), sortSpecs);
this.tupleComparator = PlannerUtil.getComparatorsFromJoinQual(
plan.getJoinQual(), outer.getSchema(), inner.getSchema());
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftNumCols = outer.getSchema().size();
}
示例5: HashJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public HashJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftExec,
PhysicalExec rightExec) {
super(context, SchemaUtil.merge(leftExec.getSchema(), rightExec.getSchema()), plan.getOutSchema(),
leftExec, rightExec);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual,
leftExec.getSchema(), rightExec.getSchema());
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftExec.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightExec.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
}
示例6: BNLJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public BNLJoinExec(final TaskAttemptContext context, final JoinNode plan,
final PhysicalExec leftExec, PhysicalExec rightExec) {
super(context, plan.getInSchema(), plan.getOutSchema(), leftExec, rightExec);
this.plan = plan;
this.joinQual = plan.getJoinQual();
if (joinQual != null) { // if join type is not 'cross join'
hasJoinQual = true;
} else {
hasJoinQual = false;
}
this.leftTupleSlots = new ArrayList<Tuple>(TUPLE_SLOT_SIZE);
this.rightTupleSlots = new ArrayList<Tuple>(TUPLE_SLOT_SIZE);
this.leftIterator = leftTupleSlots.iterator();
this.rightIterator = rightTupleSlots.iterator();
this.rightEnd = false;
this.leftEnd = false;
// for projection
if (!plan.hasTargets()) {
plan.setTargets(PlannerUtil.schemaToTargets(outSchema));
}
projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outputTuple = new VTuple(outSchema.size());
}
示例7: HashLeftOuterJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public HashLeftOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild) {
super(context, SchemaUtil.merge(leftChild.getSchema(), rightChild.getSchema()),
plan.getOutSchema(), leftChild, rightChild);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, leftChild.getSchema(), rightChild.getSchema());
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftChild.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightChild.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
rightNumCols = rightChild.getSchema().size();
}
示例8: MergeJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public MergeJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner, SortSpec[] outerSortKey, SortSpec[] innerSortKey) {
super(context, plan.getInSchema(), plan.getOutSchema(), outer, inner);
Preconditions.checkArgument(plan.hasJoinQual(), "Sort-merge join is only used for the equi-join, " +
"but there is no join condition");
this.joinNode = plan;
this.joinQual = plan.getJoinQual();
this.outerTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
this.innerTupleSlots = new ArrayList<Tuple>(INITIAL_TUPLE_SLOT);
SortSpec[][] sortSpecs = new SortSpec[2][];
sortSpecs[0] = outerSortKey;
sortSpecs[1] = innerSortKey;
this.joincomparator = new JoinTupleComparator(outer.getSchema(),
inner.getSchema(), sortSpecs);
this.tupleComparator = PlannerUtil.getComparatorsFromJoinQual(
plan.getJoinQual(), outer.getSchema(), inner.getSchema());
this.outerIterator = outerTupleSlots.iterator();
this.innerIterator = innerTupleSlots.iterator();
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
}
示例9: HashFullOuterJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public HashFullOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner) {
super(context, SchemaUtil.merge(outer.getSchema(), inner.getSchema()),
plan.getOutSchema(), outer, inner);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
// this hashmap mirrors the evolution of the tupleSlots, with the same keys. For each join key,
// we have a boolean flag, initially false (whether this join key had at least one match on the left operand)
this.matched = new HashMap<Tuple, Boolean>(10000);
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual,
outer.getSchema(), inner.getSchema());
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = outer.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = inner.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
leftNumCols = outer.getSchema().size();
rightNumCols = inner.getSchema().size();
}
示例10: HashJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public HashJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftExec,
PhysicalExec rightExec) {
super(context, SchemaUtil.merge(leftExec.getSchema(), rightExec.getSchema()), plan.getOutSchema(),
leftExec, rightExec);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(100000);
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, leftExec.getSchema(),
rightExec.getSchema(), false);
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftExec.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightExec.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
}
示例11: HashLeftOuterJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public HashLeftOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec leftChild,
PhysicalExec rightChild) {
super(context, SchemaUtil.merge(leftChild.getSchema(), rightChild.getSchema()),
plan.getOutSchema(), leftChild, rightChild);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, leftChild.getSchema(),
rightChild.getSchema(), false);
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = leftChild.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = rightChild.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
rightNumCols = rightChild.getSchema().size();
}
示例12: HashFullOuterJoinExec
import org.apache.tajo.engine.planner.logical.JoinNode; //导入方法依赖的package包/类
public HashFullOuterJoinExec(TaskAttemptContext context, JoinNode plan, PhysicalExec outer,
PhysicalExec inner) {
super(context, SchemaUtil.merge(outer.getSchema(), inner.getSchema()),
plan.getOutSchema(), outer, inner);
this.plan = plan;
this.joinQual = plan.getJoinQual();
this.tupleSlots = new HashMap<Tuple, List<Tuple>>(10000);
// this hashmap mirrors the evolution of the tupleSlots, with the same keys. For each join key,
// we have a boolean flag, initially false (whether this join key had at least one match on the left operand)
this.matched = new HashMap<Tuple, Boolean>(10000);
// HashJoin only can manage equi join key pairs.
this.joinKeyPairs = PlannerUtil.getJoinKeyPairs(joinQual, outer.getSchema(), inner.getSchema(),
false);
leftKeyList = new int[joinKeyPairs.size()];
rightKeyList = new int[joinKeyPairs.size()];
for (int i = 0; i < joinKeyPairs.size(); i++) {
leftKeyList[i] = outer.getSchema().getColumnId(joinKeyPairs.get(i)[0].getQualifiedName());
}
for (int i = 0; i < joinKeyPairs.size(); i++) {
rightKeyList[i] = inner.getSchema().getColumnId(joinKeyPairs.get(i)[1].getQualifiedName());
}
// for projection
this.projector = new Projector(inSchema, outSchema, plan.getTargets());
// for join
frameTuple = new FrameTuple();
outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
leftNumCols = outer.getSchema().size();
rightNumCols = inner.getSchema().size();
}