예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 public static ExprFrameClause WithEnd(this ExprFrameClause original, ExprFrameBorder?newEnd)
 => new ExprFrameClause(start: original.Start, end: newEnd);
예제 #4
0
 public static ExprFrameClause WithStart(this ExprFrameClause original, ExprFrameBorder newStart)
 => new ExprFrameClause(start: newStart, end: original.End);