|
9 | 9 | */ |
10 | 10 | package net.sf.jsqlparser.statement.alter; |
11 | 11 |
|
12 | | -import java.util.Arrays; |
13 | | -import java.util.Collections; |
14 | | -import java.util.List; |
15 | | -import java.util.stream.Stream; |
16 | | - |
| 12 | +import static net.sf.jsqlparser.test.TestUtils.assertDeparse; |
| 13 | +import static net.sf.jsqlparser.test.TestUtils.assertEqualsObjectTree; |
| 14 | +import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed; |
| 15 | +import static net.sf.jsqlparser.test.TestUtils.assertStatementCanBeDeparsedAs; |
17 | 16 | import static org.junit.jupiter.api.Assertions.assertEquals; |
18 | 17 | import static org.junit.jupiter.api.Assertions.assertFalse; |
19 | 18 | import static org.junit.jupiter.api.Assertions.assertInstanceOf; |
20 | 19 | import static org.junit.jupiter.api.Assertions.assertNotNull; |
21 | 20 | import static org.junit.jupiter.api.Assertions.assertNull; |
22 | 21 | import static org.junit.jupiter.api.Assertions.assertTrue; |
23 | | -import org.junit.jupiter.api.Test; |
24 | | -import org.junit.jupiter.params.ParameterizedTest; |
25 | | -import org.junit.jupiter.params.provider.Arguments; |
26 | | -import org.junit.jupiter.params.provider.MethodSource; |
27 | 22 |
|
| 23 | +import java.util.Arrays; |
| 24 | +import java.util.Collections; |
| 25 | +import java.util.List; |
| 26 | +import java.util.stream.Stream; |
28 | 27 | import net.sf.jsqlparser.JSQLParserException; |
29 | 28 | import net.sf.jsqlparser.expression.StringValue; |
30 | 29 | import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo; |
|
43 | 42 | import net.sf.jsqlparser.statement.create.table.Index.ColumnParams; |
44 | 43 | import net.sf.jsqlparser.statement.create.table.NamedConstraint; |
45 | 44 | import net.sf.jsqlparser.statement.create.table.PartitionDefinition; |
46 | | -import static net.sf.jsqlparser.test.TestUtils.assertDeparse; |
47 | | -import static net.sf.jsqlparser.test.TestUtils.assertEqualsObjectTree; |
48 | | -import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed; |
49 | | -import static net.sf.jsqlparser.test.TestUtils.assertStatementCanBeDeparsedAs; |
| 45 | +import org.junit.jupiter.api.Test; |
| 46 | +import org.junit.jupiter.params.ParameterizedTest; |
| 47 | +import org.junit.jupiter.params.provider.Arguments; |
| 48 | +import org.junit.jupiter.params.provider.MethodSource; |
50 | 49 |
|
51 | 50 | public class AlterTest { |
52 | 51 |
|
@@ -2234,4 +2233,26 @@ public void testAlterTableAddIndexInvisible() throws JSQLParserException { |
2234 | 2233 |
|
2235 | 2234 | assertSqlCanBeParsedAndDeparsed(sql); |
2236 | 2235 | } |
| 2236 | + |
| 2237 | + @Test |
| 2238 | + public void testAlterTableAddConstraintPrimaryKeyUsingIndexName() throws JSQLParserException { |
| 2239 | + String sql = |
| 2240 | + "ALTER TABLE TNWAV ADD CONSTRAINT PK_TNWAV PRIMARY KEY (NWNAME, ZEILE, BESTGRU) USING INDEX PK_TNWAV"; |
| 2241 | + Statement stmt = CCJSqlParserUtil.parse(sql); |
| 2242 | + assertInstanceOf(Alter.class, stmt); |
| 2243 | + |
| 2244 | + Alter alter = (Alter) stmt; |
| 2245 | + assertEquals("TNWAV", alter.getTable().getFullyQualifiedName()); |
| 2246 | + |
| 2247 | + List<AlterExpression> alterExpressions = alter.getAlterExpressions(); |
| 2248 | + assertNotNull(alterExpressions); |
| 2249 | + assertEquals(1, alterExpressions.size()); |
| 2250 | + |
| 2251 | + AlterExpression alterExp = alterExpressions.get(0); |
| 2252 | + assertEquals(AlterOperation.ADD, alterExp.getOperation()); |
| 2253 | + assertNotNull(alterExp.getIndex()); |
| 2254 | + assertEquals(Arrays.asList("USING", "INDEX", "PK_TNWAV"), alterExp.getParameters()); |
| 2255 | + |
| 2256 | + assertSqlCanBeParsedAndDeparsed(sql); |
| 2257 | + } |
2237 | 2258 | } |
0 commit comments