org.eigenbase.relopt
Class RelOptXmlPlanWriter

java.lang.Object
  extended by java.io.Writer
      extended by java.io.PrintWriter
          extended by org.eigenbase.relopt.RelOptPlanWriter
              extended by org.eigenbase.relopt.RelOptXmlPlanWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable

public class RelOptXmlPlanWriter
extends RelOptPlanWriter

Callback for a relational expression to dump in XML format.

"JUnit testcase:"

Field Summary
(package private)  boolean generic
           
private  org.eigenbase.xom.XMLOutput xmlOutput
           
 
Fields inherited from class org.eigenbase.relopt.RelOptPlanWriter
level
 
Fields inherited from class java.io.PrintWriter
out
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
RelOptXmlPlanWriter(PrintWriter pw, SqlExplainLevel detailLevel)
           
 
Method Summary
 void explain(RelNode rel, String[] terms, Object[] values)
          Prints the plan of a given relational expression to this writer.
private  void explainGeneric(RelNode rel, String[] terms, Object[] values)
          Generates generic XML (sometimes called 'element-oriented XML').
private  void explainSpecific(RelNode rel, String[] terms, Object[] values)
          Generates specific XML (sometimes called 'attribute-oriented XML').
 
Methods inherited from class org.eigenbase.relopt.RelOptPlanWriter
explain, explain, explainSubset, explainTree, getDetailLevel, setIdPrefix
 
Methods inherited from class java.io.PrintWriter
append, append, append, checkError, close, flush, format, format, print, print, print, print, print, print, print, print, print, printf, printf, println, println, println, println, println, println, println, println, println, println, setError, write, write, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

xmlOutput

private final org.eigenbase.xom.XMLOutput xmlOutput

generic

boolean generic
Constructor Detail

RelOptXmlPlanWriter

public RelOptXmlPlanWriter(PrintWriter pw,
                           SqlExplainLevel detailLevel)
Method Detail

explain

public void explain(RelNode rel,
                    String[] terms,
                    Object[] values)
Description copied from class: RelOptPlanWriter
Prints the plan of a given relational expression to this writer.

Overrides:
explain in class RelOptPlanWriter
Parameters:
rel - Relational expression
terms - Names of the attributes of the plan
values - Values of the attributes of the plan

explainGeneric

private void explainGeneric(RelNode rel,
                            String[] terms,
                            Object[] values)
Generates generic XML (sometimes called 'element-oriented XML'). Like this:
 <RelNode id="1" type="Join">
   <Property name="condition">EMP.DEPTNO = DEPT.DEPTNO</Property>
   <Inputs>
     <RelNode id="2" type="Project">
       <Property name="expr1">x + y</Property>
       <Property name="expr2">45</Property>
     </RelNode>
     <RelNode id="3" type="TableAccess">
       <Property name="table">SALES.EMP</Property>
     </RelNode>
   </Inputs>
 </RelNode>
 

Parameters:
rel -
terms -
values -

explainSpecific

private void explainSpecific(RelNode rel,
                             String[] terms,
                             Object[] values)
Generates specific XML (sometimes called 'attribute-oriented XML'). Like this:
 <Join condition="EMP.DEPTNO = DEPT.DEPTNO">
   <Project expr1="x + y" expr2="42">
   <TableAccess table="SALES.EMPS">
 </Join>
 

Parameters:
rel -
terms -
values -