Package org.codehaus.jparsec.examples.sql.ast

Examples of org.codehaus.jparsec.examples.sql.ast.BinaryExpression


            null, null, null));
    assertParser(parser, "select 1 from t where x > 1",
        new Select(false,
            Arrays.asList(new Projection(number(1), null)),
            Arrays.asList(table("t")),
            new BinaryExpression(ExpressionParserTest.name("x"), Op.GT, number(1)), null, null));
    assertParser(parser, "select 1 from t where exists (select * from t2)",
        new Select(false,
            Arrays.asList(new Projection(number(1), null)),
            Arrays.asList(table("t")),
            new UnaryRelationalExpression(
View Full Code Here


 
  public void testArithmetic() {
    Parser<Expression> parser = ExpressionParser.arithmetic(NUMBER);
    assertParser(parser, "1", number(1));
    assertParser(parser, "((1))", number(1));
    assertParser(parser, "1 + 2", new BinaryExpression(number(1), Op.PLUS, number(2)));
    assertParser(parser, "2 * (1 + (2))",
        new BinaryExpression(number(2), Op.MUL,
            new BinaryExpression(number(1), Op.PLUS, number(2))));
    assertParser(parser, "2 - 1 / (2)",
        new BinaryExpression(number(2), Op.MINUS,
            new BinaryExpression(number(1), Op.DIV, number(2))));
    assertParser(parser, "2 * 1 % -2",
        new BinaryExpression(
            new BinaryExpression(number(2), Op.MUL, number(1)),
                Op.MOD, new UnaryExpression(Op.NEG, number(2))));
    assertParser(parser, "f(1)", FunctionExpression.of(QualifiedName.of("f"), number(1)));
    assertParser(parser, "foo.bar(1, 2) + baz(foo.bar(1 / 2))",
        new BinaryExpression(
            FunctionExpression.of(QualifiedName.of("foo", "bar"), number(1), number(2)),
            Op.PLUS,
            FunctionExpression.of(QualifiedName.of("baz"),
                FunctionExpression.of(QualifiedName.of("foo", "bar"), new BinaryExpression(
                    number(1), Op.DIV, number(2))))));
  }
View Full Code Here

  @SuppressWarnings("unchecked")
  public void testExpression() {
    Parser<Expression> parser = ExpressionParser.expression(NUMBER);
    assertParser(parser,
        "1 + case a when a then count(a.b.*) end - case when 1 then a * 2 else b end",
        new BinaryExpression(
            new BinaryExpression(
                number(1),
                Op.PLUS,
                simpleCase(name("a"), name("a"), function("count", wildcard("a", "b")), null)),
            Op.MINUS,
            fullCase(number(1), new BinaryExpression(name("a"), Op.MUL, number(2)), name("b"))
        )
    );
  }
View Full Code Here

    );
  }
 
  public void testCompare() {
    Parser<Expression> parser = ExpressionParser.compare(NUMBER);
    assertParser(parser, "1 = 1", new BinaryExpression(number(1), Op.EQ, number(1)));
    assertParser(parser, "1 < 2", new BinaryExpression(number(1), Op.LT, number(2)));
    assertParser(parser, "1 <= 2", new BinaryExpression(number(1), Op.LE, number(2)));
    assertParser(parser, "1 <> 2", new BinaryExpression(number(1), Op.NE, number(2)));
    assertParser(parser, "2 > 1", new BinaryExpression(number(2), Op.GT, number(1)));
    assertParser(parser, "2 >= 1", new BinaryExpression(number(2), Op.GE, number(1)));
    assertParser(parser, "1 is null",
        new BinaryExpression(number(1), Op.IS, NullExpression.instance));
    assertParser(parser, "1 is not null",
        new BinaryExpression(number(1), Op.NOT, NullExpression.instance));
    assertParser(parser, "1 like 2", new LikeExpression(number(1), true, number(2), null));
    assertParser(parser, "1 BETWEEN 0 and 2",
        new BetweenExpression(number(1), true, number(0), number(2)));
    assertParser(parser, "1 not between 2 and 0",
        new BetweenExpression(number(1), false, number(2), number(0)));
View Full Code Here

    Parser<Expression> parser = ExpressionParser.logical(NUMBER);
    assertParser(parser, "1", number(1));
    assertParser(parser, "(1)", number(1));
    assertParser(parser, "((1))", number(1));
    assertParser(parser, "not 1", new UnaryExpression(Op.NOT, number(1)));
    assertParser(parser, "1 and 2", new BinaryExpression(number(1), Op.AND, number(2)));
    assertParser(parser, "1 or 2", new BinaryExpression(number(1), Op.OR, number(2)));
    assertParser(parser, "1 or 2 and 3", new BinaryExpression(number(1), Op.OR,
        new BinaryExpression(number(2), Op.AND, number(3))));
    assertParser(parser, "1 or NOT 2", new BinaryExpression(number(1), Op.OR,
        new UnaryExpression(Op.NOT, number(2))));
    assertParser(parser, "not 1 and 2", new BinaryExpression(
        new UnaryExpression(Op.NOT, number(1)), Op.AND, number(2)));
  }
View Full Code Here

        new BinaryRelationalExpression(number(1), Op.NOT_IN, table("table")));
  }
 
  public void testIn() {
    assertParser(ExpressionParser.in(NUMBER), "1 in (2)",
        new BinaryExpression(number(1), Op.IN, TupleExpression.of(number(2))));
    assertParser(ExpressionParser.in(NUMBER), "1 in (2, 3)",
        new BinaryExpression(number(1), Op.IN, TupleExpression.of(number(2), number(3))));
  }
