public class ResultSetProcessorAggregateGroupedImpl extends java.lang.Object implements ResultSetProcessorAggregateGrouped
This processor does perform grouping by computing MultiKey group-by keys for each row. The processor generates one row for each event entering (new event) and one row for each event leaving (old event).
Aggregation state is a table of rows held by AggregationService
where the row key is the group-by MultiKey.
Modifier and Type | Field and Description |
---|---|
protected AgentInstanceContext |
agentInstanceContext |
protected AggregationService |
aggregationService |
protected ResultSetProcessorAggregateGroupedFactory |
prototype |
Modifier and Type | Method and Description |
---|---|
void |
acceptHelperVisitor(ResultSetProcessorOutputHelperVisitor visitor) |
static void |
acceptHelperVisitorCodegen(CodegenMethodNode method,
CodegenInstanceAux instance) |
void |
applyJoinResult(java.util.Set<MultiKey<EventBean>> newEvents,
java.util.Set<MultiKey<EventBean>> oldEvents) |
static void |
applyJoinResultCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
void |
applyViewResult(EventBean[] newData,
EventBean[] oldData) |
static void |
applyViewResultCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
void |
clear()
Clear out current state.
|
static void |
clearMethodCodegen(CodegenMethodNode method) |
UniformPair<EventBean[]> |
continueOutputLimitedLastAllNonBufferedJoin(boolean isSynthesize) |
static void |
continueOutputLimitedLastAllNonBufferedJoinCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenMethodNode method) |
UniformPair<EventBean[]> |
continueOutputLimitedLastAllNonBufferedView(boolean isSynthesize) |
static void |
continueOutputLimitedLastAllNonBufferedViewCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenMethodNode method) |
boolean |
evaluateHavingClause(EventBean[] eventsPerStream,
boolean isNewData,
ExprEvaluatorContext exprEvaluatorContext) |
java.lang.Object[] |
generateGroupKeyArrayJoin(java.util.Set<MultiKey<EventBean>> resultSet,
boolean isNewData) |
java.lang.Object[] |
generateGroupKeyArrayView(EventBean[] events,
boolean isNewData) |
java.lang.Object |
generateGroupKeySingle(EventBean[] eventsPerStream,
boolean isNewData)
Generates the group-by key for the row
|
void |
generateOutputBatchedJoinPerKey(java.util.Set<MultiKey<EventBean>> outputEvents,
java.lang.Object[] groupByKeys,
boolean isNewData,
boolean isSynthesize,
java.util.Map<java.lang.Object,EventBean> resultEvents,
java.util.Map<java.lang.Object,java.lang.Object> optSortKeys) |
void |
generateOutputBatchedJoinUnkeyed(java.util.Set<MultiKey<EventBean>> outputEvents,
java.lang.Object[] groupByKeys,
boolean isNewData,
boolean isSynthesize,
java.util.Collection<EventBean> resultEvents,
java.util.List<java.lang.Object> optSortKeys) |
EventBean |
generateOutputBatchedSingle(java.lang.Object groupByKey,
EventBean[] eventsPerStream,
boolean isNewData,
boolean isSynthesize) |
void |
generateOutputBatchedViewPerKey(EventBean[] outputEvents,
java.lang.Object[] groupByKeys,
boolean isNewData,
boolean isSynthesize,
java.util.Map<java.lang.Object,EventBean> resultEvents,
java.util.Map<java.lang.Object,java.lang.Object> optSortKeys,
EventBean[] eventsPerStream) |
void |
generateOutputBatchedViewUnkeyed(EventBean[] outputEvents,
java.lang.Object[] groupByKeys,
boolean isNewData,
boolean isSynthesize,
java.util.Collection<EventBean> resultEvents,
java.util.List<java.lang.Object> optSortKeys,
EventBean[] eventsPerStream) |
ExprEvaluatorContext |
getAgentInstanceContext() |
AggregationService |
getAggregationService() |
java.util.Iterator<EventBean> |
getIterator(java.util.Set<MultiKey<EventBean>> joinSet)
Returns the iterator for iterating over a join-result.
|
java.util.Iterator<EventBean> |
getIterator(Viewable parent)
Returns the iterator implementing the group-by and aggregation and order-by logic
specific to each case of use of these construct.
|
static void |
getIteratorJoinCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
static void |
getIteratorViewCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
ExprEvaluator |
getOptionalHavingNode()
Returns the having node.
|
EventType |
getResultEventType()
Returns the event type of processed results.
|
SelectExprProcessor |
getSelectExprProcessor()
Returns the select expression processor
|
boolean |
hasHavingClause() |
boolean |
isSelectRStream() |
UniformPair<EventBean[]> |
processJoinResult(java.util.Set<MultiKey<EventBean>> newEvents,
java.util.Set<MultiKey<EventBean>> oldEvents,
boolean isSynthesize)
For use by joins posting their result, process the event rows that are entered and removed (new and old events).
|
static void |
processJoinResultCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
UniformPair<EventBean[]> |
processOutputLimitedJoin(java.util.List<UniformPair<java.util.Set<MultiKey<EventBean>>>> joinEventsSet,
boolean generateSynthetic)
Processes batched events in case of output-rate limiting.
|
static void |
processOutputLimitedJoinCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
void |
processOutputLimitedLastAllNonBufferedJoin(java.util.Set<MultiKey<EventBean>> newData,
java.util.Set<MultiKey<EventBean>> oldData,
boolean isGenerateSynthetic) |
static void |
processOutputLimitedLastAllNonBufferedJoinCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
void |
processOutputLimitedLastAllNonBufferedView(EventBean[] newData,
EventBean[] oldData,
boolean isGenerateSynthetic) |
static void |
processOutputLimitedLastAllNonBufferedViewCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
UniformPair<EventBean[]> |
processOutputLimitedView(java.util.List<UniformPair<EventBean[]>> viewEventsList,
boolean generateSynthetic)
Processes batched events in case of output-rate limiting.
|
static void |
processOutputLimitedViewCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
UniformPair<EventBean[]> |
processViewResult(EventBean[] newData,
EventBean[] oldData,
boolean isSynthesize)
For use by views posting their result, process the event rows that are entered and removed (new and old events).
|
static void |
processViewResultCodegen(ResultSetProcessorAggregateGroupedForge forge,
CodegenClassScope classScope,
CodegenMethodNode method,
CodegenInstanceAux instance) |
void |
removedAggregationGroupKey(java.lang.Object key) |
void |
setAgentInstanceContext(AgentInstanceContext agentInstanceContext) |
void |
stop()
Stops the underlying resources.
|
static void |
stopMethodCodegen(CodegenMethodNode method,
CodegenInstanceAux instance) |
protected final ResultSetProcessorAggregateGroupedFactory prototype
protected final AggregationService aggregationService
protected AgentInstanceContext agentInstanceContext
public void setAgentInstanceContext(AgentInstanceContext agentInstanceContext)
setAgentInstanceContext
in interface ResultSetProcessor
public EventType getResultEventType()
ResultSetProcessor
getResultEventType
in interface ResultSetProcessor
public AggregationService getAggregationService()
getAggregationService
in interface ResultSetProcessorAggregateGrouped
public void applyViewResult(EventBean[] newData, EventBean[] oldData)
applyViewResult
in interface ResultSetProcessor
public static void applyViewResultCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public void applyJoinResult(java.util.Set<MultiKey<EventBean>> newEvents, java.util.Set<MultiKey<EventBean>> oldEvents)
applyJoinResult
in interface ResultSetProcessor
public static void applyJoinResultCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public UniformPair<EventBean[]> processJoinResult(java.util.Set<MultiKey<EventBean>> newEvents, java.util.Set<MultiKey<EventBean>> oldEvents, boolean isSynthesize)
ResultSetProcessor
processJoinResult
in interface ResultSetProcessor
newEvents
- - new events posted by joinoldEvents
- - old events posted by joinisSynthesize
- - set to true to indicate that synthetic events are required for an iterator result setpublic static void processJoinResultCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public UniformPair<EventBean[]> processViewResult(EventBean[] newData, EventBean[] oldData, boolean isSynthesize)
ResultSetProcessor
processViewResult
in interface ResultSetProcessor
newData
- - new events posted by viewoldData
- - old events posted by viewisSynthesize
- - set to true to indicate that synthetic events are required for an iterator result setpublic static void processViewResultCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public java.lang.Object[] generateGroupKeyArrayJoin(java.util.Set<MultiKey<EventBean>> resultSet, boolean isNewData)
generateGroupKeyArrayJoin
in interface ResultSetProcessorAggregateGrouped
public java.lang.Object[] generateGroupKeyArrayView(EventBean[] events, boolean isNewData)
generateGroupKeyArrayView
in interface ResultSetProcessorAggregateGrouped
public void acceptHelperVisitor(ResultSetProcessorOutputHelperVisitor visitor)
acceptHelperVisitor
in interface ResultSetProcessor
public static void acceptHelperVisitorCodegen(CodegenMethodNode method, CodegenInstanceAux instance)
public java.lang.Object generateGroupKeySingle(EventBean[] eventsPerStream, boolean isNewData)
generateGroupKeySingle
in interface ResultSetProcessorAggregateGrouped
eventsPerStream
- is the row of eventsisNewData
- is true for new datapublic java.util.Iterator<EventBean> getIterator(Viewable parent)
ResultSetProcessor
getIterator
in interface ResultSetProcessor
parent
- is the parent view iteratorpublic static void getIteratorViewCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public SelectExprProcessor getSelectExprProcessor()
getSelectExprProcessor
in interface ResultSetProcessorAggregateGrouped
public ExprEvaluator getOptionalHavingNode()
public java.util.Iterator<EventBean> getIterator(java.util.Set<MultiKey<EventBean>> joinSet)
ResultSetProcessor
getIterator
in interface ResultSetProcessor
joinSet
- is the join result setpublic static void getIteratorJoinCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public void clear()
ResultSetProcessor
clear
in interface ResultSetProcessor
public static void clearMethodCodegen(CodegenMethodNode method)
public UniformPair<EventBean[]> processOutputLimitedJoin(java.util.List<UniformPair<java.util.Set<MultiKey<EventBean>>>> joinEventsSet, boolean generateSynthetic)
ResultSetProcessor
processOutputLimitedJoin
in interface ResultSetProcessor
joinEventsSet
- the join resultsgenerateSynthetic
- flag to indicate whether synthetic events must be generatedpublic static void processOutputLimitedJoinCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public UniformPair<EventBean[]> processOutputLimitedView(java.util.List<UniformPair<EventBean[]>> viewEventsList, boolean generateSynthetic)
ResultSetProcessor
processOutputLimitedView
in interface ResultSetProcessor
viewEventsList
- the view resultsgenerateSynthetic
- flag to indicate whether synthetic events must be generatedpublic static void processOutputLimitedViewCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public void stop()
StopCallback
stop
in interface StopCallback
public static void stopMethodCodegen(CodegenMethodNode method, CodegenInstanceAux instance)
public void generateOutputBatchedJoinUnkeyed(java.util.Set<MultiKey<EventBean>> outputEvents, java.lang.Object[] groupByKeys, boolean isNewData, boolean isSynthesize, java.util.Collection<EventBean> resultEvents, java.util.List<java.lang.Object> optSortKeys)
generateOutputBatchedJoinUnkeyed
in interface ResultSetProcessorAggregateGrouped
public EventBean generateOutputBatchedSingle(java.lang.Object groupByKey, EventBean[] eventsPerStream, boolean isNewData, boolean isSynthesize)
generateOutputBatchedSingle
in interface ResultSetProcessorAggregateGrouped
public void generateOutputBatchedViewPerKey(EventBean[] outputEvents, java.lang.Object[] groupByKeys, boolean isNewData, boolean isSynthesize, java.util.Map<java.lang.Object,EventBean> resultEvents, java.util.Map<java.lang.Object,java.lang.Object> optSortKeys, EventBean[] eventsPerStream)
generateOutputBatchedViewPerKey
in interface ResultSetProcessorAggregateGrouped
public void generateOutputBatchedJoinPerKey(java.util.Set<MultiKey<EventBean>> outputEvents, java.lang.Object[] groupByKeys, boolean isNewData, boolean isSynthesize, java.util.Map<java.lang.Object,EventBean> resultEvents, java.util.Map<java.lang.Object,java.lang.Object> optSortKeys)
generateOutputBatchedJoinPerKey
in interface ResultSetProcessorAggregateGrouped
public void removedAggregationGroupKey(java.lang.Object key)
removedAggregationGroupKey
in interface AggregationRowRemovedCallback
public void processOutputLimitedLastAllNonBufferedView(EventBean[] newData, EventBean[] oldData, boolean isGenerateSynthetic)
processOutputLimitedLastAllNonBufferedView
in interface ResultSetProcessor
public static void processOutputLimitedLastAllNonBufferedViewCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public void processOutputLimitedLastAllNonBufferedJoin(java.util.Set<MultiKey<EventBean>> newData, java.util.Set<MultiKey<EventBean>> oldData, boolean isGenerateSynthetic)
processOutputLimitedLastAllNonBufferedJoin
in interface ResultSetProcessor
public static void processOutputLimitedLastAllNonBufferedJoinCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenClassScope classScope, CodegenMethodNode method, CodegenInstanceAux instance)
public UniformPair<EventBean[]> continueOutputLimitedLastAllNonBufferedView(boolean isSynthesize)
continueOutputLimitedLastAllNonBufferedView
in interface ResultSetProcessor
public static void continueOutputLimitedLastAllNonBufferedViewCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenMethodNode method)
public UniformPair<EventBean[]> continueOutputLimitedLastAllNonBufferedJoin(boolean isSynthesize)
continueOutputLimitedLastAllNonBufferedJoin
in interface ResultSetProcessor
public static void continueOutputLimitedLastAllNonBufferedJoinCodegen(ResultSetProcessorAggregateGroupedForge forge, CodegenMethodNode method)
public void generateOutputBatchedViewUnkeyed(EventBean[] outputEvents, java.lang.Object[] groupByKeys, boolean isNewData, boolean isSynthesize, java.util.Collection<EventBean> resultEvents, java.util.List<java.lang.Object> optSortKeys, EventBean[] eventsPerStream)
generateOutputBatchedViewUnkeyed
in interface ResultSetProcessorAggregateGrouped
public boolean hasHavingClause()
hasHavingClause
in interface ResultSetProcessorAggregateGrouped
public boolean evaluateHavingClause(EventBean[] eventsPerStream, boolean isNewData, ExprEvaluatorContext exprEvaluatorContext)
evaluateHavingClause
in interface ResultSetProcessorAggregateGrouped
public boolean isSelectRStream()
isSelectRStream
in interface ResultSetProcessorAggregateGrouped
public ExprEvaluatorContext getAgentInstanceContext()
getAgentInstanceContext
in interface ResultSetProcessorAggregateGrouped