diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java index f6244c205d..4905196e0c 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java @@ -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); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java index 5998be5b3f..506ba8a937 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java @@ -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(); diff --git a/src/main/java/com/alibaba/druid/sql/parser/Keywords.java b/src/main/java/com/alibaba/druid/sql/parser/Keywords.java index 70be95c76c..f125b4a3d7 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/Keywords.java +++ b/src/main/java/com/alibaba/druid/sql/parser/Keywords.java @@ -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); } diff --git a/src/main/java/com/alibaba/druid/sql/parser/Token.java b/src/main/java/com/alibaba/druid/sql/parser/Token.java index b3b8097e8b..6231e18633 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/Token.java +++ b/src/main/java/com/alibaba/druid/sql/parser/Token.java @@ -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 diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java index 54dc56d25a..9839bf9bc7 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java @@ -760,14 +760,12 @@ public class SchemaStatVisitor extends SQLASTVisitorAdapter { Map 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); } diff --git a/src/test/java/com/alibaba/druid/bvt/filter/wall/WallPerformanceTest_1.java b/src/test/java/com/alibaba/druid/pvt/filter/wall/WallPerformanceTest_1.java similarity index 99% rename from src/test/java/com/alibaba/druid/bvt/filter/wall/WallPerformanceTest_1.java rename to src/test/java/com/alibaba/druid/pvt/filter/wall/WallPerformanceTest_1.java index 9152d53b3f..4bcc8f2f95 100644 --- a/src/test/java/com/alibaba/druid/bvt/filter/wall/WallPerformanceTest_1.java +++ b/src/test/java/com/alibaba/druid/pvt/filter/wall/WallPerformanceTest_1.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.alibaba.druid.bvt.filter.wall; +package com.alibaba.druid.pvt.filter.wall; import junit.framework.TestCase; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest.java b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest.java similarity index 98% rename from src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest.java rename to src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest.java index 794785c3a8..419cc39a77 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest.java @@ -1,4 +1,4 @@ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.sql.Connection; import java.sql.SQLException; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest1.java b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest1.java similarity index 99% rename from src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest1.java rename to src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest1.java index eef9c54c64..ecc5e26b63 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest1.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest1.java @@ -1,4 +1,4 @@ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.lang.reflect.Field; import java.sql.Connection; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest2.java b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest2.java similarity index 99% rename from src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest2.java rename to src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest2.java index 25cb65394b..9fd4df0b36 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest2.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest2.java @@ -1,4 +1,4 @@ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.lang.reflect.Field; import java.sql.Connection; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest3.java b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest3.java similarity index 99% rename from src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest3.java rename to src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest3.java index 10d8cf6f78..bad0c6c0f6 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/AsyncCloseTest3.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/AsyncCloseTest3.java @@ -1,4 +1,4 @@ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.lang.management.ManagementFactory; import java.lang.reflect.Field; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/Large10ConcurrentTest.java b/src/test/java/com/alibaba/druid/pvt/pool/Large10ConcurrentTest.java similarity index 99% rename from src/test/java/com/alibaba/druid/bvt/pool/Large10ConcurrentTest.java rename to src/test/java/com/alibaba/druid/pvt/pool/Large10ConcurrentTest.java index 5f3564202b..3b1db859e4 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/Large10ConcurrentTest.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/Large10ConcurrentTest.java @@ -1,4 +1,4 @@ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.lang.management.ManagementFactory; import java.sql.Connection; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java b/src/test/java/com/alibaba/druid/pvt/pool/Large10KTest.java similarity index 98% rename from src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java rename to src/test/java/com/alibaba/druid/pvt/pool/Large10KTest.java index bec3937eb9..9cc8a57153 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/Large10KTest.java @@ -1,4 +1,4 @@ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.lang.management.ManagementFactory; import java.sql.Connection; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestConcurrent.java b/src/test/java/com/alibaba/druid/pvt/pool/TestConcurrent.java similarity index 96% rename from src/test/java/com/alibaba/druid/bvt/pool/TestConcurrent.java rename to src/test/java/com/alibaba/druid/pvt/pool/TestConcurrent.java index a6ca2780bd..e48ede3b80 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/TestConcurrent.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/TestConcurrent.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.sql.Connection; import java.sql.ResultSet; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent.java b/src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent.java similarity index 96% rename from src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent.java rename to src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent.java index a63aec8f58..bfd418aa43 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.sql.Connection; import java.util.concurrent.CountDownLatch; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent_MaxActive.java b/src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent_MaxActive.java similarity index 96% rename from src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent_MaxActive.java rename to src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent_MaxActive.java index c088249055..7fa28250bf 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent_MaxActive.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent_MaxActive.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.sql.Connection; import java.util.Random; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent_Starvation.java b/src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent_Starvation.java similarity index 99% rename from src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent_Starvation.java rename to src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent_Starvation.java index 0fe8d1b52b..ebb2584418 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/TestIdle3_Concurrent_Starvation.java +++ b/src/test/java/com/alibaba/druid/pvt/pool/TestIdle3_Concurrent_Starvation.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.alibaba.druid.bvt.pool; +package com.alibaba.druid.pvt.pool; import java.sql.Connection; import java.sql.PreparedStatement;