mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved odps sql parser.
This commit is contained in:
@@ -179,6 +179,8 @@ public class SQLJoinTableSource extends SQLTableSourceImpl implements SQLReplace
|
||||
NATURAL_JOIN("NATURAL JOIN"), //
|
||||
NATURAL_INNER_JOIN("NATURAL INNER JOIN"), //
|
||||
LEFT_OUTER_JOIN("LEFT JOIN"), //
|
||||
LEFT_SEMI_JOIN("LEFT SEMI JOIN"), //
|
||||
LEFT_ANTI_JOIN("LEFT ANTI JOIN"), //
|
||||
RIGHT_OUTER_JOIN("RIGHT JOIN"), //
|
||||
FULL_OUTER_JOIN("FULL JOIN"),//
|
||||
STRAIGHT_JOIN("STRAIGHT_JOIN"), //
|
||||
|
||||
@@ -471,12 +471,22 @@ public class SQLSelectParser extends SQLParser {
|
||||
|
||||
if (lexer.token() == Token.LEFT) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() == Token.OUTER) {
|
||||
|
||||
if (identifierEquals("SEMI")) {
|
||||
lexer.nextToken();
|
||||
joinType = SQLJoinTableSource.JoinType.LEFT_SEMI_JOIN;
|
||||
} else if (identifierEquals("ANTI")) {
|
||||
lexer.nextToken();
|
||||
joinType = SQLJoinTableSource.JoinType.LEFT_ANTI_JOIN;
|
||||
} else if (lexer.token() == Token.OUTER) {
|
||||
lexer.nextToken();
|
||||
joinType = SQLJoinTableSource.JoinType.LEFT_OUTER_JOIN;
|
||||
} else {
|
||||
joinType = SQLJoinTableSource.JoinType.LEFT_OUTER_JOIN;
|
||||
}
|
||||
|
||||
accept(Token.JOIN);
|
||||
joinType = SQLJoinTableSource.JoinType.LEFT_OUTER_JOIN;
|
||||
|
||||
} else if (lexer.token() == Token.RIGHT) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() == Token.OUTER) {
|
||||
|
||||
Reference in New Issue
Block a user