mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
修正测试发现的bug
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@963 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -497,50 +497,50 @@ public class OracleExprParser extends SQLExprParser {
|
||||
lexer.nextToken();
|
||||
|
||||
|
||||
OracleIntervalType type = OracleIntervalType.valueOf(lexer.token().name);
|
||||
interval.setType(type);
|
||||
OracleIntervalType type = OracleIntervalType.valueOf(lexer.token().name);
|
||||
interval.setType(type);
|
||||
lexer.nextToken();
|
||||
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() != Token.LITERAL_INT) {
|
||||
throw new ParserException("syntax error");
|
||||
}
|
||||
interval.setPrecision(lexer.integerValue().intValue());
|
||||
lexer.nextToken();
|
||||
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
if (lexer.token() == Token.COMMA) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() != Token.LITERAL_INT) {
|
||||
throw new ParserException("syntax error");
|
||||
}
|
||||
interval.setPrecision(lexer.integerValue().intValue());
|
||||
interval.setFactionalSecondsPrecision(lexer.integerValue().intValue());
|
||||
lexer.nextToken();
|
||||
|
||||
if (lexer.token() == Token.COMMA) {
|
||||
}
|
||||
accept(Token.RPAREN);
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.TO) {
|
||||
accept(Token.TO);
|
||||
if (lexer.token() == Token.SECOND) {
|
||||
lexer.nextToken();
|
||||
interval.setToType(OracleIntervalType.SECOND);
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() != Token.LITERAL_INT) {
|
||||
throw new ParserException("syntax error");
|
||||
}
|
||||
interval.setFactionalSecondsPrecision(lexer.integerValue().intValue());
|
||||
interval.setToFactionalSecondsPrecision(lexer.integerValue().intValue());
|
||||
lexer.nextToken();
|
||||
accept(Token.RPAREN);
|
||||
}
|
||||
accept(Token.RPAREN);
|
||||
} else {
|
||||
interval.setToType(OracleIntervalType.MONTH);
|
||||
lexer.nextToken();
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.TO) {
|
||||
accept(Token.TO);
|
||||
if (lexer.token() == Token.SECOND) {
|
||||
lexer.nextToken();
|
||||
interval.setToType(OracleIntervalType.SECOND);
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() != Token.LITERAL_INT) {
|
||||
throw new ParserException("syntax error");
|
||||
}
|
||||
interval.setToFactionalSecondsPrecision(lexer.integerValue().intValue());
|
||||
lexer.nextToken();
|
||||
accept(Token.RPAREN);
|
||||
}
|
||||
} else {
|
||||
interval.setToType(OracleIntervalType.MONTH);
|
||||
lexer.nextToken();
|
||||
}
|
||||
}
|
||||
|
||||
return interval;
|
||||
}
|
||||
|
||||
return interval;
|
||||
}
|
||||
|
||||
public SQLExpr relationalRest(SQLExpr expr) throws ParserException {
|
||||
|
||||
@@ -99,6 +99,7 @@ public class OracleLexer extends Lexer {
|
||||
map.put("DAY", Token.DAY);
|
||||
map.put("YEAR", Token.YEAR);
|
||||
map.put("MONTH", Token.MONTH);
|
||||
map.put("MINUTE", Token.MINUTE);
|
||||
map.put("SECOND", Token.SECOND);
|
||||
map.put("TO", Token.TO);
|
||||
map.put("MODEL", Token.MODEL);
|
||||
|
||||
Reference in New Issue
Block a user