本文整理了Java中org.apache.calcite.plan.RelOptUtil.replaceRecurse
方法的一些代码示例,展示了RelOptUtil.replaceRecurse
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelOptUtil.replaceRecurse
方法的具体详情如下:
包路径:org.apache.calcite.plan.RelOptUtil
类名称: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;
}
内容来源于网络,如有侵权,请联系作者删除!