當前位置: 首頁>>代碼示例>>Java>>正文


Java JoinNode.getJoinQual方法代碼示例

本文整理匯總了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();
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:21,代碼來源:NLLeftOuterJoinExec.java

示例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());
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:18,代碼來源:NLJoinExec.java

示例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();
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:30,代碼來源:MergeFullOuterJoinExec.java

示例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();
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:28,代碼來源:RightOuterMergeJoinExec.java

示例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);
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:31,代碼來源:HashJoinExec.java

示例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());
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:29,代碼來源:BNLJoinExec.java

示例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();
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:32,代碼來源:HashLeftOuterJoinExec.java

示例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());
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:29,代碼來源:MergeJoinExec.java

示例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();
}
 
開發者ID:apache,項目名稱:incubator-tajo,代碼行數:38,代碼來源:HashFullOuterJoinExec.java

示例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);
}
 
開發者ID:gruter,項目名稱:tajo-cdh,代碼行數:32,代碼來源:HashJoinExec.java

示例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();
}
 
開發者ID:gruter,項目名稱:tajo-cdh,代碼行數:34,代碼來源:HashLeftOuterJoinExec.java

示例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();
}
 
開發者ID:gruter,項目名稱:tajo-cdh,代碼行數:39,代碼來源:HashFullOuterJoinExec.java


注:本文中的org.apache.tajo.engine.planner.logical.JoinNode.getJoinQual方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。