Class NestedIterationExecNode
java.lang.Object
com.espertech.esper.common.internal.epl.join.strategy.ExecNode
com.espertech.esper.common.internal.epl.join.exec.base.NestedIterationExecNode
Execution node that performs a nested iteration over all child nodes.
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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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.
-
Constructor Details
-
NestedIterationExecNode
public NestedIterationExecNode(int[] nestedStreams) Ctor.- Parameters:
nestedStreams
- - array of integers defining order of streams in nested join.
-
-
Method Details
-
addChildNode
Add a child node.- Parameters:
childNode
- to add
-
process
public void process(EventBean lookupEvent, EventBean[] prefillPath, Collection<EventBean[]> result, ExprEvaluatorContext exprEvaluatorContext) Description copied from class:ExecNode
Process single event using the prefill events to compile lookup results.- Specified by:
process
in classExecNode
- Parameters:
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 evaluation
-
recursiveNestedJoin
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.- Parameters:
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 evalauation
-
print
Description copied from class:ExecNode
Output the execution strategy.
-