mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
@@ -281,6 +281,11 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
char markChar = lexer.current();
|
||||
int markBp = lexer.bp();
|
||||
|
||||
List<String> comments = null;
|
||||
if (lexer.isKeepComments() && lexer.hasComment()) {
|
||||
comments = lexer.readAndResetComments();
|
||||
}
|
||||
|
||||
accept(Token.CREATE);
|
||||
|
||||
boolean replace = false;
|
||||
@@ -299,6 +304,11 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
MySqlCreateTableParser parser = new MySqlCreateTableParser(this.exprParser);
|
||||
MySqlCreateTableStatement stmt = parser.parseCrateTable(false);
|
||||
stmt.setHints(hints);
|
||||
|
||||
if (comments != null) {
|
||||
stmt.addBeforeComment(comments);
|
||||
}
|
||||
|
||||
return stmt;
|
||||
}
|
||||
|
||||
|
||||
@@ -463,7 +463,12 @@ public class Lexer {
|
||||
token = Token.QUESQUES;
|
||||
} else if (ch == '|' && JdbcConstants.POSTGRESQL.equals(dbType)) {
|
||||
scanChar();
|
||||
token = Token.QUESBAR;
|
||||
if (ch == '|') {
|
||||
unscan();
|
||||
token = Token.QUES;
|
||||
} else {
|
||||
token = Token.QUESBAR;
|
||||
}
|
||||
} else if (ch == '&' && JdbcConstants.POSTGRESQL.equals(dbType)) {
|
||||
scanChar();
|
||||
token = Token.QUESAMP;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class SQLParserUtils {
|
||||
|
||||
public static SQLStatementParser createSQLStatementParser(String sql, String dbType) {
|
||||
boolean keepComments;
|
||||
if (JdbcConstants.ODPS.equals(dbType)) {
|
||||
if (JdbcConstants.ODPS.equals(dbType) || JdbcConstants.MYSQL.equals(dbType)) {
|
||||
keepComments = true;
|
||||
} else {
|
||||
keepComments = false;
|
||||
|
||||
Reference in New Issue
Block a user