Package org.apache.calcite.rel
Interface RelWriter
- All Known Implementing Classes:
RelDotWriter
,RelJsonWriter
,RelWriterImpl
,RelXmlWriter
public interface RelWriter
Callback for an expression to dump itself to.
It is used for generating EXPLAIN PLAN output, and also for serializing a tree of relational expressions to JSON.
-
Method Summary
Modifier and TypeMethodDescriptionWrites the completed explanation.void
Prints an explanation of a node, with a list of (term, value) pairs.Returns detail level at which plan should be generated.default RelWriter
Adds an input to the explanation of the current node.Adds an attribute to the explanation of the current node.default RelWriter
Adds an input to the explanation of the current node, if a condition holds.default boolean
nest()
Returns whether the writer prefers nested values.
-
Method Details
-
explain
Prints an explanation of a node, with a list of (term, value) pairs.The term-value pairs are generally gathered by calling
RelNode.explain(RelWriter)
. Each sub-class ofRelNode
callsinput(String, org.apache.calcite.rel.RelNode)
anditem(String, Object)
to declare term-value pairs.- Parameters:
rel
- Relational expressionvalueList
- List of term-value pairs
-
getDetailLevel
SqlExplainLevel getDetailLevel()Returns detail level at which plan should be generated. -
input
Adds an input to the explanation of the current node.- Parameters:
term
- Term for input, e.g. "left" or "input #1".input
- Input relational expression
-
item
Adds an attribute to the explanation of the current node.- Parameters:
term
- Term for attribute, e.g. "joinType"value
- Attribute value
-
itemIf
Adds an input to the explanation of the current node, if a condition holds. -
done
Writes the completed explanation. -
nest
default boolean nest()Returns whether the writer prefers nested values. Traditional explain writers prefer flattened values.
-