Skip to content

Commit 6e70f25

Browse files
committed
test: add unit test for ALTER TABLE with INVISIBLE index option
1 parent f029697 commit 6e70f25

File tree

1 file changed

+52
-8
lines changed

1 file changed

+52
-8
lines changed

src/test/java/net/sf/jsqlparser/statement/alter/AlterTest.java

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,22 @@
99
*/
1010
package net.sf.jsqlparser.statement.alter;
1111

12-
import static net.sf.jsqlparser.test.TestUtils.*;
13-
import static org.junit.jupiter.api.Assertions.*;
14-
1512
import java.util.Arrays;
1613
import java.util.Collections;
1714
import java.util.List;
1815
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+
1928
import net.sf.jsqlparser.JSQLParserException;
2029
import net.sf.jsqlparser.expression.StringValue;
2130
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
@@ -28,12 +37,16 @@
2837
import net.sf.jsqlparser.statement.Statement;
2938
import net.sf.jsqlparser.statement.alter.AlterExpression.ColumnDataType;
3039
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;
3243
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;
3750

3851
public class AlterTest {
3952

@@ -2180,4 +2193,35 @@ public void testAlterTableAlterIndexInvisible() throws JSQLParserException {
21802193

21812194
assertSqlCanBeParsedAndDeparsed(sql);
21822195
}
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+
}
21832227
}

0 commit comments

Comments
 (0)