private static SelectExprProcessor GetProcessorInternal(ICollection <int> assignedTypeNumberStack, SelectClauseElementCompiled[] selectionList, bool isUsingWildcard, InsertIntoDesc insertIntoDesc, EventType optionalInsertIntoEventType, StreamTypeService typeService, EventAdapterService eventAdapterService, ValueAddEventService valueAddEventService, SelectExprEventTypeRegistry selectExprEventTypeRegistry, EngineImportService engineImportService, int statementId, Attribute[] annotations, ConfigurationInformation configuration, NamedWindowMgmtService namedWindowMgmtService, TableService tableService, GroupByRollupInfo groupByRollupInfo) { // Wildcard not allowed when insert into specifies column order if (isUsingWildcard && insertIntoDesc != null && !insertIntoDesc.ColumnNames.IsEmpty()) { throw new ExprValidationException("Wildcard not allowed when insert-into specifies column order"); } // Determine wildcard processor (select *) if (IsWildcardsOnly(selectionList)) { // For joins if (typeService.StreamNames.Length > 1) { Log.Debug(".getProcessor Using SelectExprJoinWildcardProcessor"); return(SelectExprJoinWildcardProcessorFactory.Create( assignedTypeNumberStack, statementId, typeService.StreamNames, typeService.EventTypes, eventAdapterService, insertIntoDesc, selectExprEventTypeRegistry, engineImportService, annotations, configuration, tableService)); } // Single-table selects with no insert-into // don't need extra processing else if (insertIntoDesc == null) { Log.Debug(".getProcessor Using wildcard processor"); if (typeService.HasTableTypes) { var tableName = TableServiceUtil.GetTableNameFromEventType(typeService.EventTypes[0]); return(new SelectExprWildcardTableProcessor(tableName, tableService)); } return(new SelectExprWildcardProcessor(typeService.EventTypes[0])); } } // Verify the assigned or name used is unique if (insertIntoDesc == null) { VerifyNameUniqueness(selectionList); } // Construct processor var buckets = GetSelectExpressionBuckets(selectionList); var factory = new SelectExprProcessorHelper( assignedTypeNumberStack, buckets.Expressions, buckets.SelectedStreams, insertIntoDesc, optionalInsertIntoEventType, isUsingWildcard, typeService, eventAdapterService, valueAddEventService, selectExprEventTypeRegistry, engineImportService, statementId, annotations, configuration, namedWindowMgmtService, tableService, groupByRollupInfo); SelectExprProcessor processor = factory.Evaluator; // add reference to the type obtained var type = (EventTypeSPI)processor.ResultEventType; if (!typeService.IsOnDemandStreams && type.Metadata.TypeClass != TypeClass.ANONYMOUS) { selectExprEventTypeRegistry.Add(processor.ResultEventType); } return(processor); }
public void SetUp() { var selectExprEventTypeRegistry = new SelectExprEventTypeRegistry("abc", new StatementEventTypeRefImpl()); var supportTypes = new SupportStreamTypeSvc3Stream(); _processor = SelectExprJoinWildcardProcessorFactory.Create(Collections.GetEmptyList <int>(), 1, "stmtname", supportTypes.StreamNames, supportTypes.EventTypes, SupportEventAdapterService.Service, null, selectExprEventTypeRegistry, null, null, new Configuration(), new TableServiceImpl(), "default"); }