[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]
2 Stream query strategy/execution tree
(stream 0) Lookup in stream 1
(stream 1) Lookup in stream 0
------ Example 1 a 3 table join
" where streamA.id = streamB.id " +
" and streamB.id = streamC.id";
=> Index propery names for each stream
for stream 0 to 4 = "id"
=> join order, ie.
for stream 0 = {1, 2}
for stream 1 = {factor [0,2]}
for stream 2 = {1, 0}
=> IndexKeyGen optionalIndexKeyGen, created by nested query plan nodes
3 Stream query strategy
(stream 0) Nested iteration
Lookup in stream 1 Lookup in stream 2
(stream 1) Factor
Lookup in stream 0 Lookup in stream 2
(stream 2) Nested iteration
Lookup in stream 1 Lookup in stream 0
------ Example 2 a 4 table join
" where streamA.id = streamB.id " +
" and streamB.id = streamC.id";
" and streamC.id = streamD.id";
=> join order, ie.
for stream 0 = {1, 2, 3}
for stream 1 = {factor [0,2], use 2 for 3}
for stream 2 = {factor [1,3], use 1 for 0}
for stream 3 = {2, 1, 0}
concepts... nested iteration, inner loop
select * from s1, s2, s3, s4 where s1.id=s2.id and s2.id=s3.id and s3.id=s4.id
(stream 0) Nested iteration
Lookup in stream 1 Lookup in stream 2 Lookup in stream 3
(stream 1) Factor
lookup in stream 0 Nested iteration
Lookup in stream 2 Lookup in stream 3
(stream 2) Factor
lookup in stream 3 Nested iteration
Lookup in stream 1 Lookup in stream 0
(stream 3) Nested iteration
Lookup in stream 2 Lookup in stream 1 Lookup in stream 0
------ Example 4 a 4 table join, orphan table
" where streamA.id = streamB.id " +
" and streamB.id = streamC.id"; (no table D join criteria)
------ Example 5 a 3 table join with 2 indexes for stream B
" where streamA.A1 = streamB.B1 " +
" and streamB.B2 = streamC.C1"; (no table D join criteria)
Builds a query plan for 3 or more streams in a join.
The following tables list the members exposed by the NStreamQueryPlanBuilder type.
Public Methods
Name | Description | |
---|---|---|
![]() ![]() | Build |
Build a query plan based on the stream property relationships indicated in queryGraph.
|
![]() ![]() | BuildDefaultNestingOrder |
Returns default nesting order for a given number of streams for a certain stream.
Example: numStreams = 5, forStream = 2, result = {0, 1, 3, 4}
The resulting array has all streams except the forStream, in ascdending order.
|
![]() ![]() | BuildNStreamDefaultQuerySpec |
Returns query plan based on all unindexed full table lookups and lookups based
on a simple nesting order.
|
![]() ![]() | ComputeBestPath |
Compute a best chain or path for lookups to take for the lookup stream passed in and the query
property relationships.
The method runs through all possible permutations of lookup path net.esper.collection.NumberSetPermutationEnumeration
until a path is found in which all streams can be accessed via an index.
If not such path is found, the method returns the path with the greatest depth, ie. where
the first one or more streams are index accesses.
If no depth other then zero is found, returns the default nesting order.
|
![]() ![]() | ComputeNavigableDepth |
Given a chain of streams to look up and indexing information, compute the index within the
chain of the first non-index lookup.
|
![]() ![]() | CreateLookupPlan |
Create the table lookup plan for a from-stream to look up in an indexed stream
using the columns supplied in the query graph and looking at the actual indexes available
and their index number.
|
![]() ![]() | CreateStreamPlan |
Walks the chain of lookups and constructs lookup strategy and plan specification based
on the index specifications.
|
![]() | Equals | (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. GetHashCode() is suitable for use in hashing algorithms and data structures like a hash table. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | ToString | (Inherited from Object.) |
Protected Methods
Name | Description | |
---|---|---|
![]() | Finalize | Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
Public Constructors
Name | Description | |
---|---|---|
![]() | NStreamQueryPlanBuilderNew |