[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

Recusivly builds a substream-per-stream ordered tree graph using the join information supplied for outer joins and from the query graph (where clause).

Required streams are considered first and their lookup is placed first in the list to gain performance.

Namespace: net.esper.eql.join.plan
Assembly:   NEsper (in NEsper.dll)

Syntax

Visual Basic (Declaration)
Public Shared Sub RecursiveBuild ( _
	streamNum As Integer, _
	queryGraph As QueryGraph, _
	outerInnerGraph As OuterInnerDirectionalGraph, _
	completedStreams As ISet(Of Integer), _
	substreamsPerStream As LinkedDictionary(Of Integer, Integer()), _
	requiredPerStream As Boolean() _
)
C#
public static void RecursiveBuild (
	int streamNum,
	QueryGraph queryGraph,
	OuterInnerDirectionalGraph outerInnerGraph,
	ISet<int> completedStreams,
	LinkedDictionary<int, int[]> substreamsPerStream,
	bool[] requiredPerStream
)
Visual C++
public:
static void RecursiveBuild (
	int streamNum, 
	QueryGraph^ queryGraph, 
	OuterInnerDirectionalGraph^ outerInnerGraph, 
	ISet<int>^ completedStreams, 
	LinkedDictionary<int, array<int>^>^ substreamsPerStream, 
	array<bool>^ requiredPerStream
)

Parameters

streamNum
System.Int32
is the root stream number that supplies the incoming event to build the tree for
queryGraph
net.esper.eql.join.plan.QueryGraph
contains where-clause stream relationship info
outerInnerGraph
net.esper.eql.join.plan.OuterInnerDirectionalGraph
contains the outer join stream relationship info
completedStreams
net.esper.compat.ISet<(Of T>)
is a temporary holder for streams already considered
substreamsPerStream
net.esper.compat.LinkedDictionary<(Of K, V>)
is the ordered, tree-like structure to be filled
requiredPerStream
System.Boolean[]
indicates which streams are required and which are optional