Search in sources :

Example 6 with SQLExprParser

use of com.alibaba.druid.sql.parser.SQLExprParser in project druid by alibaba.

the class SQLExprParserTest method test_binary.

public void test_binary() throws Exception {
    SQLExprParser exprParser = new SQLExprParser("AGE > 5");
    SQLBinaryOpExpr binaryOpExpr = (SQLBinaryOpExpr) exprParser.expr();
    Assert.assertEquals(SQLBinaryOperator.GreaterThan, binaryOpExpr.getOperator());
    SQLIdentifierExpr left = (SQLIdentifierExpr) binaryOpExpr.getLeft();
    SQLIntegerExpr right = (SQLIntegerExpr) binaryOpExpr.getRight();
    Assert.assertEquals("AGE", left.getName());
    Assert.assertEquals(5, right.getNumber().intValue());
}
Also used : SQLIdentifierExpr(com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr) SQLIntegerExpr(com.alibaba.druid.sql.ast.expr.SQLIntegerExpr) SQLBinaryOpExpr(com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr) SQLExprParser(com.alibaba.druid.sql.parser.SQLExprParser)

Example 7 with SQLExprParser

use of com.alibaba.druid.sql.parser.SQLExprParser in project druid by alibaba.

the class EqualTest_interval_mysql method test_exits.

public void test_exits() throws Exception {
    String sql = "INTERVAL 3 YEAR";
    String sql_c = "INTERVAL 3 MONTH";
    MySqlIntervalExpr exprA, exprB, exprC;
    {
        SQLExprParser parser = new MySqlExprParser(sql);
        exprA = (MySqlIntervalExpr) parser.expr();
    }
    {
        SQLExprParser parser = new MySqlExprParser(sql);
        exprB = (MySqlIntervalExpr) parser.expr();
    }
    {
        SQLExprParser parser = new MySqlExprParser(sql_c);
        exprC = (MySqlIntervalExpr) parser.expr();
    }
    Assert.assertEquals(exprA, exprB);
    Assert.assertNotEquals(exprA, exprC);
    Assert.assertTrue(exprA.equals(exprA));
    Assert.assertFalse(exprA.equals(new Object()));
    Assert.assertEquals(exprA.hashCode(), exprB.hashCode());
    Assert.assertEquals(new MySqlIntervalExpr(), new MySqlIntervalExpr());
    Assert.assertEquals(new MySqlIntervalExpr().hashCode(), new MySqlIntervalExpr().hashCode());
}
Also used : MySqlIntervalExpr(com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr) MySqlExprParser(com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser) SQLExprParser(com.alibaba.druid.sql.parser.SQLExprParser)

Example 8 with SQLExprParser

use of com.alibaba.druid.sql.parser.SQLExprParser in project druid by alibaba.

the class EqualTest_aggreate_over method test_exits.

public void test_exits() throws Exception {
    String sql = "count(*) OVER (ORDER BY f1)";
    String sql_c = "count(id) OVER (ORDER BY f2)";
    SQLAggregateExpr exprA, exprB, exprC;
    {
        SQLExprParser parser = new SQLExprParser(sql);
        exprA = (SQLAggregateExpr) parser.expr();
    }
    {
        SQLExprParser parser = new SQLExprParser(sql);
        exprB = (SQLAggregateExpr) parser.expr();
    }
    {
        SQLExprParser parser = new SQLExprParser(sql_c);
        exprC = (SQLAggregateExpr) parser.expr();
    }
    Assert.assertEquals(exprA, exprB);
    Assert.assertNotEquals(exprA, exprC);
    Assert.assertTrue(exprA.equals(exprA));
    Assert.assertFalse(exprA.equals(new Object()));
    Assert.assertEquals(exprA.hashCode(), exprB.hashCode());
    Assert.assertEquals(new SQLAggregateExpr(null), new SQLAggregateExpr(null));
    Assert.assertEquals(new SQLAggregateExpr(null).hashCode(), new SQLAggregateExpr(null).hashCode());
}
Also used : SQLAggregateExpr(com.alibaba.druid.sql.ast.expr.SQLAggregateExpr) SQLExprParser(com.alibaba.druid.sql.parser.SQLExprParser)

Aggregations

SQLExprParser (com.alibaba.druid.sql.parser.SQLExprParser)8 MySqlExprParser (com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser)3 SQLInSubQueryExpr (com.alibaba.druid.sql.ast.expr.SQLInSubQueryExpr)2 SQLOrderBy (com.alibaba.druid.sql.ast.SQLOrderBy)1 SQLAggregateExpr (com.alibaba.druid.sql.ast.expr.SQLAggregateExpr)1 SQLBinaryExpr (com.alibaba.druid.sql.ast.expr.SQLBinaryExpr)1 SQLBinaryOpExpr (com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr)1 SQLBooleanExpr (com.alibaba.druid.sql.ast.expr.SQLBooleanExpr)1 SQLIdentifierExpr (com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr)1 SQLIntegerExpr (com.alibaba.druid.sql.ast.expr.SQLIntegerExpr)1 SQLSelectOrderByItem (com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem)1 MySqlIntervalExpr (com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlIntervalExpr)1 OracleExprParser (com.alibaba.druid.sql.dialect.oracle.parser.OracleExprParser)1