@@ -2364,4 +2364,46 @@ public void testAlterTableAddConstraintPrimaryKeyUsingIndexName() throws JSQLPar
23642364
23652365 assertSqlCanBeParsedAndDeparsed (sql );
23662366 }
2367+
2368+ @ Test
2369+ public void testAlterTableAddConstraintPrimaryKeyUsingIndexTablespace ()
2370+ throws JSQLParserException {
2371+ String sql =
2372+ "ALTER TABLE bfmcs.your_table ADD CONSTRAINT your_table_pk PRIMARY KEY (ID) USING INDEX TABLESPACE your_tablespace" ;
2373+ Statement stmt = CCJSqlParserUtil .parse (sql );
2374+ assertInstanceOf (Alter .class , stmt );
2375+
2376+ Alter alter = (Alter ) stmt ;
2377+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
2378+ assertNotNull (alterExpressions );
2379+ assertEquals (1 , alterExpressions .size ());
2380+
2381+ AlterExpression alterExp = alterExpressions .get (0 );
2382+ assertEquals (AlterOperation .ADD , alterExp .getOperation ());
2383+ assertEquals (Arrays .asList ("USING" , "INDEX" , "TABLESPACE" , "your_tablespace" ),
2384+ alterExp .getParameters ());
2385+
2386+ assertSqlCanBeParsedAndDeparsed (sql );
2387+ }
2388+
2389+ @ Test
2390+ public void testAlterTableAddConstraintPrimaryKeyUsingIndexNameAndTablespace ()
2391+ throws JSQLParserException {
2392+ String sql =
2393+ "ALTER TABLE your_table ADD CONSTRAINT pk_test PRIMARY KEY (ID) USING INDEX idx_test TABLESPACE ts_test" ;
2394+ Statement stmt = CCJSqlParserUtil .parse (sql );
2395+ assertInstanceOf (Alter .class , stmt );
2396+
2397+ Alter alter = (Alter ) stmt ;
2398+ List <AlterExpression > alterExpressions = alter .getAlterExpressions ();
2399+ assertNotNull (alterExpressions );
2400+ assertEquals (1 , alterExpressions .size ());
2401+
2402+ AlterExpression alterExp = alterExpressions .get (0 );
2403+ assertEquals (AlterOperation .ADD , alterExp .getOperation ());
2404+ assertEquals (Arrays .asList ("USING" , "INDEX" , "idx_test" , "TABLESPACE" , "ts_test" ),
2405+ alterExp .getParameters ());
2406+
2407+ assertSqlCanBeParsedAndDeparsed (sql );
2408+ }
23672409}
0 commit comments