提交 47551a41 authored 作者: noelgrandin's avatar noelgrandin

Issue 499: support MySQL "UNIQUE KEY (ID) USING BTREE" constraint syntax

上级 74c90932
...@@ -62,6 +62,7 @@ Change Log ...@@ -62,6 +62,7 @@ Change Log
</li><li>Issue 487: support the MySQL "SET foreign_key_checks = 0" command </li><li>Issue 487: support the MySQL "SET foreign_key_checks = 0" command
</li><li>Issue 490: support MySQL "USING BTREE" index declaration </li><li>Issue 490: support MySQL "USING BTREE" index declaration
</li><li>Issue 485: Database get corrupted when column is renamed for which check constraint was defined inside create table statement. </li><li>Issue 485: Database get corrupted when column is renamed for which check constraint was defined inside create table statement.
</li><li>Issue 499: support MySQL "UNIQUE KEY (ID) USING BTREE" constraint syntax
</li></ul> </li></ul>
<h2>Version 1.3.172 (2013-05-25)</h2> <h2>Version 1.3.172 (2013-05-25)</h2>
......
...@@ -5189,6 +5189,10 @@ public class Parser { ...@@ -5189,6 +5189,10 @@ public class Parser {
String indexName = readIdentifierWithSchema(); String indexName = readIdentifierWithSchema();
command.setIndex(getSchema().findIndex(session, indexName)); command.setIndex(getSchema().findIndex(session, indexName));
} }
// MySQL compatibility
if (readIf("USING")) {
read("BTREE");
}
} else if (readIf("FOREIGN")) { } else if (readIf("FOREIGN")) {
command = new AlterTableAddConstraint(session, schema, ifNotExists); command = new AlterTableAddConstraint(session, schema, ifNotExists);
command.setType(CommandInterface.ALTER_TABLE_ADD_CONSTRAINT_REFERENTIAL); command.setType(CommandInterface.ALTER_TABLE_ADD_CONSTRAINT_REFERENTIAL);
......
...@@ -267,6 +267,7 @@ public class TestCompatibility extends TestBase { ...@@ -267,6 +267,7 @@ public class TestCompatibility extends TestBase {
stat.execute("CREATE TABLE TEST_5(ID INT PRIMARY KEY) ENGINE=InnoDb auto_increment=3 default charset=UTF8"); stat.execute("CREATE TABLE TEST_5(ID INT PRIMARY KEY) ENGINE=InnoDb auto_increment=3 default charset=UTF8");
stat.execute("CREATE TABLE TEST_6(ID INT PRIMARY KEY) ENGINE=InnoDb auto_increment=3 charset=UTF8"); stat.execute("CREATE TABLE TEST_6(ID INT PRIMARY KEY) ENGINE=InnoDb auto_increment=3 charset=UTF8");
stat.execute("CREATE TABLE TEST_7(ID INT, KEY TEST_7_IDX(ID) USING BTREE)"); stat.execute("CREATE TABLE TEST_7(ID INT, KEY TEST_7_IDX(ID) USING BTREE)");
stat.execute("CREATE TABLE TEST_8(ID INT, UNIQUE KEY TEST_8_IDX(ID) USING BTREE)");
// this maps to SET REFERENTIAL_INTEGRITY TRUE/FALSE // this maps to SET REFERENTIAL_INTEGRITY TRUE/FALSE
stat.execute("SET foreign_key_checks = 0"); stat.execute("SET foreign_key_checks = 0");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论