mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
Merge pull request #894 from zhangxin1988/master
fix #893 index name contains "on" keyword
This commit is contained in:
@@ -44,8 +44,8 @@ public class SimpleDdlParser {
|
||||
* http://dev.mysql.com/doc/refman/5.6/en/create-index.html
|
||||
* </pre>
|
||||
*/
|
||||
public static final String CREATE_INDEX_PATTERN = "^\\s*CREATE\\s*(UNIQUE)?(FULLTEXT)?(SPATIAL)?\\s*INDEX\\s*(.*?)\\s*ON\\s*(.*?)$";
|
||||
public static final String DROP_INDEX_PATTERN = "^\\s*DROP\\s*INDEX\\s*(.*?)\\s*ON\\s*(.*?)$";
|
||||
public static final String CREATE_INDEX_PATTERN = "^\\s*CREATE\\s*(UNIQUE)?(FULLTEXT)?(SPATIAL)?\\s*INDEX\\s*(.*?)\\s+ON\\s+(.*?)$";
|
||||
public static final String DROP_INDEX_PATTERN = "^\\s*DROP\\s*INDEX\\s*(.*?)\\s+ON\\s+(.*?)$";
|
||||
|
||||
public static DdlResult parse(String queryString, String schmeaName) {
|
||||
queryString = removeComment(queryString); // 去除/* */的sql注释内容
|
||||
|
||||
@@ -225,5 +225,19 @@ public class SimpleDdlParserTest {
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertEquals("retl", result.getSchemaName());
|
||||
Assert.assertEquals("retl_mark", result.getTableName());
|
||||
|
||||
//test index name contains 'on' -- version
|
||||
queryString = "create index schema_new_index_version_s_idx on q_contract_account (contract_id,main_contract_id)";
|
||||
result = SimpleDdlParser.parse(queryString, "retl");
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertEquals("retl", result.getSchemaName());
|
||||
Assert.assertEquals("q_contract_account", result.getTableName());
|
||||
|
||||
queryString = "drop index schema_new_index_version_s_idx on q_contract_account";
|
||||
result = SimpleDdlParser.parse(queryString, "retl");
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertEquals("retl", result.getSchemaName());
|
||||
Assert.assertEquals("q_contract_account", result.getTableName());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user