@@ -1916,4 +1916,66 @@ public void testAlterTableAddFullTextIndexWithOptions() throws JSQLParserExcepti
19161916
19171917 assertSqlCanBeParsedAndDeparsed (sql );
19181918 }
1919+
1920+ @ Test
1921+ public void testAlterTableAddUnnamedIndex () throws JSQLParserException {
1922+ String sql = "ALTER TABLE employees ADD INDEX (name1, name2)" ;
1923+
1924+ Statement stmt = CCJSqlParserUtil .parse (sql );
1925+ Alter alter = (Alter ) stmt ;
1926+
1927+ assertEquals ("employees" , alter .getTable ().getFullyQualifiedName ());
1928+
1929+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
1930+ assertNotNull (alterExpressions );
1931+ assertEquals (1 , alterExpressions .size ());
1932+
1933+ AlterExpression indexExp = alterExpressions .get (0 );
1934+ assertEquals (AlterOperation .ADD , indexExp .getOperation ());
1935+
1936+ Index index = indexExp .getIndex ();
1937+ assertNotNull (index );
1938+ assertNull (index .getName ());
1939+
1940+ List <String > columnNames = index .getColumnsNames ();
1941+ assertEquals (2 , columnNames .size ());
1942+ assertEquals ("name1" , columnNames .get (0 ));
1943+ assertEquals ("name2" , columnNames .get (1 ));
1944+
1945+ assertSqlCanBeParsedAndDeparsed (sql );
1946+ }
1947+
1948+ @ Test
1949+ public void testAlterTableAddIndexWithOptions () throws JSQLParserException {
1950+ String sql = "ALTER TABLE employees ADD INDEX idx_lastname (last_name) " +
1951+ "USING BTREE KEY_BLOCK_SIZE = 16 COMMENT 'Performance tuning' VISIBLE" ;
1952+
1953+ Statement stmt = CCJSqlParserUtil .parse (sql );
1954+ Alter alter = (Alter ) stmt ;
1955+
1956+ assertEquals ("employees" , alter .getTable ().getFullyQualifiedName ());
1957+
1958+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
1959+ assertNotNull (alterExpressions );
1960+ assertEquals (1 , alterExpressions .size ());
1961+
1962+ AlterExpression indexExp = alterExpressions .get (0 );
1963+ assertEquals (AlterOperation .ADD , indexExp .getOperation ());
1964+
1965+ Index index = indexExp .getIndex ();
1966+ assertNotNull (index );
1967+ assertEquals ("INDEX" , index .getIndexKeyword ()); // 명시적 "INDEX" 키워드
1968+ assertEquals ("idx_lastname" , index .getName ());
1969+ assertEquals ("last_name" , index .getColumnsNames ().get (0 ));
1970+
1971+ List <String > indexSpec = index .getIndexSpec ();
1972+ assertNotNull (indexSpec );
1973+ assertEquals (3 , indexSpec .size ());
1974+ assertEquals ("USING BTREE" , indexSpec .get (0 ));
1975+ assertEquals ("KEY_BLOCK_SIZE=16" , indexSpec .get (1 ));
1976+ assertEquals ("COMMENT 'Performance tuning'" , indexSpec .get (2 ));
1977+ assertEquals ("VISIBLE" , indexSpec .get (3 ));
1978+
1979+ assertSqlCanBeParsedAndDeparsed (sql );
1980+ }
19191981}
0 commit comments