org.apache.calcite.rel.core.Join.getCluster()方法的使用及代码示例

x33g5p2x  于2022-01-22 转载在 其他  
字(7.8k)|赞(0)|评价(0)|浏览(120)

本文整理了Java中org.apache.calcite.rel.core.Join.getCluster()方法的一些代码示例,展示了Join.getCluster()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Join.getCluster()方法的具体详情如下:
包路径:org.apache.calcite.rel.core.Join
类名称:Join
方法名:getCluster

Join.getCluster介绍

暂无

代码示例

代码示例来源:origin: apache/hive

/**
 *
 * @param j
 * @param additionalPredicate
 * @return if predicate is the join condition return (true, joinCond)
 * else return (false, minusPred)
 */
private Pair<Boolean,RexNode> getCombinedPredicateForJoin(Join j, RexNode additionalPredicate) {
 RexNode minusPred = RelMdUtil.minusPreds(j.getCluster().getRexBuilder(), additionalPredicate,
   j.getCondition());
 if (minusPred != null) {
  List<RexNode> minusList = new ArrayList<RexNode>();
  minusList.add(j.getCondition());
  minusList.add(minusPred);
  return new Pair<Boolean,RexNode>(false, minusPred);
 }
 return new Pair<Boolean,RexNode>(true,j.getCondition());
}

代码示例来源:origin: apache/drill

/**
 *
 * @param j
 * @param additionalPredicate
 * @return if predicate is the join condition return (true, joinCond)
 * else return (false, minusPred)
 */
private Pair<Boolean,RexNode> getCombinedPredicateForJoin(Join j, RexNode additionalPredicate) {
 RexNode minusPred = RelMdUtil.minusPreds(j.getCluster().getRexBuilder(), additionalPredicate,
   j.getCondition());
 if (minusPred != null) {
  List<RexNode> minusList = new ArrayList<RexNode>();
  minusList.add(j.getCondition());
  minusList.add(minusPred);
  return new Pair<Boolean,RexNode>(false, minusPred);
 }
 return new Pair<Boolean,RexNode>(true,j.getCondition());
}

代码示例来源:origin: apache/hive

@Override
public Double getDistinctRowCount(Join rel, RelMetadataQuery mq, ImmutableBitSet groupKey,
  RexNode predicate) {
 if (rel instanceof HiveJoin) {
  HiveJoin hjRel = (HiveJoin) rel;
  //TODO: Improve this
  if (rel instanceof SemiJoin) {
   return mq.getDistinctRowCount(hjRel.getLeft(), groupKey,
     rel.getCluster().getRexBuilder().makeLiteral(true));
  } else {
   return RelMdUtil.getJoinDistinctRowCount(mq, rel, rel.getJoinType(),
     groupKey, predicate, true);
  }
 }
 return mq.getDistinctRowCount(rel, groupKey, predicate);
}

代码示例来源:origin: apache/hive

final RelNode newJoin = HiveJoin.getJoin(rel.getCluster(), leftFrame.r,
    rightFrame.r, decorrelateExpr(rel.getCondition()), rel.getJoinType());

代码示例来源:origin: apache/drill

@Override
public Double getDistinctRowCount(Join rel, RelMetadataQuery mq, ImmutableBitSet groupKey,
  RexNode predicate) {
 if (rel instanceof HiveJoin) {
  HiveJoin hjRel = (HiveJoin) rel;
  //TODO: Improve this
  if (rel instanceof SemiJoin) {
   return mq.getDistinctRowCount(hjRel.getLeft(), groupKey,
     rel.getCluster().getRexBuilder().makeLiteral(true));
  } else {
   return RelMdUtil.getJoinDistinctRowCount(mq, rel, rel.getJoinType(),
     groupKey, predicate, true);
  }
 }
 return mq.getDistinctRowCount(rel, groupKey, predicate);
}

代码示例来源:origin: apache/hive

