|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface FennelRelImplementor
Callback used to hold state while converting a tree of FennelRel
objects into a plan consisting of FemExecutionStreamDef objects.
FarragoRelImplementor| Method Summary | |
|---|---|
void |
addDataFlowFromProducerToConsumer(FemExecutionStreamDef producer,
FemExecutionStreamDef consumer)
Adds a new explicit dataflow edge between two existing stream definitions. |
void |
addDataFlowFromProducerToConsumer(FemExecutionStreamDef producer,
FemExecutionStreamDef consumer,
boolean implicit)
Adds a new dataflow edge between two existing stream definitions. |
FennelRelParamId |
allocateRelParamId()
Reserves a Fennel dynamic parameter. |
List<FemExecutionStreamDef> |
getRegisteredStreamDefs(RelNode rel)
Returns the list of stream definitions that have been registered for a RelNode. |
FarragoRepos |
getRepos()
Returns the repository. |
boolean |
isFirstTranslationInstance(RelNode rel)
Determines if this is the instance of a RelNode such that the instance corresponds to the one at the time this method was first called. |
void |
registerRelStreamDef(FemExecutionStreamDef streamDef,
RelNode rel,
RelDataType rowType)
Registers a new stream definition. |
void |
setErrorRecordType(FennelRel rel,
FemExecutionStreamDef streamDef,
RelDataType errorType)
Sets the format of error records for an execution stream. |
FennelDynamicParamId |
translateParamId(FennelRelParamId relParamId)
Translates a FennelRelParamId into a FennelDynamicParamId
based on the current scope. |
FennelDynamicParamId |
translateParamId(FennelRelParamId relParamId,
FemExecutionStreamDef streamDef,
FennelDynamicParamId.StreamType streamType)
Translates a FennelRelParamId into a FennelDynamicParamId
based on the current scope. |
FemExecutionStreamDef |
visitFennelChild(FennelRel rel,
int ordinal)
Converts a relational expression into a plan by calling its FennelRel.toStreamDef(net.sf.farrago.query.FennelRelImplementor) method. |
| Methods inherited from interface org.eigenbase.relopt.RelImplementor |
|---|
visitChild, visitChildInternal, visitChildInternal |
| Method Detail |
|---|
FemExecutionStreamDef visitFennelChild(FennelRel rel,
int ordinal)
FennelRel.toStreamDef(net.sf.farrago.query.FennelRelImplementor) method.
rel - the relational expressionordinal - input position of the relational expression for its parent
void registerRelStreamDef(FemExecutionStreamDef streamDef,
RelNode rel,
RelDataType rowType)
visitFennelChild(net.sf.farrago.query.FennelRel, int). However, this is not true for non-tree stream graphs.
For streams with multiple parents, this method must be called for streams
not returned from visitFennelChild(net.sf.farrago.query.FennelRel, int).
streamDef - new stream definitionrel - RelNode which stream implementsrowType - row type for stream, or null to use rel's row type
void addDataFlowFromProducerToConsumer(FemExecutionStreamDef producer,
FemExecutionStreamDef consumer)
NOTE jvs 14-Nov-2005: I gave this method a long name so that it wouldn't be necessary to guess the direction when reading code that uses it.
producer - the upstream node of the dataflowconsumer - the downstream node of the dataflow
void addDataFlowFromProducerToConsumer(FemExecutionStreamDef producer,
FemExecutionStreamDef consumer,
boolean implicit)
producer - the upstream node of the dataflowconsumer - the downstream node of the dataflowimplicit - false if this is an explicit dataflow edge between two
ExecStreams; true if it represents implicit dataflow via a UDX reading
from a cursorFarragoRepos getRepos()
FennelRelParamId allocateRelParamId()
translateParamId(FennelRelParamId) later as part of its toStreamDef
implementation to convert this into a final FennelDynamicParamId,
which can then be referenced from stream definitions.
FennelDynamicParamId translateParamId(FennelRelParamId relParamId)
FennelRelParamId into a FennelDynamicParamId
based on the current scope.
relParamId - reserved ID to be translated
FennelDynamicParamId translateParamId(FennelRelParamId relParamId,
FemExecutionStreamDef streamDef,
FennelDynamicParamId.StreamType streamType)
FennelRelParamId into a FennelDynamicParamId
based on the current scope.
relParamId - reserved ID to be translatedstreamDef - the stream that either produces or consumes the dynamic
parameter; or null if we don't need to keep track of that informationstreamType - whether the streamDef produces or consumes the dynamic
parameter
void setErrorRecordType(FennelRel rel,
FemExecutionStreamDef streamDef,
RelDataType errorType)
rel - relation to which the execution stream belongsstreamDef - stream definition of stream that may produce errorserrorType - row type of error records produced by the streamList<FemExecutionStreamDef> getRegisteredStreamDefs(RelNode rel)
rel - the RelNode
boolean isFirstTranslationInstance(RelNode rel)
rel - the RelNode
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||