View Full Code Here

        new BinaryExpression(number(1), Op.IN, TupleExpression.of(number(2), number(3))));
  }
 
  public void testNotIn() {
    assertParser(ExpressionParser.notIn(NUMBER), "1 not in (2)",
        new BinaryExpression(number(1), Op.NOT_IN, TupleExpression.of(number(2))));
    assertParser(ExpressionParser.notIn(NUMBER), "1 not in (2, 3)",
        new BinaryExpression(number(1), Op.NOT_IN, TupleExpression.of(number(2), number(3))));
  }
View Full Code Here

  }
 
  public void testCondition() {
    Parser<Expression> parser =
        ExpressionParser.condition(NUMBER, RelationParser.TABLE);
    assertParser(parser, "1 = 2", new BinaryExpression(number(1), Op.EQ, number(2)));
    assertParser(parser, "1 is null",
        new BinaryExpression(number(1), Op.IS, NullExpression.instance));
    assertParser(parser, "1 is not null",
        new BinaryExpression(number(1), Op.NOT, NullExpression.instance));
    assertParser(parser, "1 like 2", new LikeExpression(number(1), true, number(2), null));
    assertParser(parser, "(1 < 2 or not exists t)",
        new BinaryExpression(
            new BinaryExpression(number(1), Op.LT, number(2)),
            Op.OR,
            new UnaryExpression(Op.NOT,
                new UnaryRelationalExpression(table("t"), Op.EXISTS))
        )
    );
View Full Code Here

  }

  @Test
  public void testIn() {
    assertParser(ExpressionParser.in(NUMBER), "1 in (2)",
        new BinaryExpression(number(1), Op.IN, TupleExpression.of(number(2))));
    assertParser(ExpressionParser.in(NUMBER), "1 in (2, 3)",
        new BinaryExpression(number(1), Op.IN, TupleExpression.of(number(2), number(3))));
  }
View Full Code Here

  }

  @Test
  public void testNotIn() {
    assertParser(ExpressionParser.notIn(NUMBER), "1 not in (2)",
        new BinaryExpression(number(1), Op.NOT_IN, TupleExpression.of(number(2))));
    assertParser(ExpressionParser.notIn(NUMBER), "1 not in (2, 3)",
        new BinaryExpression(number(1), Op.NOT_IN, TupleExpression.of(number(2), number(3))));
  }
View Full Code Here

TOP

Related Classes of org.codehaus.jparsec.examples.sql.ast.BinaryExpression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.