mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sqlserver sql parser. fixed issue #1306
This commit is contained in:
+11
-8
@@ -198,16 +198,19 @@ public class SQLServerExprParser extends SQLExprParser {
|
||||
public SQLColumnDefinition parseColumnRest(SQLColumnDefinition column) {
|
||||
if (lexer.token() == Token.IDENTITY) {
|
||||
lexer.nextToken();
|
||||
accept(Token.LPAREN);
|
||||
|
||||
SQLIntegerExpr seed = (SQLIntegerExpr) this.primary();
|
||||
accept(Token.COMMA);
|
||||
SQLIntegerExpr increment = (SQLIntegerExpr) this.primary();
|
||||
accept(Token.RPAREN);
|
||||
|
||||
SQLColumnDefinition.Identity identity = new SQLColumnDefinition.Identity();
|
||||
identity.setSeed((Integer) seed.getNumber());
|
||||
identity.setIncrement((Integer) increment.getNumber());
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
lexer.nextToken();
|
||||
|
||||
SQLIntegerExpr seed = (SQLIntegerExpr) this.primary();
|
||||
accept(Token.COMMA);
|
||||
SQLIntegerExpr increment = (SQLIntegerExpr) this.primary();
|
||||
accept(Token.RPAREN);
|
||||
|
||||
identity.setSeed((Integer) seed.getNumber());
|
||||
identity.setIncrement((Integer) increment.getNumber());
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.NOT) {
|
||||
lexer.nextToken();
|
||||
|
||||
@@ -1014,11 +1014,14 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Printab
|
||||
|
||||
@Override
|
||||
public boolean visit(SQLColumnDefinition.Identity x) {
|
||||
print0(ucase ? "IDENTITY (" : "identity (");
|
||||
print(x.getSeed());
|
||||
print0(", ");
|
||||
print(x.getIncrement());
|
||||
print(')');
|
||||
print0(ucase ? "IDENTITY" : "identity");
|
||||
if (x.getSeed() != null) {
|
||||
print0(" (");
|
||||
print(x.getSeed());
|
||||
print0(", ");
|
||||
print(x.getIncrement());
|
||||
print(')');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user