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); }
virtual public void VisitOnOver(WindowFuncExpr expr, int offset) { }
virtual public void VisitAfter(WindowFuncExpr expr) { }
virtual public void VisitBefore(WindowFuncExpr expr) { }
public void VisitOnOver(WindowFuncExpr expr, int offset) { _visitor.VisitOnOver(expr, offset); }
public void VisitAfter(WindowFuncExpr expr) { _visitor.VisitAfter(expr); }
public void VisitBefore(WindowFuncExpr expr) { _visitor.VisitBefore(expr); }