コード例 #1
0
        public void SqlBetweenScalarExpressionTest()
        {
            SqlBetweenScalarExpression threeBetweenFourAndFive = SqlBetweenScalarExpression.Create(
                SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(4)),
                SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(3)),
                SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(5)),
                not: false);

            AssertEvaluation(CosmosBoolean.Create(true), threeBetweenFourAndFive);

            SqlBetweenScalarExpression threeNotBetweenFourAndFive = SqlBetweenScalarExpression.Create(
                SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(4)),
                SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(3)),
                SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(5)),
                not: true);

            AssertEvaluation(CosmosBoolean.Create(false), threeNotBetweenFourAndFive);

            SqlBetweenScalarExpression trueBetweenTrueAndTrueNested = SqlBetweenScalarExpression.Create(
                SqlLiteralScalarExpression.Create(SqlBooleanLiteral.Create(true)),
                threeBetweenFourAndFive,
                threeBetweenFourAndFive,
                not: false);

            AssertEvaluation(CosmosBoolean.Create(true), trueBetweenTrueAndTrueNested);
        }
コード例 #2
0
 public override SqlObject Visit(SqlBetweenScalarExpression sqlBetweenScalarExpression)
 {
     return(SqlBetweenScalarExpression.Create(
                sqlBetweenScalarExpression.Expression.Accept(this) as SqlScalarExpression,
                sqlBetweenScalarExpression.StartInclusive.Accept(this) as SqlScalarExpression,
                sqlBetweenScalarExpression.EndInclusive.Accept(this) as SqlScalarExpression,
                sqlBetweenScalarExpression.Not));
 }
コード例 #3
0
 public override SqlObject Visit(SqlBetweenScalarExpression sqlBetweenScalarExpression)
 {
     return(SqlBetweenScalarExpression.Create(
                sqlBetweenScalarExpression.Expression.Accept(this) as SqlScalarExpression,
                sqlBetweenScalarExpression.LeftExpression.Accept(this) as SqlScalarExpression,
                sqlBetweenScalarExpression.RightExpression.Accept(this) as SqlScalarExpression,
                sqlBetweenScalarExpression.IsNot));
 }
コード例 #4
0
        public override SqlObject VisitBetweenScalarExpression([NotNull] sqlParser.BetweenScalarExpressionContext context)
        {
            Contract.Requires(context != null);
            // scalar_expression K_NOT? K_BETWEEN scalar_expression K_AND scalar_expression

            SqlScalarExpression needle = (SqlScalarExpression)this.Visit(context.binary_scalar_expression(0));
            bool not = context.K_NOT() != null;
            SqlScalarExpression start = (SqlScalarExpression)this.Visit(context.binary_scalar_expression(1));
            SqlScalarExpression end   = (SqlScalarExpression)this.Visit(context.binary_scalar_expression(2));

            return(SqlBetweenScalarExpression.Create(needle, start, end, not));
        }