Search in sources :

Example 1 with QueryableProcessor

use of org.wso2.siddhi.core.query.processor.stream.window.QueryableProcessor in project siddhi by wso2.

the class StoreQueryParser method constructStoreQueryRuntime.

private static StoreQueryRuntime constructStoreQueryRuntime(Table table, StoreQuery storeQuery, SiddhiAppContext siddhiAppContext, Map<String, Table> tableMap, String queryName, int metaPosition, Expression onCondition, MetaStreamEvent metaStreamEvent, List<VariableExpressionExecutor> variableExpressionExecutors) {
    metaStreamEvent.setEventType(EventType.TABLE);
    initMetaStreamEvent(metaStreamEvent, table.getTableDefinition());
    MatchingMetaInfoHolder metaStreamInfoHolder = generateMatchingMetaInfoHolder(metaStreamEvent, table.getTableDefinition());
    CompiledCondition compiledCondition = table.compileCondition(onCondition, metaStreamInfoHolder, siddhiAppContext, variableExpressionExecutors, tableMap, queryName);
    if (table instanceof QueryableProcessor) {
        List<Attribute> expectedOutputAttributes = buildExpectedOutputAttributes(storeQuery, siddhiAppContext, tableMap, queryName, metaPosition, metaStreamInfoHolder);
        CompiledSelection compiledSelection = ((QueryableProcessor) table).compileSelection(storeQuery.getSelector(), expectedOutputAttributes, metaStreamInfoHolder, siddhiAppContext, variableExpressionExecutors, tableMap, queryName);
        SelectStoreQueryRuntime storeQueryRuntime = new SelectStoreQueryRuntime((QueryableProcessor) table, compiledCondition, compiledSelection, expectedOutputAttributes, queryName);
        QueryParserHelper.reduceMetaComplexEvent(metaStreamInfoHolder.getMetaStateEvent());
        QueryParserHelper.updateVariablePosition(metaStreamInfoHolder.getMetaStateEvent(), variableExpressionExecutors);
        return storeQueryRuntime;
    } else {
        FindStoreQueryRuntime storeQueryRuntime = new FindStoreQueryRuntime(table, compiledCondition, queryName, metaStreamEvent);
        populateFindStoreQueryRuntime(storeQueryRuntime, metaStreamInfoHolder, storeQuery.getSelector(), variableExpressionExecutors, siddhiAppContext, tableMap, queryName, metaPosition);
        return storeQueryRuntime;
    }
}
Also used : CompiledCondition(org.wso2.siddhi.core.util.collection.operator.CompiledCondition) SelectStoreQueryRuntime(org.wso2.siddhi.core.query.SelectStoreQueryRuntime) Attribute(org.wso2.siddhi.query.api.definition.Attribute) MatchingMetaInfoHolder(org.wso2.siddhi.core.util.collection.operator.MatchingMetaInfoHolder) CompiledSelection(org.wso2.siddhi.core.util.collection.operator.CompiledSelection) FindStoreQueryRuntime(org.wso2.siddhi.core.query.FindStoreQueryRuntime) QueryableProcessor(org.wso2.siddhi.core.query.processor.stream.window.QueryableProcessor)

Aggregations

FindStoreQueryRuntime (org.wso2.siddhi.core.query.FindStoreQueryRuntime)1 SelectStoreQueryRuntime (org.wso2.siddhi.core.query.SelectStoreQueryRuntime)1 QueryableProcessor (org.wso2.siddhi.core.query.processor.stream.window.QueryableProcessor)1 CompiledCondition (org.wso2.siddhi.core.util.collection.operator.CompiledCondition)1 CompiledSelection (org.wso2.siddhi.core.util.collection.operator.CompiledSelection)1 MatchingMetaInfoHolder (org.wso2.siddhi.core.util.collection.operator.MatchingMetaInfoHolder)1 Attribute (org.wso2.siddhi.query.api.definition.Attribute)1