@@ -1837,4 +1837,45 @@ public void testAlterTableKeyBlockSizeAlgorithmLock() throws JSQLParserException
18371837
18381838 assertSqlCanBeParsedAndDeparsed (sql );
18391839 }
1840+
1841+ @ Test
1842+ public void testAlterTableAddFullTextIndex () throws JSQLParserException {
1843+ String sql = "ALTER TABLE yum_table_myisam ADD FULLTEXT (name)" ;
1844+ Statement stmt = CCJSqlParserUtil .parse (sql );
1845+
1846+ Alter alter = (Alter ) stmt ;
1847+ assertEquals ("yum_table_myisam" , alter .getTable ().getFullyQualifiedName ());
1848+
1849+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
1850+ assertNotNull (alterExpressions );
1851+ assertEquals (1 , alterExpressions .size ());
1852+
1853+ AlterExpression indexExp = alterExpressions .get (0 );
1854+ assertEquals (AlterOperation .ADD , indexExp .getOperation ());
1855+ assertEquals ("FULLTEXT" , indexExp .getIndex ().getType ());
1856+ assertEquals ("name" , indexExp .getIndex ().getColumnsNames ().get (0 ));
1857+
1858+ assertSqlCanBeParsedAndDeparsed (sql );
1859+ }
1860+
1861+ @ Test
1862+ public void testAlterTableAddSpatialIndex () throws JSQLParserException {
1863+ String sql = "ALTER TABLE places ADD SPATIAL KEY sp_idx_location(location)" ;
1864+ Statement stmt = CCJSqlParserUtil .parse (sql );
1865+
1866+ Alter alter = (Alter ) stmt ;
1867+ assertEquals ("places" , alter .getTable ().getFullyQualifiedName ());
1868+
1869+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
1870+ assertNotNull (alterExpressions );
1871+ assertEquals (1 , alterExpressions .size ());
1872+
1873+ AlterExpression indexExp = alterExpressions .get (0 );
1874+ assertEquals (AlterOperation .ADD , indexExp .getOperation ());
1875+ assertEquals ("SPATIAL" , indexExp .getIndex ().getType ());
1876+ assertEquals ("sp_idx_location" , indexExp .getIndex ().getName ());
1877+ assertEquals ("location" , indexExp .getIndex ().getColumnsNames ().get (0 ));
1878+
1879+ assertSqlCanBeParsedAndDeparsed (sql );
1880+ }
18401881}
0 commit comments