improve sql parser

This commit is contained in:
wenshao
2013-04-27 19:11:56 +08:00
parent 53984d9358
commit ea6a85e8a1
2 changed files with 88 additions and 5 deletions
@@ -710,18 +710,27 @@ public class MySqlExprParser extends SQLExprParser {
public MySqlUnique parseUnique() {
accept(Token.UNIQUE);
if (lexer.token() == Token.KEY) {
lexer.nextToken();
}
MySqlUnique primaryKey = new MySqlUnique();
MySqlUnique unique = new MySqlUnique();
if (identifierEquals("USING")) {
lexer.nextToken();
primaryKey.setIndexType(lexer.stringVal());
unique.setIndexType(lexer.stringVal());
lexer.nextToken();
}
if (lexer.token() != Token.LPAREN) {
SQLName name = name();
unique.setName(name);
}
accept(Token.LPAREN);
for (;;) {
primaryKey.getColumns().add(this.expr());
unique.getColumns().add(this.expr());
if (!(lexer.token() == (Token.COMMA))) {
break;
} else {
@@ -730,7 +739,7 @@ public class MySqlExprParser extends SQLExprParser {
}
accept(Token.RPAREN);
return primaryKey;
return unique;
}
public MySqlForeignKey parseForeignKey() {