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(SelectClauseSpec selectClauseSpec, InsertIntoDesc insertIntoDesc, List<ExprNode> groupByNodes, ExprNode optionalHavingNode, OutputLimitSpec outputLimitSpec, List<Pair<ExprNode,Boolean>> orderByList, StreamTypeService typeService, EventAdapterService eventAdapterService, AutoImportService autoImportService, ViewResourceDelegate viewResourceDelegate)
          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(SelectClauseSpec selectClauseSpec,
                                              InsertIntoDesc insertIntoDesc,
                                              List<ExprNode> groupByNodes,
                                              ExprNode optionalHavingNode,
                                              OutputLimitSpec outputLimitSpec,
                                              List<Pair<ExprNode,Boolean>> orderByList,
                                              StreamTypeService typeService,
                                              EventAdapterService eventAdapterService,
                                              AutoImportService autoImportService,
                                              ViewResourceDelegate viewResourceDelegate)
                                       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:
selectClauseSpec - - 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
viewResourceDelegate - - delegates views resource factory to expression resources requirements
Returns:
result set processor instance
Throws:
ExprValidationException - when any of the expressions is invalid