コード例 #1
0
        public AggregationTableReadDesc ValidateAggregationTableRead(
            ExprValidationContext validationContext,
            TableMetadataColumnAggregation tableAccessColumn,
            TableMetaData table)
        {
            // child node validation
            ExprNodeUtilityValidate.GetValidatedSubtree(ExprNodeOrigin.AGGPARAM, ChildNodes, validationContext);

            // portable validation
            var validation = tableAccessColumn.AggregationPortableValidation;
            if (!(validation is AggregationPortableValidationPluginMultiFunc)) {
                throw new ExprValidationException("Invalid aggregation column type");
            }

            // obtain handler
            var ctx = new AggregationMultiFunctionValidationContext(
                functionName,
                validationContext.StreamTypeService.EventTypes,
                positionalParams,
                validationContext.StatementName,
                validationContext,
                config,
                null,
                ChildNodes,
                optionalFilter);
            var handler = aggregationMultiFunctionForge.ValidateGetHandler(ctx);

            // set of reader
            var epType = handler.ReturnType;
            Type returnType = EPTypeHelper.GetNormalizedClass(epType);
            var forge = new AggregationTableAccessAggReaderForgePlugIn(
                returnType,
                (AggregationMultiFunctionTableReaderModeManaged) handler.TableReaderMode);
            EventType eventTypeCollection = EPTypeHelper.OptionalIsEventTypeColl(epType);
            EventType eventTypeSingle = EPTypeHelper.OptionalIsEventTypeSingle(epType);
            Type componentTypeCollection = EPTypeHelper.OptionalIsComponentTypeColl(epType);
            return new AggregationTableReadDesc(forge, eventTypeCollection, componentTypeCollection, eventTypeSingle);
        }
コード例 #2
0
 public EventType GetEventTypeSingle(
     StatementRawInfo statementRawInfo,
     StatementCompileTimeServices compileTimeServices)
 {
     return EPTypeHelper.OptionalIsEventTypeSingle(_optionalEnumerationType);
 }
コード例 #3
0
 public EventType GetEventTypeSingle(EventAdapterService eventAdapterService, int statementId)
 {
     return(EPTypeHelper.OptionalIsEventTypeSingle(_optionalEnumerationType));
 }