Exemplo n.º 1
0
 public AggregationProjectionSegment(int startIndex, int stopIndex, AggregationTypeEnum type, int innerExpressionStartIndex)
 {
     _startIndex = startIndex;
     _stopIndex  = stopIndex;
     _type       = type;
     _innerExpressionStartIndex = innerExpressionStartIndex;
 }
Exemplo n.º 2
0
 public AggregationDistinctProjection(int startIndex, int stopIndex, AggregationTypeEnum type, string innerExpression, string alias, string distinctInnerExpression)
     : base(type, innerExpression, alias)
 {
     StartIndex = startIndex;
     StopIndex  = stopIndex;
     _distinctInnerExpression = distinctInnerExpression;
 }
Exemplo n.º 3
0
        public Output(string Description = "", string Unit = "", double Scale = 1, AggregationTypeEnum AggregationType = AggregationTypeEnum.Mean, AggregationSequenceEnum AggregationSequence = AggregationSequenceEnum.Always)
        {
            this.Description = Description;
            this.Unit        = Unit;
            this.Scale       = Scale;

            this.AggregationType     = AggregationType;
            this.AggregationSequence = AggregationSequence;
        }
Exemplo n.º 4
0
        private IASTNode CreateAggregationSegment(MySqlCommandParser.AggregationFunctionContext ctx, String aggregationType)
        {
            AggregationTypeEnum type      = AggregationType.ValueOf(aggregationType.ToUpper());
            int innerExpressionStartIndex = ((ITerminalNode)ctx.GetChild(1)).Symbol.StartIndex;

            if (null == ctx.distinct())
            {
                return(new AggregationProjectionSegment(ctx.Start.StartIndex, ctx.Stop.StopIndex, type, innerExpressionStartIndex));
            }
            return(new AggregationDistinctProjectionSegment(ctx.Start.StartIndex, ctx.Stop.StopIndex, type, innerExpressionStartIndex, getDistinctExpression(ctx)));
        }
        /**
         * Create aggregation unit instance.
         *
         * @param type aggregation function type
         * @param isDistinct is distinct
         * @return aggregation unit instance
         */
        public static IAggregationUnit Create(AggregationTypeEnum type, bool isDistinct)
        {
            switch (type)
            {
            case AggregationTypeEnum.MAX:
                return(new ComparableAggregationUnit(false));

            case AggregationTypeEnum.MIN:
                return(new ComparableAggregationUnit(true));

            case AggregationTypeEnum.SUM:
                return(GetSumAggregationUnit(isDistinct));

            case AggregationTypeEnum.COUNT:
                return(GetCountAggregationUnit(isDistinct));

            case AggregationTypeEnum.AVG:
                return(GetAvgAggregationUnit(isDistinct));

            default:
                throw new NotSupportedException(type.ToString());
            }
        }
 public AggregationDistinctProjectionSegment(int startIndex, int stopIndex, AggregationTypeEnum type, int innerExpressionStartIndex, string distinctExpression) : base(startIndex, stopIndex, type, innerExpressionStartIndex)
 {
     this._distinctExpression = SqlUtil.GetExpressionWithoutOutsideParentheses(distinctExpression);
 }
Exemplo n.º 7
0
 public AggregationProjection(AggregationTypeEnum type, string innerExpression, string @alias)
 {
     _type            = type;
     _innerExpression = innerExpression;
     _alias           = alias;
 }