bug fixed for oracle sql parser

This commit is contained in:
温少
2012-03-01 13:50:10 +08:00
parent 9a31f4bbbd
commit 669408e30e
19 changed files with 853 additions and 58 deletions
@@ -39,14 +39,14 @@ public class SQLCreateTableParser extends SQLDDLParser {
SQLCreateTableStatement createTable = newCreateStatement();
if (lexer.token() == Token.IDENTIFIER && lexer.stringVal().equalsIgnoreCase("GLOBAL")) {
if (identifierEquals("GLOBAL")) {
lexer.nextToken();
if (lexer.token() == Token.IDENTIFIER && lexer.stringVal().equalsIgnoreCase("TEMPORAY")) {
if (identifierEquals("TEMPORARY")) {
lexer.nextToken();
createTable.setType(SQLCreateTableStatement.Type.GLOBAL_TEMPORARY);
} else {
throw new ParserException("syntax error");
throw new ParserException("syntax error " + lexer.token() + " " + lexer.stringVal());
}
} else if (lexer.token() == Token.IDENTIFIER && lexer.stringVal().equalsIgnoreCase("LOCAL")) {
lexer.nextToken();
@@ -65,7 +65,7 @@ public class SQLCreateTableParser extends SQLDDLParser {
if (lexer.token() == Token.LPAREN) {
lexer.nextToken();
while (lexer.token() == Token.IDENTIFIER) {
while (lexer.token() == Token.IDENTIFIER || lexer.token() == Token.LITERAL_ALIAS) {
SQLColumnDefinition column = this.exprParser.parseColumn();
createTable.getTableElementList().add(column);
@@ -284,7 +284,7 @@ public class SQLStatementParser extends SQLParser {
Token token = lexer.token();
if (token == Token.TABLE) {
if (token == Token.TABLE || identifierEquals("GLOBAL")) {
SQLCreateTableParser createTableParser = getSQLCreateTableParser();
return createTableParser.parseCrateTable(false);
} else if (token == Token.INDEX) {