public override void Visit(SqlGroupByClause sqlGroupByClause)
 {
     this.writer.Write("GROUP BY ");
     sqlGroupByClause.Expressions[0].Accept(this);
     for (int i = 1; i < sqlGroupByClause.Expressions.Length; i++)
     {
         this.writer.Write(", ");
         sqlGroupByClause.Expressions[i].Accept(this);
     }
 }
        public override SqlObject Visit(SqlGroupByClause sqlGroupByClause)
        {
            SqlScalarExpression[] expressions = new SqlScalarExpression[sqlGroupByClause.Expressions.Length];
            for (int i = 0; i < sqlGroupByClause.Expressions.Length; i++)
            {
                expressions[i] = sqlGroupByClause.Expressions[i].Accept(this) as SqlScalarExpression;
            }

            return(SqlGroupByClause.Create(expressions));
        }
        public override int Visit(SqlGroupByClause sqlGroupByClause)
        {
            int hashCode = SqlGroupByClauseHashCode;

            for (int i = 0; i < sqlGroupByClause.Expressions.Length; i++)
            {
                hashCode = CombineHashes(hashCode, sqlGroupByClause.Expressions[i].Accept(this));
            }

            return(hashCode);
        }
Exemplo n.º 4
0
        public SqlSelectQuery <T> GroupBy(Expression <Func <T, object> > columns)
        {
            if (columns == null)
            {
                return(this);
            }
            var clause = new SqlGroupByClause(columns);

            Clauses.Add(clause);
            return(this);
        }
Exemplo n.º 5
0
        public SqlSelectQuery <T> GroupBy(string columns)
        {
            if (columns == null)
            {
                return(this);
            }
            var exp    = Expression.Constant(columns);
            var clause = new SqlGroupByClause(exp);

            Clauses.Add(clause);
            return(this);
        }
Exemplo n.º 6
0
 private static IEnumerable <IGrouping <GroupByKey, CosmosElement> > ExecuteGroupByClause(
     IEnumerable <CosmosElement> dataSource,
     SqlGroupByClause sqlGroupByClause)
 {
     return(dataSource.GroupBy(
                keySelector: (document) =>
     {
         return GetGroupByKey(
             document,
             sqlGroupByClause.Expressions);
     },
                comparer: GroupByKeyEqualityComparer.Singleton));
 }
        public override SqlObject VisitGroup_by_clause([NotNull] sqlParser.Group_by_clauseContext context)
        {
            Contract.Requires(context != null);

            List <SqlScalarExpression> groupByColumns = new List <SqlScalarExpression>();

            foreach (sqlParser.Scalar_expressionContext scalarExpressionContext in context.scalar_expression_list().scalar_expression())
            {
                groupByColumns.Add((SqlScalarExpression)this.Visit(scalarExpressionContext));
            }

            return(SqlGroupByClause.Create(groupByColumns.ToImmutableArray()));
        }
Exemplo n.º 8
0
        public override bool Visit(SqlGroupByClause first, SqlObject secondAsObject)
        {
            if (!(secondAsObject is SqlGroupByClause second))
            {
                return(false);
            }

            if (!SequenceEquals(first.Expressions, second.Expressions))
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 9
0
        public void AddGroupByClause(SqlGroupByClause groupByClause)
        {
            foreach (var item in groupByClause.Items)
            {
                switch (item)
                {
                case SqlSimpleGroupByItem simpleItem:
                    var tableColumn = Helper.GetTableColumn(( SqlColumnRefExpression )simpleItem.Expression, this);
                    GroupByFields.Add(tableColumn);
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }
 private void SetupClauses()
 {
     this.sqlSelectClause = new SqlSelectClause(this);
     this.sqlIntoClause = new SqlIntoClause(this);
     this.sqlFromClause = new SqlFromClause(this);
     this.sqlWhereClause = new SqlWhereClause(this);
     this.sqlGroupByClause = new SqlGroupByClause(this);
     this.sqlHavingClause = new SqlHavingClause(this);
     this.sqlOrderByClause = new SqlOrderByClause(this);
 }
Exemplo n.º 11
0
 public abstract void Visit(SqlGroupByClause sqlObject);
Exemplo n.º 12
0
 public virtual void Visited(SqlGroupByClause groupByClause)
 {
     //
 }
Exemplo n.º 13
0
 public virtual void Visiting(SqlGroupByClause groupByClause)
 {
     //sqlBuilder.Append("GroupBy ");
 }
Exemplo n.º 14
0
 public abstract TOutput Visit(SqlGroupByClause sqlObject, TArg input);
Exemplo n.º 15
0
 public virtual void Visiting(SqlGroupByClause groupByClause)
 {
     //sqlBuilder.Append("GroupBy ");
 }
Exemplo n.º 16
0
 public override void Visit(SqlGroupByClause codeObject)
 {
 }
Exemplo n.º 17
0
 public virtual void Visited(SqlGroupByClause groupByClause)
 {
     //
 }
Exemplo n.º 18
0
 public abstract TResult Visit(SqlGroupByClause sqlObject);