|
9 | 9 | */
|
10 | 10 | package net.sf.jsqlparser.statement.alter;
|
11 | 11 |
|
12 |
| -import static net.sf.jsqlparser.test.TestUtils.*; |
13 |
| -import static org.junit.jupiter.api.Assertions.*; |
14 |
| - |
15 | 12 | import java.util.Arrays;
|
16 | 13 | import java.util.Collections;
|
17 | 14 | import java.util.List;
|
18 | 15 | import java.util.stream.Stream;
|
| 16 | + |
| 17 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 18 | +import static org.junit.jupiter.api.Assertions.assertFalse; |
| 19 | +import static org.junit.jupiter.api.Assertions.assertInstanceOf; |
| 20 | +import static org.junit.jupiter.api.Assertions.assertNotNull; |
| 21 | +import static org.junit.jupiter.api.Assertions.assertNull; |
| 22 | +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 | + |
19 | 28 | import net.sf.jsqlparser.JSQLParserException;
|
20 | 29 | import net.sf.jsqlparser.expression.StringValue;
|
21 | 30 | import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
|
|
28 | 37 | import net.sf.jsqlparser.statement.Statement;
|
29 | 38 | import net.sf.jsqlparser.statement.alter.AlterExpression.ColumnDataType;
|
30 | 39 | import net.sf.jsqlparser.statement.create.index.CreateIndex;
|
31 |
| -import net.sf.jsqlparser.statement.create.table.*; |
| 40 | +import net.sf.jsqlparser.statement.create.table.CheckConstraint; |
| 41 | +import net.sf.jsqlparser.statement.create.table.ForeignKeyIndex; |
| 42 | +import net.sf.jsqlparser.statement.create.table.Index; |
32 | 43 | import net.sf.jsqlparser.statement.create.table.Index.ColumnParams;
|
33 |
| -import org.junit.jupiter.api.Test; |
34 |
| -import org.junit.jupiter.params.ParameterizedTest; |
35 |
| -import org.junit.jupiter.params.provider.Arguments; |
36 |
| -import org.junit.jupiter.params.provider.MethodSource; |
| 44 | +import net.sf.jsqlparser.statement.create.table.NamedConstraint; |
| 45 | +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; |
37 | 50 |
|
38 | 51 | public class AlterTest {
|
39 | 52 |
|
@@ -2180,4 +2193,35 @@ public void testAlterTableAlterIndexInvisible() throws JSQLParserException {
|
2180 | 2193 |
|
2181 | 2194 | assertSqlCanBeParsedAndDeparsed(sql);
|
2182 | 2195 | }
|
| 2196 | + |
| 2197 | + @Test |
| 2198 | + public void testAlterTableAddIndexInvisible() throws JSQLParserException { |
| 2199 | + String sql = "ALTER TABLE t1 ADD INDEX k_idx (k) INVISIBLE"; |
| 2200 | + Statement stmt = CCJSqlParserUtil.parse(sql); |
| 2201 | + assertInstanceOf(Alter.class, stmt); |
| 2202 | + |
| 2203 | + Alter alter = (Alter) stmt; |
| 2204 | + assertEquals("t1", alter.getTable().getFullyQualifiedName()); |
| 2205 | + |
| 2206 | + List<AlterExpression> alterExpressions = alter.getAlterExpressions(); |
| 2207 | + assertNotNull(alterExpressions); |
| 2208 | + assertEquals(1, alterExpressions.size()); |
| 2209 | + |
| 2210 | + AlterExpression alterExp = alterExpressions.get(0); |
| 2211 | + assertEquals(AlterOperation.ADD, alterExp.getOperation()); |
| 2212 | + assertNotNull(alterExp.getIndex()); |
| 2213 | + assertEquals("k_idx", alterExp.getIndex().getName()); |
| 2214 | + assertEquals("INDEX", alterExp.getIndex().getIndexKeyword()); |
| 2215 | + |
| 2216 | + List<String> columnNames = alterExp.getIndex().getColumnsNames(); |
| 2217 | + assertNotNull(columnNames); |
| 2218 | + assertEquals(1, columnNames.size()); |
| 2219 | + assertEquals("k", columnNames.get(0)); |
| 2220 | + |
| 2221 | + List<String> indexSpec = alterExp.getIndex().getIndexSpec(); |
| 2222 | + assertNotNull(indexSpec); |
| 2223 | + assertTrue(indexSpec.contains("INVISIBLE")); |
| 2224 | + |
| 2225 | + assertSqlCanBeParsedAndDeparsed(sql); |
| 2226 | + } |
2183 | 2227 | }
|
0 commit comments