Skip to content

Commit 4a12dc1

Browse files
committed
fixes #221
1 parent 0cc809e commit 4a12dc1

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

src/main/java/net/sf/jsqlparser/statement/alter/Alter.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import net.sf.jsqlparser.statement.Statement;
2727
import net.sf.jsqlparser.statement.StatementVisitor;
2828
import net.sf.jsqlparser.statement.create.table.ColDataType;
29-
import net.sf.jsqlparser.statement.create.table.ForeignKeyIndex;
29+
import net.sf.jsqlparser.statement.create.table.Index;
3030
import net.sf.jsqlparser.statement.select.PlainSelect;
3131

3232
/**
@@ -41,7 +41,7 @@ public class Alter implements Statement {
4141
private List<String> pkColumns;
4242
private List<String> ukColumns;
4343
private String ukName;
44-
private ForeignKeyIndex fkIndex = null;
44+
private Index index = null;
4545
private String operation;
4646
private String constraintName;
4747
private boolean onDeleteRestrict;
@@ -168,12 +168,12 @@ public void accept(StatementVisitor statementVisitor) {
168168
statementVisitor.visit(this);
169169
}
170170

171-
public ForeignKeyIndex getFkIndex() {
172-
return fkIndex;
171+
public Index getIndex() {
172+
return index;
173173
}
174174

175-
public void setFkIndex(ForeignKeyIndex fkIndex) {
176-
this.fkIndex = fkIndex;
175+
public void setIndex(Index index) {
176+
this.index = index;
177177
}
178178

179179
@Override
@@ -201,8 +201,8 @@ public String toString() {
201201
} else if (isOnDeleteSetNull()) {
202202
b.append(" ON DELETE SET NULL");
203203
}
204-
} else if (fkIndex != null) {
205-
b.append(fkIndex);
204+
} else if (index != null) {
205+
b.append(index);
206206
}
207207
return b.toString();
208208
}

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2855,6 +2855,7 @@ Alter Alter():
28552855
ColDataType dataType;
28562856
List<String> columnNames = null;
28572857
ForeignKeyIndex fkIndex = null;
2858+
NamedConstraint index = null;
28582859
Table fkTable = null;
28592860
Token alterDrop = null;
28602861
}
@@ -2889,22 +2890,34 @@ Alter Alter():
28892890
)
28902891
|
28912892
(
2892-
{
2893-
fkIndex = new ForeignKeyIndex();
2894-
}
2895-
<K_CONSTRAINT> sk3=RelObjectName() {fkIndex.setName(sk3);}
2896-
tk=<K_FOREIGN> tk2=<K_KEY>
2893+
<K_CONSTRAINT> sk3=RelObjectName()
2894+
2895+
( ( tk=<K_FOREIGN> tk2=<K_KEY>
28972896
columnNames=ColumnsNamesList()
28982897
{
2898+
fkIndex = new ForeignKeyIndex();
2899+
fkIndex.setName(sk3);
28992900
fkIndex.setType(tk.image + " " + tk2.image);
29002901
fkIndex.setColumnsNames(columnNames);
29012902
}
29022903
<K_REFERENCES> fkTable=Table() columnNames=ColumnsNamesList()
29032904
{
29042905
fkIndex.setTable(fkTable);
29052906
fkIndex.setReferencedColumnNames(columnNames);
2906-
alter.setFkIndex(fkIndex);
2907+
alter.setIndex(fkIndex);
2908+
}
2909+
)
2910+
|
2911+
( tk=<K_PRIMARY> tk2=<K_KEY>
2912+
columnNames=ColumnsNamesList()
2913+
{
2914+
index = new NamedConstraint();
2915+
index.setName(sk3);
2916+
index.setType(tk.image + " " + tk2.image);
2917+
index.setColumnsNames(columnNames);
2918+
alter.setIndex(index);
29072919
}
2920+
) )
29082921
)
29092922
)
29102923
)

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
import net.sf.jsqlparser.statement.Statement;
88
import net.sf.jsqlparser.statement.alter.Alter;
99
import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed;
10+
import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed;
11+
import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed;
12+
import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed;
1013

1114
public class AlterTest extends TestCase {
1215

@@ -58,4 +61,8 @@ public void testAlterTableDropColumn() throws JSQLParserException {
5861
public void testAlterTableDropConstraint() throws JSQLParserException {
5962
assertSqlCanBeParsedAndDeparsed("ALTER TABLE test DROP CONSTRAINT YYY");
6063
}
64+
65+
public void testAlterTablePK() throws JSQLParserException {
66+
assertSqlCanBeParsedAndDeparsed("ALTER TABLE `Author` ADD CONSTRAINT `AuthorPK` PRIMARY KEY (`ID`)");
67+
}
6168
}

0 commit comments

Comments
 (0)