[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]
Classes
Class | Description | |
---|---|---|
![]() | BestChainResult | Encapsulates the chain information. |
![]() | FilterExprAnalyzer | Analyzes a filter expression and builds a query graph model.
The 'equals' and 'and' expressions in the filter expression are extracted
and placed in the query graph model as navigable relationships (by key and index
properties) between streams.
|
![]() | FullTableScanLookupPlan | Plan for a full table scan. |
![]() | GraphKey |
Key consisting of 2 integer stream numbers.
|
![]() | GraphValue | Property lists stored as a value for each stream-to-stream relationship. |
![]() | IndexedTableLookupPlan |
Plan to perform an indexed table lookup.
|
![]() | LookupInstructionPlan |
Plan for lookup using a from-stream event looking up one or more to-streams
using a specified lookup plan for each to-stream.
|
![]() | LookupInstructionQueryPlanNode | Query plan for executing a set of lookup instructions and assembling an end result via
a set of assembly instructions.
|
![]() | NestedIterationNode |
Plan to perform a nested iteration over child nodes.
|
![]() | NStreamOuterQueryPlanBuilder |
Builds a query plan for 3 or more streams in a outer join.
|
![]() | NStreamQueryPlanBuilder |
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. |
![]() | OuterInnerDirectionalGraph | This class represents outer-join relationships between outer and inner tables.
To add a left outer join between streams 0 and 1 use "Add(0, 1)".
To add a full outer join between streams 0 and 1 use "Add(0, 1)" and "Add(1, 0)".
To add a right outer join between streams 0 and 1 use "Add(1, 0)".
|
![]() | OuterJoinAnalyzer |
Analyzes an outer join descriptor list and builds a query graph model from it.
The 'on' expression identifiers are extracted and placed in the query graph
model as navigable relationships (by key and index properties) between streams.
|
![]() | QueryGraph | Model of relationships between streams based on properties in both streams that are
specified as equal in a filter expression.
|
![]() | QueryPlan | Contains the query plan for all streams. |
![]() | QueryPlanBuilder |
Build a query plan based on filtering information.
|
![]() | QueryPlanIndex |
Specifies an index to build as part of an overall query plan.
|
![]() | QueryPlanIndexBuilder |
Build query index plans.
|
![]() | QueryPlanNode |
Specification node for a query execution plan to be extended by specific execution specification nodes.
|
![]() | TableLookupNode |
Specifies exection of a table lookup using the supplied plan for performing the lookup.
|
![]() | TableLookupPlan | Abstract specification on how to perform a table lookup. |
![]() | TableOuterLookupNode | Specifies exection of a table lookup with outer join using the a specified lookup plan. |
![]() | TwoStreamQueryPlanBuilder |
Builds a query plan for the simple 2-stream scenario.
|