From 563ba6dd3bb3e83374489ba84fed28ce23858096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Thu, 26 Apr 2012 11:01:59 +0800 Subject: [PATCH] mysql support operator '||' --- .../dialect/mysql/parser/MySqlExprParser.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java index bda8de83ac..588ea7e6e9 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java @@ -475,4 +475,25 @@ public class MySqlExprParser extends SQLExprParser { return column; } + + public SQLExpr orRest(SQLExpr expr) throws ParserException { + + for (;;) { + if (lexer.token() == Token.OR || lexer.token() == Token.BARBAR) { + lexer.nextToken(); + SQLExpr rightExp = and(); + + expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.BooleanOr, rightExp); + } else if (lexer.token() == Token.XOR) { + lexer.nextToken(); + SQLExpr rightExp = and(); + + expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.BooleanXor, rightExp); + } else { + break; + } + } + + return expr; + } }