org.eigenbase.relopt
Interface RelImplementor

All Known Subinterfaces:
FennelRelImplementor
All Known Implementing Classes:
FarragoRelImplementor, JavaRelImplementor

public interface RelImplementor

Callback used to hold state while converting a tree of relational expressions into a plan. Calling conventions typically have their own protocol for walking over a tree, and correspondingly have their own implementors, which are subclasses of RelImplementor.

Version:
$Id: //open/dev/farrago/src/org/eigenbase/relopt/RelImplementor.java#12 $

Method Summary
 Object visitChild(RelNode parent, int ordinal, RelNode child)
          Implements a relational expression according to a calling convention.
 Object visitChildInternal(RelNode child)
          Called from visitChild(org.eigenbase.rel.RelNode, int, org.eigenbase.rel.RelNode) after the frame has been set up.
 Object visitChildInternal(RelNode child, int ordinal)
          Called from visitChild(org.eigenbase.rel.RelNode, int, org.eigenbase.rel.RelNode) after the frame has been set up.
 

Method Detail

visitChild

Object visitChild(RelNode parent,
                  int ordinal,
                  RelNode child)
Implements a relational expression according to a calling convention.

Parameters:
parent - Parent relational expression
ordinal - Ordinal of child within its parent
child - Child relational expression
Returns:
Interpretation of the return value is left to the implementor

visitChildInternal

Object visitChildInternal(RelNode child)
Called from visitChild(org.eigenbase.rel.RelNode, int, org.eigenbase.rel.RelNode) after the frame has been set up. Specific implementors should override this method.

Parameters:
child - Child relational expression
Returns:
Interpretation of the return value is left to the implementor

visitChildInternal

Object visitChildInternal(RelNode child,
                          int ordinal)
Called from visitChild(org.eigenbase.rel.RelNode, int, org.eigenbase.rel.RelNode) after the frame has been set up. Specific implementors should override this method.

Parameters:
child - Child relational expression
ordinal - Ordinal of child within its parent
Returns:
Interpretation of the return value is left to the implementor