示例#1
0
            internal override SqlRow VisitRow(SqlRow row)
            {
                foreach (SqlColumn column in row.Columns)
                {
                    column.Alias = this.alias;
                }

                return(base.VisitRow(row));
            }
示例#2
0
            internal override SqlRow VisitRow(SqlRow row)
            {
                SqlRow row2 = new SqlRow(row.SourceExpression);

                foreach (SqlColumn column in row.Columns)
                {
                    row2.Columns.Add((SqlColumn)this.Visit(column));
                }
                return(row2);
            }
示例#3
0
        internal virtual SqlRow VisitRow(SqlRow row)
        {
            int num   = 0;
            int count = row.Columns.Count;

            while (num < count)
            {
                row.Columns[num].Expression = this.VisitExpression(row.Columns[num].Expression);
                num++;
            }
            return(row);
        }
示例#4
0
            private void ConvertColumnsToMax(SqlSelect select, out bool changed, out bool containsLongExpressions)
            {
                SqlRow row = select.Row;

                changed = false;
                containsLongExpressions = false;
                foreach (SqlColumn column in row.Columns)
                {
                    bool flag;
                    containsLongExpressions = containsLongExpressions || column.SqlType.IsLargeType;
                    column.Expression       = this.ConvertToMax(column.Expression, out flag);
                    changed = changed || flag;
                }
            }
示例#5
0
            internal override SqlSelect VisitSelect(SqlSelect select)
            {
                SqlSource            from       = this.VisitSource(select.From);
                List <SqlExpression> collection = null;

                if (select.GroupBy.Count > 0)
                {
                    collection = new List <SqlExpression>(select.GroupBy.Count);
                    foreach (SqlExpression expression in select.GroupBy)
                    {
                        collection.Add((SqlExpression)this.Visit(expression));
                    }
                }
                SqlExpression             expression2 = (SqlExpression)this.Visit(select.Having);
                List <SqlOrderExpression> list2       = null;

                if (select.OrderBy.Count > 0)
                {
                    list2 = new List <SqlOrderExpression>(select.OrderBy.Count);
                    foreach (SqlOrderExpression expression3 in select.OrderBy)
                    {
                        SqlOrderExpression item = new SqlOrderExpression(expression3.OrderType, (SqlExpression)this.Visit(expression3.Expression));
                        list2.Add(item);
                    }
                }
                SqlExpression expression5 = (SqlExpression)this.Visit(select.Top);
                SqlExpression expression6 = (SqlExpression)this.Visit(select.Where);
                SqlRow        row         = (SqlRow)this.Visit(select.Row);
                SqlSelect     select2     = new SqlSelect(this.VisitExpression(select.Selection), from, select.SourceExpression);

                if (collection != null)
                {
                    select2.GroupBy.AddRange(collection);
                }
                select2.Having = expression2;
                if (list2 != null)
                {
                    select2.OrderBy.AddRange(list2);
                }
                select2.OrderingType = select.OrderingType;
                select2.Row          = row;
                select2.Top          = expression5;
                select2.IsDistinct   = select.IsDistinct;
                select2.IsPercent    = select.IsPercent;
                select2.Where        = expression6;
                select2.DoNotOutput  = select.DoNotOutput;
                return(select2);
            }
示例#6
0
 // Methods
 internal SelectionFlattener(SqlRow row, Dictionary <SqlColumn, SqlColumn> map, bool isInput)
 {
     this.row     = row;
     this.map     = map;
     this.isInput = isInput;
 }
示例#7
0
 private SqlExpression FlattenSelection(SqlRow row, bool isInput, SqlExpression selection)
 {
     selection = this.columnizer.ColumnizeSelection(selection);
     return(new SelectionFlattener(row, this.map, isInput).VisitExpression(selection));
 }