net.esper.eql.core
Class ResultSetProcessorFactory

java.lang.Object
  extended by net.esper.eql.core.ResultSetProcessorFactory

public class ResultSetProcessorFactory
extends Object

Factory for output processors. Output processors process the result set of a join or of a view and apply aggregation/grouping, having and some output limiting logic.

The instance produced by the factory depends on the presence of aggregation functions in the select list, the presence and nature of the group-by clause.

In case (1) and (2) there are no aggregation functions in the select clause.

Case (3) is without group-by and with aggregation functions and without non-aggregated properties in the select list:

select sum(volume) 
. Always produces one row for new and old data, aggregates without grouping.

Case (4) is without group-by and with aggregation functions but with non-aggregated properties in the select list:

select price, sum(volume) 
. Produces a row for each event, aggregates without grouping.

Case (5) is with group-by and with aggregation functions and all selected properties are grouped-by. in the select list:

select customerId, sum(volume) group by customerId
. Produces a old and new data row for each group changed, aggregates with grouping, see ResultSetProcessorRowPerGroup

Case (6) is with group-by and with aggregation functions and only some selected properties are grouped-by. in the select list:

select customerId, supplierId, sum(volume) group by customerId
. Produces row for each event, aggregates with grouping.


Constructor Summary
ResultSetProcessorFactory()
           
 
Method Summary
static ResultSetProcessor getProcessor(List<SelectExprElementUnnamedSpec> selectionList, InsertIntoDesc insertIntoDesc, List<ExprNode> groupByNodes, ExprNode optionalHavingNode, OutputLimitSpec outputLimitSpec, List<Pair<ExprNode,Boolean>> orderByList, StreamTypeService typeService, EventAdapterService eventAdapterService, AutoImportService autoImportService)
          Returns the result set process for the given select expression, group-by clause and having clause given a set of types describing each stream in the from-clause.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResultSetProcessorFactory

public ResultSetProcessorFactory()
Method Detail

getProcessor

public static ResultSetProcessor getProcessor(List<SelectExprElementUnnamedSpec> selectionList,
                                              InsertIntoDesc insertIntoDesc,
                                              List<ExprNode> groupByNodes,
                                              ExprNode optionalHavingNode,
                                              OutputLimitSpec outputLimitSpec,
                                              List<Pair<ExprNode,Boolean>> orderByList,
                                              StreamTypeService typeService,
                                              EventAdapterService eventAdapterService,
                                              AutoImportService autoImportService)
                                       throws ExprValidationException
Returns the result set process for the given select expression, group-by clause and having clause given a set of types describing each stream in the from-clause.

Parameters:
selectionList - - represents select clause and thus the expression nodes listed in the select, or empty if wildcard
groupByNodes - - represents the expressions to group-by events based on event properties, or empty if no group-by was specified
optionalHavingNode - - represents the having-clause boolean filter criteria
outputLimitSpec - - indicates whether to output all or only the last event
orderByList - - represent the expressions in the order-by clause
typeService - - for information about the streams in the from clause
insertIntoDesc - - descriptor for insert-into clause information
eventAdapterService - - wrapping service for events
autoImportService - - for resolving class names
Returns:
result set processor instance
Throws:
ExprValidationException