|
|||||||||
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 parentvoid 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 typevoid 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 dataflowvoid 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 |