public bool VisitExprFrameClause(ExprFrameClause expr, TCtx arg) { var res = this.Visit(expr, "FrameClause", arg, out var argOut) && this.Accept("Start", expr.Start, argOut) && this.Accept("End", expr.End, argOut); this._visitor.EndVisitExpr(expr, arg); return(res); }
public bool VisitExprFrameClause(ExprFrameClause exprFrameClause, IExpr?arg) { this.Builder.Append("ROWS "); if (exprFrameClause.End != null) { this.Builder.Append("BETWEEN "); exprFrameClause.Start.Accept(this, exprFrameClause); this.Builder.Append(" AND "); exprFrameClause.End.Accept(this, exprFrameClause); } else { exprFrameClause.Start.Accept(this, exprFrameClause); } return(true); }
public static ExprFrameClause WithEnd(this ExprFrameClause original, ExprFrameBorder?newEnd) => new ExprFrameClause(start: original.Start, end: newEnd);
public static ExprFrameClause WithStart(this ExprFrameClause original, ExprFrameBorder newStart) => new ExprFrameClause(start: newStart, end: original.End);