RexBuilder rexBuilder = joinRel.getCluster().getRexBuilder();
List<RexNode> exprs =
  RelOptUtil.conjunctions(

代码示例来源:origin: apache/hive

/** Infers predicates for a {@link org.apache.calcite.rel.core.Join}. */
public RelOptPredicateList getPredicates(Join join, RelMetadataQuery mq) {
 RexBuilder rB = join.getCluster().getRexBuilder();
 RelNode left = join.getInput(0);
 RelNode right = join.getInput(1);
 final RelOptPredicateList leftInfo = mq.getPulledUpPredicates(left);
 final RelOptPredicateList rightInfo = mq.getPulledUpPredicates(right);
 JoinConditionBasedPredicateInference jI =
   new JoinConditionBasedPredicateInference(join,
     RexUtil.composeConjunction(rB, leftInfo.pulledUpPredicates, false),
     RexUtil.composeConjunction(rB, rightInfo.pulledUpPredicates,
       false));
 return jI.inferPredicates(false);
}

代码示例来源:origin: apache/hive

double ndvEstimate = 1;
if (noOfPE > 0) {
 boolean isCorrelatedColumns = j.getCluster().getPlanner().getContext().
   unwrap(HiveConfPlannerContext.class).getIsCorrelatedColumns();
 if (noOfPE > 1 && isCorrelatedColumns ){

代码示例来源:origin: apache/hive

Project project,
   int nullIndicatorPos) {
final RelDataTypeFactory typeFactory = join.getCluster().getTypeFactory();
final RelNode left = join.getLeft();
final JoinRelType joinType = join.getJoinType();

代码示例来源:origin: apache/drill

/** Infers predicates for a {@link org.apache.calcite.rel.core.Join}. */
public RelOptPredicateList getPredicates(Join join, RelMetadataQuery mq) {
 RexBuilder rB = join.getCluster().getRexBuilder();
 RelNode left = join.getInput(0);
 RelNode right = join.getInput(1);
 final RelOptPredicateList leftInfo = mq.getPulledUpPredicates(left);
 final RelOptPredicateList rightInfo = mq.getPulledUpPredicates(right);
 JoinConditionBasedPredicateInference jI =
   new JoinConditionBasedPredicateInference(join,
     RexUtil.composeConjunction(rB, leftInfo.pulledUpPredicates, false),
     RexUtil.composeConjunction(rB, rightInfo.pulledUpPredicates,
       false));
 return jI.inferPredicates(false);
}

代码示例来源:origin: apache/hive

@Override
 public void onMatch(RelOptRuleCall call) {
  final Join join = call.rel(0);
  final RexBuilder rexBuilder = join.getCluster().getRexBuilder();
  final RexNode condition = RexUtil.pullFactors(rexBuilder, join.getCondition());
  RexNode newCondition = analyzeRexNode(rexBuilder, condition);
  // If we could not transform anything, we bail out
  if (newCondition.toString().equals(condition.toString())) {
   return;
  }
  RelNode newNode = join.copy(join.getTraitSet(),
    newCondition,
    join.getLeft(),
    join.getRight(),
    join.getJoinType(),
    join.isSemiJoinDone());
  call.transformTo(newNode);
 }
}

代码示例来源:origin: apache/hive

@Override public void onMatch(RelOptRuleCall call) {
  final Join topJoin= call.rel(0);
  final Join join = call.rel(2);
  final Aggregate aggregate = call.rel(6);

  // in presence of grouping sets we can't remove sq_count_check
  if(aggregate.indicator) {
   return;
  }
  if(isAggregateWithoutGbyKeys(aggregate) || isAggWithConstantGbyKeys(aggregate, call)) {
   // join(left, join.getRight)
   RelNode newJoin = HiveJoin.getJoin(topJoin.getCluster(), join.getLeft(),  topJoin.getRight(),
     topJoin.getCondition(), topJoin.getJoinType());
   call.transformTo(newJoin);
  }
 }
}

代码示例来源:origin: apache/hive

final RelOptCluster cluster = join.getCluster();
final RexBuilder rexBuilder = join.getCluster().getRexBuilder();

代码示例来源:origin: apache/hive

RexBuilder rB = join.getCluster().getRexBuilder();
RelNode lChild = join.getLeft();
RelNode rChild = join.getRight();
List<RexNode> leftPreds = getValidPreds(join.getCluster(), lChild,
    leftPushedPredicates, preds.leftInferredPredicates, lChild.getRowType());
Set<String> rightPushedPredicates = Sets.newHashSet(registry.getPushedPredicates(join, 1));
List<RexNode> rightPreds = getValidPreds(join.getCluster(), rChild,
    rightPushedPredicates, preds.rightInferredPredicates, rChild.getRowType());

代码示例来源:origin: apache/hive

private Project swapInputs(Join join, Project topProject, RelBuilder builder) {
 RexBuilder rexBuilder = join.getCluster().getRexBuilder();

代码示例来源:origin: apache/drill

final RelOptCluster cluster = join.getCluster();
final RexBuilder rexBuilder = join.getCluster().getRexBuilder();

代码示例来源:origin: apache/hive

boolean isPKSideSimpleTree = simpleTree.left;
boolean isNoFilteringPKSideTree = simpleTree.right;
RexBuilder rexBuilder = join.getCluster().getRexBuilder();
RexNode leftPred = RexUtil.composeConjunction(
  rexBuilder, leftFilters, true);

代码示例来源:origin: apache/drill

RexBuilder rB = join.getCluster().getRexBuilder();
RelNode lChild = join.getLeft();
RelNode rChild = join.getRight();
List<RexNode> leftPreds = getValidPreds(join.getCluster(), lChild,
    leftPushedPredicates, preds.leftInferredPredicates, lChild.getRowType());
Set<String> rightPushedPredicates = Sets.newHashSet(registry.getPushedPredicates(join, 1));
List<RexNode> rightPreds = getValidPreds(join.getCluster(), rChild,
    rightPushedPredicates, preds.rightInferredPredicates, rChild.getRowType());

代码示例来源:origin: apache/hive

protected void perform(RelOptRuleCall call, ImmutableBitSet topRefs,
            RelNode topOperator, Join join, RelNode left, Aggregate aggregate) {
 LOG.debug("Matched HiveSemiJoinRule");
 final RelOptCluster cluster = join.getCluster();
 final RexBuilder rexBuilder = cluster.getRexBuilder();
 final ImmutableBitSet rightBits =

代码示例来源:origin: apache/drill

final MutableRel left = toMutable(join.getLeft());
final MutableRel right = toMutable(join.getRight());
return MutableJoin.of(join.getCluster(), left, right,
  join.getCondition(), join.getJoinType(), join.getVariablesSet());

相关文章