public override FieldIndex[] Select <T>(ExpressionParser <T> parser) { ParsingTracer.WriteLine(this); ParsingTracer.WriteLine(QuerySource); ParsingTracer.IncIndentLevel(); if (_index == null) { SetSubIndex(parser); _index = new FieldIndex[_subIndex.Length]; for (var i = 0; i < _subIndex.Length; i++) { var col = QuerySource.SubSql.Select.Columns[_subIndex[i].Index]; _index[i] = new FieldIndex { Index = QuerySource.SqlQuery.Select.Add(col), Field = this }; } } ParsingTracer.DecIndentLevel(); ParsingTracer.WriteLine(QuerySource); return(_index); }
public GroupBy( SqlQuery sqlQuery, QuerySource groupQuery, QuerySource originalQuery, LambdaInfo keySelector, QuerySource elementSource, Type groupingType, bool isWrapped, ISqlExpression[] byExpressions) : base(sqlQuery, keySelector, groupQuery) { ParsingTracer.IncIndentLevel(); OriginalQuery = originalQuery; ElementSource = elementSource; GroupingType = groupingType; IsWrapped = isWrapped; ByExpressions = byExpressions; var field = new GroupByColumn(this); Fields.Add(field); Members.Add(groupingType.GetProperty("Key"), field); ParsingTracer.DecIndentLevel(); }
public override FieldIndex[] Select <T>(ExpressionParser <T> parser) { ParsingTracer.WriteLine(this); ParsingTracer.IncIndentLevel(); if (_indexes == null) { var indexes = new List <FieldIndex>(Fields.Count); foreach (var field in Fields) { foreach (var idx in field.Select(parser)) { indexes.Add(new FieldIndex { Index = idx.Index, Field = field }); } } _indexes = indexes.ToArray(); } ParsingTracer.DecIndentLevel(); return(_indexes); }
public override FieldIndex[] Select <T>(ExpressionParser <T> _) { ParsingTracer.WriteLine(this); ParsingTracer.WriteLine("table", Table); ParsingTracer.IncIndentLevel(); var index = new[] { new FieldIndex { Index = Table.SqlQuery.Select.Add(Field, Field.Alias), Field = this } }; ParsingTracer.DecIndentLevel(); ParsingTracer.WriteLine("table", Table); return(index); }
public override FieldIndex[] Select <T>(ExpressionParser <T> parser) { ParsingTracer.WriteLine(this); ParsingTracer.WriteLine(GroupBySource.BaseQuery); ParsingTracer.IncIndentLevel(); if (_index == null) { _index = GroupBySource.BaseQuery.Select(parser); } ParsingTracer.DecIndentLevel(); ParsingTracer.WriteLine(GroupBySource.BaseQuery); return(_index); }
public override FieldIndex[] Select <T>(ExpressionParser <T> parser) { ParsingTracer.WriteLine(this); ParsingTracer.WriteLine(QuerySource); ParsingTracer.IncIndentLevel(); if (_index == null) { if (_sqlExpression == null) { _sqlExpression = Parse(parser, QuerySource.Sources); } _index = new[] { new FieldIndex { Index = QuerySource.SqlQuery.Select.Add(_sqlExpression, _alias), Field = this } }; } ParsingTracer.DecIndentLevel(); ParsingTracer.WriteLine(QuerySource); return(_index); }
protected QuerySource(SqlQuery sqlQuery, LambdaInfo lambda, params QuerySource[] baseQueries) { SqlQuery = sqlQuery; Lambda = lambda; _sources = baseQueries; #if DEBUG && TRACE_PARSING ParsingTracer.WriteLine(lambda); ParsingTracer.WriteLine(this); foreach (var query in baseQueries) { ParsingTracer.WriteLine("base", query); } foreach (var field in Fields) { ParsingTracer.WriteLine("field ", field); } ParsingTracer.IncIndentLevel(); #endif }