mysql parser support DIV operator. issue #1526

This commit is contained in:
wenshao
2016-12-04 21:04:06 +08:00
parent 47891422c4
commit b3ca3e74b6
6 changed files with 98 additions and 5 deletions
@@ -159,17 +159,18 @@ public class SQLExprParser extends SQLParser {
}
public SQLExpr multiplicativeRest(SQLExpr expr) {
if (lexer.token() == Token.STAR) {
final Token token = lexer.token();
if (token == Token.STAR) {
lexer.nextToken();
SQLExpr rightExp = bitXor();
expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.Multiply, rightExp, getDbType());
expr = multiplicativeRest(expr);
} else if (lexer.token() == Token.SLASH) {
} else if (token == Token.SLASH) {
lexer.nextToken();
SQLExpr rightExp = bitXor();
expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.Divide, rightExp, getDbType());
expr = multiplicativeRest(expr);
} else if (lexer.token() == Token.PERCENT) {
} else if (token == Token.PERCENT) {
lexer.nextToken();
SQLExpr rightExp = bitXor();
expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.Modulus, rightExp, getDbType());