mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
mysql sql parser 'create database' support charset/collate
This commit is contained in:
@@ -2705,6 +2705,21 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
if (lexer.token() == Token.HINT) {
|
||||
stmt.setHints(this.exprParser.parseHints());
|
||||
}
|
||||
|
||||
if (identifierEquals("CHARACTER")) {
|
||||
lexer.nextToken();
|
||||
accept(Token.SET);
|
||||
String charset = lexer.stringVal();
|
||||
accept(Token.IDENTIFIER);
|
||||
stmt.setCharacterSet(charset);
|
||||
}
|
||||
|
||||
if (identifierEquals("COLLATE")) {
|
||||
lexer.nextToken();
|
||||
String collate = lexer.stringVal();
|
||||
accept(Token.IDENTIFIER);
|
||||
stmt.setCollate(collate);
|
||||
}
|
||||
|
||||
return stmt;
|
||||
}
|
||||
|
||||
@@ -1609,6 +1609,17 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Printab
|
||||
print0(ucase ? "IF NOT EXISTS " : "if not exists ");
|
||||
}
|
||||
x.getName().accept(this);
|
||||
|
||||
if (x.getCharacterSet() != null) {
|
||||
print0(ucase ? " CHARACTER SET " : " character set ");
|
||||
print0(x.getCharacterSet());
|
||||
}
|
||||
|
||||
if (x.getCollate() != null) {
|
||||
print0(ucase ? " COLLATE " : " collate ");
|
||||
print0(x.getCollate());
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user