|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
QueryProcessor
interface, which is responsible for constructing for each query
a tree of ProcessingComponent
objects that each are responsible for processing a specific aspect of
the query and returning the tuples to the parent component.
See:
Description
Interface Summary | |
---|---|
JoinComponent.Joinable | Interface defining the value of a tuple that is used in the join condition. |
JoinComponent.TupleMerger | |
JoinComponent.ValueSelector | Interface defining the value of a tuple that is used in the join condition. |
ProcessingComponent.DynamicOperation | Interface for evaluating a DynamicOperand to return the resulting value. |
Processor | Interface for a query processor. |
SelectComponent.Analyzer | Inteface for criteria evaluation operations that cannot be defined efficiently, correctly, or completely using only the tuple values. |
SelectComponent.CompareOperation | Interface defining the Comparison functionality for a specific Operator . |
SelectComponent.ConstraintChecker | Interface used to determine whether a tuple satisfies all of the constraints applied to the SELECT node. |
Class Summary | |
---|---|
AbstractAccessComponent | A reusable base class for ProcessingComponent implementations that does everything except obtain the correct
Location objects for the query results. |
DelegatingComponent | |
DistinctComponent | A ProcessingComponent implementation that removes duplicates. |
DistinctOfSortedComponent | An efficient ProcessingComponent that removes duplicates from an already-sorted set of results. |
ExceptComponent | |
FullTextSearchResultColumns | A specialization of QueryResultColumns that can be used to represent results containing only the Location of
the node and the |
IntersectComponent | |
JoinComponent | |
LimitComponent | |
MergeJoinComponent | Create a processing component that performs a merge-join algorithm. |
NestedLoopJoinComponent | |
NoResultsComponent | |
ProcessingComponent | A component that performs (some) portion of the query processing by returning the tuples that result from
this stage of processing. |
ProjectComponent | A ProcessingComponent implementation that performs a PROJECT operation to reduce the columns that
appear in the results. |
QueryProcessor | An abstract Processor implementation that builds a tree of ProcessingComponent objects to perform the different
parts of the query processing logic. |
QueryResultColumns | Defines the columns associated with the results of a query. |
QueryResults | The resulting output of a query. |
SelectComponent | |
SetOperationComponent | |
SortLocationsComponent | |
SortValuesComponent | A ProcessingComponent implementation that performs a PROJECT operation to reduce the columns that
appear in the results. |
UnionComponent |
This package defines the QueryProcessor
interface, which is responsible for constructing for each query
a tree of ProcessingComponent
objects that each are responsible for processing a specific aspect of
the query and returning the tuples to the parent component.
At the bottom are the "access" components that perform the low-level access of the tuples from the graph container. Above these are the other components that implement various operations, such as limits, joins (using merge and nested loop algorithms), unions, intersects, distinct, sorts, and even column projections. At the top is a single component that produces tuples that represent the results of the query.
Once the QueryProcessor
creates the ProcessingComponent assembly,
the top-level component is executed. Execution involves requesting from the child processing component(s) the next batch of results,
processing each of the tuples according to the specific ProcessingComponent algorithm, and finally returning
the processed tuples.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |