Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt
Original file line number Diff line number Diff line change
Expand Up @@ -9116,10 +9116,11 @@ CreateTable CreateTable(boolean isUsingOrReplace):
LOOKAHEAD(3) (
{
tk=null;
tk3=null;
idxSpec.clear();
}
[ tk=<K_UNIQUE> ]
[ tk3=<K_FULLTEXT> ] tk2=<K_KEY>
[ tk3=<K_FULLTEXT> | tk3=<K_SPATIAL> ] tk2=<K_KEY>
sk3=RelObjectName()
colNames = ColumnNamesWithParamsList()
( parameter=CreateParameter() { idxSpec.addAll(parameter); } )*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,31 @@ public void testMySqlCreateTableWithTextIndexes() throws JSQLParserException {
"CREATE TABLE table2 (id INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, name TEXT, url TEXT, created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), FULLTEXT KEY idx_table2_name (name)) ENGINE = InnoDB AUTO_INCREMENT = 7334 DEFAULT CHARSET = utf8");
}

@Test
public void testMySqlCreateTableWithSpatialIndex() throws JSQLParserException {
assertSqlCanBeParsedAndDeparsed(
"CREATE TABLE places (id INT NOT NULL, location GEOMETRY NOT NULL, SPATIAL KEY sp_idx_location (location))");
}

@Test
public void testMySqlCreateTableIssue2367()
throws JSQLParserException {
String sql = "CREATE TABLE test (\n"
+ "id int(11) NOT NULL COMMENT 'data id',\n"
+ "code varchar(100) NOT NULL COMMENT 'code',\n"
+ "name varchar(300) DEFAULT NULL COMMENT 'name',\n"
+ "geo geometry NOT NULL,\n"
+ "PRIMARY KEY (id),\n"
+ "UNIQUE KEY index_code (code) USING HASH COMMENT 'unique index on code',\n"
+ "UNIQUE KEY inx_code_name (code,name) USING BTREE COMMENT 'unique index on code and name',\n"
+ "UNIQUE KEY inx_id_code_name (id,code,name) USING BTREE COMMENT 'index 1',\n"
+ "SPATIAL KEY SPATIAL_geo (geo),\n"
+ "KEY NORMAL_name (name) COMMENT 'normal index',\n"
+ "FULLTEXT KEY fulltext_name (name)\n"
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='test table'";
assertSqlCanBeParsedAndDeparsed(sql);
}

@Test
public void testCreateTableWithCheck() throws JSQLParserException {
assertSqlCanBeParsedAndDeparsed(
Expand Down