@@ -1188,6 +1188,30 @@ public void testIssue2090LockExclusive() throws JSQLParserException {
11881188 assertEquals ("EXCLUSIVE" , lockExp .getLockOption ());
11891189 }
11901190
1191+ @ Test
1192+ public void testIssue2091ModifyColumnCharacterSet () throws JSQLParserException {
1193+ String sql = "ALTER TABLE `jobs`.`runs` MODIFY COLUMN triggerInfo text "
1194+ + "CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL" ;
1195+
1196+ Statement stmt = CCJSqlParserUtil .parse (sql );
1197+ assertTrue (stmt instanceof Alter );
1198+
1199+ Alter alter = (Alter ) stmt ;
1200+ assertEquals ("`jobs`.`runs`" , alter .getTable ().getFullyQualifiedName ());
1201+
1202+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
1203+ assertNotNull (alterExpressions );
1204+ assertEquals (1 , alterExpressions .size ());
1205+
1206+ ColumnDataType column = alterExpressions .get (0 ).getColDataTypeList ().get (0 );
1207+ assertEquals ("triggerInfo" , column .getColumnName ());
1208+ assertEquals ("text CHARACTER SET utf8mb4" , column .getColDataType ().toString ());
1209+ assertEquals (Arrays .asList ("COLLATE" , "utf8mb4_unicode_ci" , "NOT" , "NULL" ),
1210+ column .getColumnSpecs ());
1211+
1212+ assertSqlCanBeParsedAndDeparsed (sql );
1213+ }
1214+
11911215 @ ParameterizedTest
11921216 @ MethodSource ("provideMySQLConvertTestCases" )
11931217 public void testIssue2089 (String sql , String expectedCharacterSet , String expectedCollation )
0 commit comments