本文整理了Java中org.apache.calcite.rel.RelNode.explain
方法的一些代码示例,展示了RelNode.explain
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelNode.explain
方法的具体详情如下:
包路径:org.apache.calcite.rel.RelNode
类名称:RelNode
方法名:explain
[英]Describes the inputs and attributes of this relational expression. Each node should call super.explain, then call the org.apache.calcite.rel.externalize.RelWriterImpl#input(String,RelNode)and org.apache.calcite.rel.externalize.RelWriterImpl#item(String,Object)methods for each input and attribute.
[中]描述此关系表达式的输入和属性。每个节点都应该调用super。解释一下,然后打电话给组织。阿帕奇。方解石雷尔。外化RelWriterImpl#输入(字符串、RelNode)和组织。阿帕奇。方解石雷尔。外化每个输入和属性的RelWriterImpl#item(字符串、对象)方法。
代码示例来源:origin: dremio/dremio-oss
private void explainInputs(List<RelNode> inputs) {
for (RelNode input : inputs) {
input.explain(this);
}
}
代码示例来源:origin: dremio/dremio-oss
private void explainInputs(List<RelNode> inputs) {
for (RelNode input : inputs) {
input.explain(this);
}
}
代码示例来源:origin: Qihoo360/Quicksql
private void explainInputs(List<RelNode> inputs) {
for (RelNode input : inputs) {
input.explain(this);
}
}
代码示例来源:origin: org.apache.calcite/calcite-core
private void explainInputs(List<RelNode> inputs) {
for (RelNode input : inputs) {
input.explain(this);
}
}
代码示例来源:origin: Qihoo360/Quicksql
@Override public void explain(RelWriter pw) {
currentRel.explain(pw);
}
代码示例来源:origin: org.apache.calcite/calcite-core
@Override public void explain(RelWriter pw) {
currentRel.explain(pw);
}
代码示例来源:origin: Qihoo360/Quicksql
private List<Object> explainInputs(List<RelNode> inputs) {
final List<Object> list = jsonBuilder.list();
for (RelNode input : inputs) {
String id = relIdMap.get(input);
if (id == null) {
input.explain(this);
id = previousId;
}
list.add(id);
}
return list;
}
代码示例来源:origin: org.apache.calcite/calcite-core
private List<Object> explainInputs(List<RelNode> inputs) {
final List<Object> list = jsonBuilder.list();
for (RelNode input : inputs) {
String id = relIdMap.get(input);
if (id == null) {
input.explain(this);
id = previousId;
}
list.add(id);
}
return list;
}
代码示例来源:origin: Qihoo360/Quicksql
/**
* Converts a relational expression to a string.
*/
public static String toString(
final RelNode rel,
SqlExplainLevel detailLevel) {
if (rel == null) {
return null;
}
final StringWriter sw = new StringWriter();
final RelWriter planWriter =
new RelWriterImpl(
new PrintWriter(sw), detailLevel, false);
rel.explain(planWriter);
return sw.toString();
}
代码示例来源:origin: org.apache.calcite/calcite-core
/**
* Converts a relational expression to a string.
*/
public static String toString(
final RelNode rel,
SqlExplainLevel detailLevel) {
if (rel == null) {
return null;
}
final StringWriter sw = new StringWriter();
final RelWriter planWriter =
new RelWriterImpl(
new PrintWriter(sw), detailLevel, false);
rel.explain(planWriter);
return sw.toString();
}
代码示例来源:origin: org.apache.drill.exec/drill-java-exec
private void explainInputs(LateralJoinPrel lateralJoinPrel) {
lateralJoinPrel.getInput(0).explain(this);
this.register(lateralJoinPrel);
lateralJoinPrel.getInput(1).explain(this);
this.unRegister(lateralJoinPrel);
}
代码示例来源:origin: Qihoo360/Quicksql
case JSON:
planWriter = new RelJsonWriter();
rel.explain(planWriter);
return ((RelJsonWriter) planWriter).asString();
default:
planWriter = new RelWriterImpl(pw, detailLevel, false);
rel.explain(planWriter);
pw.flush();
return sw.toString();
代码示例来源:origin: org.apache.calcite/calcite-core
case JSON:
planWriter = new RelJsonWriter();
rel.explain(planWriter);
return ((RelJsonWriter) planWriter).asString();
default:
planWriter = new RelWriterImpl(pw, detailLevel, false);
rel.explain(planWriter);
pw.flush();
return sw.toString();
代码示例来源:origin: org.apache.drill.exec/drill-java-exec
private void explainInputs(RelNode rel) {
if (rel instanceof LateralJoinPrel) {
this.explainInputs((LateralJoinPrel) rel);
} else {
List<RelNode> inputs = rel.getInputs();
if (rel instanceof HashJoinPrel && ((HashJoinPrel) rel).isSwapped()) {
HashJoinPrel joinPrel = (HashJoinPrel) rel;
inputs = FlatLists.of(joinPrel.getRight(), joinPrel.getLeft());
}
for (RelNode input : inputs) {
input.explain(this);
}
}
}
代码示例来源:origin: org.apache.calcite/calcite-core
@Test public void testExplainAsXml() {
String sql = "select 1 + 2, 3 from (values (true))";
final RelNode rel = tester.convertSqlToRel(sql).rel;
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
RelXmlWriter planWriter =
new RelXmlWriter(pw, SqlExplainLevel.EXPPLAN_ATTRIBUTES);
rel.explain(planWriter);
pw.flush();
TestUtil.assertEqualsVerbose(
"<RelNode type=\"LogicalProject\">\n"
+ "\t<Property name=\"EXPR$0\">\n"
+ "\t\t+(1, 2)\t</Property>\n"
+ "\t<Property name=\"EXPR$1\">\n"
+ "\t\t3\t</Property>\n"
+ "\t<Inputs>\n"
+ "\t\t<RelNode type=\"LogicalValues\">\n"
+ "\t\t\t<Property name=\"tuples\">\n"
+ "\t\t\t\t[{ true }]\t\t\t</Property>\n"
+ "\t\t\t<Inputs/>\n"
+ "\t\t</RelNode>\n"
+ "\t</Inputs>\n"
+ "</RelNode>\n",
Util.toLinux(sw.toString()));
}
代码示例来源:origin: Qihoo360/Quicksql
@Test public void testExplainAsXml() {
String sql = "select 1 + 2, 3 from (values (true))";
final RelNode rel = tester.convertSqlToRel(sql).rel;
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
RelXmlWriter planWriter =
new RelXmlWriter(pw, SqlExplainLevel.EXPPLAN_ATTRIBUTES);
rel.explain(planWriter);
pw.flush();
TestUtil.assertEqualsVerbose(
"<RelNode type=\"LogicalProject\">\n"
+ "\t<Property name=\"EXPR$0\">\n"
+ "\t\t+(1, 2)\t</Property>\n"
+ "\t<Property name=\"EXPR$1\">\n"
+ "\t\t3\t</Property>\n"
+ "\t<Inputs>\n"
+ "\t\t<RelNode type=\"LogicalValues\">\n"
+ "\t\t\t<Property name=\"tuples\">\n"
+ "\t\t\t\t[{ true }]\t\t\t</Property>\n"
+ "\t\t\t<Inputs/>\n"
+ "\t\t</RelNode>\n"
+ "\t</Inputs>\n"
+ "</RelNode>\n",
Util.toLinux(sw.toString()));
}
代码示例来源:origin: org.apache.calcite/calcite-core
spacer.add(2);
for (RelNode input : rel.getInputs()) {
input.explain(this);
代码示例来源:origin: Qihoo360/Quicksql
spacer.add(2);
for (RelNode input : rel.getInputs()) {
input.explain(this);
代码示例来源:origin: Qihoo360/Quicksql
public static void foo(RelNode rel) {
// Convert rel tree to JSON.
final RelJsonWriter writer = new RelJsonWriter();
rel.explain(writer);
final String json = writer.asString();
// Find the schema. If there are no tables in the plan, we won't need one.
final RelOptSchema[] schemas = {null};
rel.accept(new RelShuttleImpl() {
@Override public RelNode visit(TableScan scan) {
schemas[0] = scan.getTable().getRelOptSchema();
return super.visit(scan);
}
});
// Convert JSON back to rel tree.
Frameworks.withPlanner((cluster, relOptSchema, rootSchema) -> {
final RelJsonReader reader = new RelJsonReader(
cluster,
schemas[0], rootSchema);
try {
RelNode x = reader.read(json);
} catch (IOException e) {
throw new RuntimeException(e);
}
return null;
});
}
}
代码示例来源:origin: org.apache.calcite/calcite-core
public static void foo(RelNode rel) {
// Convert rel tree to JSON.
final RelJsonWriter writer = new RelJsonWriter();
rel.explain(writer);
final String json = writer.asString();
// Find the schema. If there are no tables in the plan, we won't need one.
final RelOptSchema[] schemas = {null};
rel.accept(new RelShuttleImpl() {
@Override public RelNode visit(TableScan scan) {
schemas[0] = scan.getTable().getRelOptSchema();
return super.visit(scan);
}
});
// Convert JSON back to rel tree.
Frameworks.withPlanner((cluster, relOptSchema, rootSchema) -> {
final RelJsonReader reader = new RelJsonReader(
cluster,
schemas[0], rootSchema);
try {
RelNode x = reader.read(json);
} catch (IOException e) {
throw new RuntimeException(e);
}
return null;
});
}
}
内容来源于网络,如有侵权,请联系作者删除!