@@ -1916,4 +1916,66 @@ public void testAlterTableAddFullTextIndexWithOptions() throws JSQLParserExcepti
1916
1916
1917
1917
assertSqlCanBeParsedAndDeparsed (sql );
1918
1918
}
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
+ }
1919
1981
}
0 commit comments