mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improve WallFilter, support pg, and fixed MySqlCreateTableParser error
This commit is contained in:
@@ -279,7 +279,6 @@ public class ConfigFilter extends FilterAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
private InputStream getFileAsStream(String filePath) throws FileNotFoundException {
|
||||
InputStream inStream = null;
|
||||
File file = new File(filePath);
|
||||
|
||||
@@ -164,6 +164,26 @@ public class MySqlCreateTableParser extends SQLCreateTableParser {
|
||||
throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
|
||||
}
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.DEFAULT) {
|
||||
lexer.nextToken();
|
||||
if (identifierEquals("CHARACTER")) {
|
||||
lexer.nextToken();
|
||||
accept(Token.SET);
|
||||
if (lexer.token() == Token.EQ) {
|
||||
lexer.nextToken();
|
||||
}
|
||||
stmt.getTableOptions().put("CHARACTER SET", lexer.stringVal());
|
||||
lexer.nextToken();
|
||||
} else if (identifierEquals("CHARSET")) {
|
||||
lexer.nextToken();
|
||||
if (lexer.token() == Token.EQ) {
|
||||
lexer.nextToken();
|
||||
}
|
||||
stmt.getTableOptions().put("CHARACTER SET", lexer.stringVal());
|
||||
lexer.nextToken();
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -17,10 +17,20 @@ package com.alibaba.druid.wall;
|
||||
|
||||
import com.alibaba.druid.wall.spi.MySqlWallProvider;
|
||||
import com.alibaba.druid.wall.spi.OracleWallProvider;
|
||||
import com.alibaba.druid.wall.spi.PGWallProvider;
|
||||
import com.alibaba.druid.wall.spi.SQLServerWallProvider;
|
||||
|
||||
public class WallUtils {
|
||||
public static boolean isValidatePostgres(String sql) {
|
||||
PGWallProvider provider = new PGWallProvider();
|
||||
return provider.checkValid(sql);
|
||||
}
|
||||
|
||||
public static boolean isValidatePostgres(String sql, WallConfig config) {
|
||||
PGWallProvider provider = new PGWallProvider(config);
|
||||
return provider.checkValid(sql);
|
||||
}
|
||||
|
||||
public static boolean isValidateMySql(String sql) {
|
||||
MySqlWallProvider provider = new MySqlWallProvider();
|
||||
return provider.checkValid(sql);
|
||||
|
||||
Reference in New Issue
Block a user