bug fixed for sql parser

This commit is contained in:
温少
2012-03-07 14:31:34 +08:00
parent ee7ea7cd8a
commit e5574d7a7d
36 changed files with 1852 additions and 69 deletions
@@ -59,7 +59,6 @@ import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
import com.alibaba.druid.sql.ast.statement.SQLPrimaryKey;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OraclePrimaryKey;
public class SQLExprParser extends SQLParser {
@@ -95,7 +95,7 @@ public class SQLParser {
lexer.nextToken();
} else if (lexer.token() == Token.YEAR || lexer.token() == Token.DAY || lexer.token() == Token.TIME
|| lexer.token() == Token.MONTH || lexer.token() == Token.CASE || lexer.token() == Token.AT
|| lexer.token() == Token.TIMESTAMP) {
|| lexer.token() == Token.TIMESTAMP || lexer.token() == Token.LOG) {
alias = lexer.token.name();
lexer.nextToken();
}
@@ -202,6 +202,10 @@ public class SQLStatementParser extends SQLParser {
SQLName tableName = this.exprParser.name();
insertStatement.setTableName(tableName);
if (lexer.token() == Token.LITERAL_ALIAS) {
insertStatement.setAlias(as());
}
parseInsert0_hinits(insertStatement);
if (lexer.token() == Token.IDENTIFIER) {
@@ -288,11 +292,17 @@ public class SQLStatementParser extends SQLParser {
return createTableParser.parseCrateTable(false);
} else if (token == Token.INDEX || token == Token.UNIQUE) {
return parseCreateIndex(false);
} else if (identifierEquals("SEQUENCE")) {
return parseCreateSequence(false);
}
throw new ParserException("TODO " + lexer.token());
}
public SQLStatement parseCreateSequence(boolean acceptCreate) {
throw new ParserException("TODO " + lexer.token());
}
public SQLStatement parseCreateIndex(boolean acceptCreate) {
throw new ParserException("TODO " + lexer.token());
}