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); }
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)); }
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)); }
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)); }