mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
fixed bug & testcase
This commit is contained in:
@@ -56,6 +56,11 @@ public class MySqlLexer extends Lexer {
|
||||
|
||||
// for oceanbase & mysql 5.7
|
||||
map.put("PARTITION", Token.PARTITION);
|
||||
|
||||
map.put("CONTINUE", Token.CONTINUE);
|
||||
map.put("UNDO", Token.UNDO);
|
||||
map.put("SQLSTATE", Token.SQLSTATE);
|
||||
map.put("CONDITION", Token.CONDITION);
|
||||
|
||||
DEFAULT_MYSQL_KEYWORDS = new Keywords(map);
|
||||
}
|
||||
|
||||
@@ -3253,7 +3253,7 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
{
|
||||
lexer.reset(markBp, markChar, Token.DECLARE);
|
||||
statementList.add(this.parseCursorDeclare());
|
||||
} else if (lexer.token() == Token.HANDLER) {
|
||||
} else if (identifierEquals("HANDLER")) {
|
||||
//DECLARE异常处理程序 [add by zhujun 2016-04-16]
|
||||
lexer.reset(markBp, markChar, Token.DECLARE);
|
||||
statementList.add(this.parseDeclareHandler());
|
||||
@@ -3749,7 +3749,7 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
}
|
||||
lexer.nextToken();
|
||||
|
||||
accept(Token.HANDLER);
|
||||
acceptIdentifier("HANDLER");
|
||||
|
||||
accept(Token.FOR);
|
||||
|
||||
@@ -3759,7 +3759,7 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
|
||||
if (tokenName.equalsIgnoreCase("NOT")) {//for 'NOT FOUND'
|
||||
lexer.nextToken();
|
||||
accept(Token.FOUND);
|
||||
acceptIdentifier("HANDLE");
|
||||
condition.setType(ConditionType.SYSTEM);
|
||||
condition.setValue("NOT FOUND");
|
||||
|
||||
@@ -3769,11 +3769,11 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
//condition.setValue(lexer.stringVal());
|
||||
//lexer.nextToken();
|
||||
condition.setValue(exprParser.name().toString());
|
||||
} else if(lexer.token() == Token.SQLEXCEPTION) { //for SQLEXCEPTION
|
||||
} else if(identifierEquals("SQLEXCEPTION")) { //for SQLEXCEPTION
|
||||
condition.setType(ConditionType.SYSTEM);
|
||||
condition.setValue(lexer.stringVal());
|
||||
lexer.nextToken();
|
||||
} else if(lexer.token() == Token.SQLWARNING) { //for SQLWARNING
|
||||
} else if(identifierEquals("SQLWARNING")) { //for SQLWARNING
|
||||
condition.setType(ConditionType.SYSTEM);
|
||||
condition.setValue(lexer.stringVal());
|
||||
lexer.nextToken();
|
||||
|
||||
@@ -150,14 +150,6 @@ public class Keywords {
|
||||
map.put("FETCH", Token.FETCH);
|
||||
map.put("OUT", Token.OUT);
|
||||
map.put("INOUT", Token.INOUT);
|
||||
map.put("HANDLER", Token.HANDLER);
|
||||
map.put("CONTINUE", Token.CONTINUE);
|
||||
map.put("UNDO", Token.UNDO);
|
||||
map.put("SQLSTATE", Token.SQLSTATE);
|
||||
map.put("SQLWARNING", Token.SQLWARNING);
|
||||
map.put("SQLEXCEPTION", Token.SQLEXCEPTION);
|
||||
map.put("FOUND", Token.FOUND);
|
||||
map.put("CONDITION", Token.CONDITION);
|
||||
|
||||
DEFAULT_KEYWORDS = new Keywords(map);
|
||||
}
|
||||
|
||||
@@ -138,13 +138,9 @@ public enum Token {
|
||||
CLOSE("CLOSE"),
|
||||
OUT("OUT"),
|
||||
INOUT("INOUT"),
|
||||
HANDLER("HANDLER"),
|
||||
EXIT("EXIT"),
|
||||
UNDO("UNDO"),
|
||||
SQLSTATE("SQLSTATE"),
|
||||
SQLWARNING("SQLWARNING"),
|
||||
SQLEXCEPTION("SQLEXCEPTION"),
|
||||
FOUND("FOUND"),
|
||||
CONDITION("CONDITION"),
|
||||
|
||||
//postgresql
|
||||
|
||||
@@ -760,14 +760,12 @@ public class SchemaStatVisitor extends SQLASTVisitorAdapter {
|
||||
Map<String, String> aliasMap = getAliasMap();
|
||||
|
||||
if (aliasMap != null) {
|
||||
if (aliasMap.containsKey(name)
|
||||
&& aliasMap.get(name) != null) {
|
||||
if (aliasMap.containsKey(name)) {
|
||||
return aliasMap.get(name);
|
||||
}
|
||||
|
||||
String name_lcase = name.toLowerCase();
|
||||
if (name_lcase != name && aliasMap.containsKey(name_lcase)
|
||||
&& aliasMap.get(name_lcase) != null) {
|
||||
if (name_lcase != name && aliasMap.containsKey(name_lcase)) {
|
||||
return aliasMap.get(name_lcase);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user