public override void VisitAfter(WindowFuncExpr expr)
        {
            OrderBy     orderBy     = (OrderBy)_stack.Pop();
            PartitionBy partitionBy = null;

            if (expr.PartitionBy != null)
            {
                partitionBy = (PartitionBy)_stack.Pop();
            }
            Exprs arg = null;

            if (expr.Arguments != null)
            {
                arg = (Exprs)_stack.Pop();
            }

            if (object.ReferenceEquals(expr.Arguments, arg) &&
                object.ReferenceEquals(expr.PartitionBy, partitionBy) &&
                object.ReferenceEquals(expr.OrderBy, orderBy))
            {
                _stack.Push(expr);
                return;
            }

            var node = new WindowFuncExpr(expr.ServerName
                                          , expr.DataBaseName
                                          , expr.SchemaName
                                          , expr.Name
                                          , expr.Quantifier
                                          , expr.HasWildcard
                                          , arg
                                          , partitionBy
                                          , orderBy
                                          , expr.Comments.Clone());

            _stack.Push(node);
        }
Ejemplo n.º 2
0
 virtual public void VisitOnOver(WindowFuncExpr expr, int offset)
 {
 }
Ejemplo n.º 3
0
 virtual public void VisitAfter(WindowFuncExpr expr)
 {
 }
Ejemplo n.º 4
0
 virtual public void VisitBefore(WindowFuncExpr expr)
 {
 }
Ejemplo n.º 5
0
 public void VisitOnOver(WindowFuncExpr expr, int offset)
 {
     _visitor.VisitOnOver(expr, offset);
 }
Ejemplo n.º 6
0
 public void VisitAfter(WindowFuncExpr expr)
 {
     _visitor.VisitAfter(expr);
 }
Ejemplo n.º 7
0
 public void VisitBefore(WindowFuncExpr expr)
 {
     _visitor.VisitBefore(expr);
 }