public class NestedIterationExecNode extends ExecNode
Each child node under this node typically represents a table lookup. The implementation 'hops' from the first child to the next recursively for each row returned by a child.
It passes a 'prototype' row (prefillPath) to each new child which contains the current partial event set.
Constructor and Description |
---|
NestedIterationExecNode(int[] nestedStreams)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
void |
addChildNode(ExecNode childNode)
Add a child node.
|
void |
print(IndentWriter writer)
Output the execution strategy.
|
void |
process(EventBean lookupEvent,
EventBean[] prefillPath,
Collection<EventBean[]> result,
ExprEvaluatorContext exprEvaluatorContext)
Process single event using the prefill events to compile lookup results.
|
protected void |
recursiveNestedJoin(EventBean lookupEvent,
int nestingOrderIndex,
EventBean[] currentPath,
Collection<EventBean[]> result,
ExprEvaluatorContext exprEvaluatorContext)
Recursive method to run through all child nodes and, for each result set tuple returned
by a child node, execute the inner child of the child node until there are no inner child nodes.
|
public NestedIterationExecNode(int[] nestedStreams)
nestedStreams
- - array of integers defining order of streams in nested join.public void addChildNode(ExecNode childNode)
childNode
- to addpublic void process(EventBean lookupEvent, EventBean[] prefillPath, Collection<EventBean[]> result, ExprEvaluatorContext exprEvaluatorContext)
ExecNode
process
in class ExecNode
lookupEvent
- - event to look up for or query forprefillPath
- - set of events currently in the example tuple to serve
as a prototype for result rows.result
- is the list of tuples to add a result row toexprEvaluatorContext
- context for expression evaluationprotected void recursiveNestedJoin(EventBean lookupEvent, int nestingOrderIndex, EventBean[] currentPath, Collection<EventBean[]> result, ExprEvaluatorContext exprEvaluatorContext)
lookupEvent
- - current event to use for lookup by child nodenestingOrderIndex
- - index within the child nodes indicating what nesting level we are atcurrentPath
- - prototype result row to use by child nodes for generating result rowsresult
- - result tuple rows to be populatedexprEvaluatorContext
- context for expression evalauationpublic void print(IndentWriter writer)
ExecNode