org.apache.calcite.plan.RelOptUtil.replaceRecurse()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.2k)|赞(0)|评价(0)|浏览(81)

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

RelOptUtil.replaceRecurse介绍

[英]Helper for #replace.
[中]#替换的助手。

代码示例

代码示例来源:origin: Qihoo360/Quicksql

/** Within a relational expression {@code query}, replaces occurrences of
 * {@code find} with {@code replace}. */
public static RelNode replace(RelNode query, RelNode find, RelNode replace) {
 if (find == replace) {
  // Short-cut common case.
  return query;
 }
 assert equalType("find", find, "replace", replace, Litmus.THROW);
 if (query == find) {
  // Short-cut another common case.
  return replace;
 }
 return replaceRecurse(query, find, replace);
}

代码示例来源:origin: org.apache.calcite/calcite-core

/** Within a relational expression {@code query}, replaces occurrences of
 * {@code find} with {@code replace}. */
public static RelNode replace(RelNode query, RelNode find, RelNode replace) {
 if (find == replace) {
  // Short-cut common case.
  return query;
 }
 assert equalType("find", find, "replace", replace, Litmus.THROW);
 if (query == find) {
  // Short-cut another common case.
  return replace;
 }
 return replaceRecurse(query, find, replace);
}

代码示例来源:origin: Qihoo360/Quicksql

/** Helper for {@link #replace}. */
private static RelNode replaceRecurse(
  RelNode query, RelNode find, RelNode replace) {
 if (query == find) {
  return replace;
 }
 final List<RelNode> inputs = query.getInputs();
 if (!inputs.isEmpty()) {
  final List<RelNode> newInputs = new ArrayList<>();
  for (RelNode input : inputs) {
   newInputs.add(replaceRecurse(input, find, replace));
  }
  if (!newInputs.equals(inputs)) {
   return query.copy(query.getTraitSet(), newInputs);
  }
 }
 return query;
}

代码示例来源:origin: org.apache.calcite/calcite-core

/** Helper for {@link #replace}. */
private static RelNode replaceRecurse(
  RelNode query, RelNode find, RelNode replace) {
 if (query == find) {
  return replace;
 }
 final List<RelNode> inputs = query.getInputs();
 if (!inputs.isEmpty()) {
  final List<RelNode> newInputs = new ArrayList<>();
  for (RelNode input : inputs) {
   newInputs.add(replaceRecurse(input, find, replace));
  }
  if (!newInputs.equals(inputs)) {
   return query.copy(query.getTraitSet(), newInputs);
  }
 }
 return query;
}

相关文章

微信公众号

最新文章

更多

RelOptUtil类方法