修正测试发现的bug

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@963 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-10-14 07:53:18 +00:00
parent eb3a55dc19
commit 7dc402e29d
4 changed files with 58 additions and 30 deletions
@@ -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);