File tree Expand file tree Collapse file tree 3 files changed +10
-3
lines changed
main/jjtree/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/statement/alter Expand file tree Collapse file tree 3 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -68,6 +68,7 @@ Also I would like to know about needed examples or documentation stuff.
6868
6969* allow ** ON** as a value in a set statement (` SET myvalue = ON ` )
7070* support for ** ALTER TABLE ONLY mytable ... **
71+ * allow foreign key definition in alter statements without referenced columns specification
7172
7273## Extensions of JSqlParser releases
7374
Original file line number Diff line number Diff line change @@ -4224,8 +4224,8 @@ AlterExpression AlterExpression():
42244224 [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }])
42254225 |
42264226//following two choices regarding foreign keys should be merged
4227- ( <K_FOREIGN> <K_KEY> columnNames=ColumnsNamesList() { alterExp.setFkColumns(columnNames); }
4228- <K_REFERENCES> tk=<S_IDENTIFIER> columnNames=ColumnsNamesList()
4227+ ( <K_FOREIGN> <K_KEY> columnNames=ColumnsNamesList() { alterExp.setFkColumns(columnNames); columnNames = null; }
4228+ <K_REFERENCES> tk=<S_IDENTIFIER> [ columnNames=ColumnsNamesList() ]
42294229 { alterExp.setFkSourceTable(tk.image); alterExp.setFkSourceColumns(columnNames); }
42304230 [<K_ON> <K_DELETE>
42314231 (<K_CASCADE> { alterExp.setOnDeleteCascade(true); }
@@ -4243,8 +4243,9 @@ AlterExpression AlterExpression():
42434243 fkIndex.setName(sk3);
42444244 fkIndex.setType(tk.image + " " + tk2.image);
42454245 fkIndex.setColumnsNames(columnNames);
4246+ columnNames = null;
42464247 }
4247- <K_REFERENCES> fkTable=Table() columnNames=ColumnsNamesList()
4248+ <K_REFERENCES> fkTable=Table() [ columnNames=ColumnsNamesList() ]
42484249 {
42494250 fkIndex.setTable(fkTable);
42504251 fkIndex.setReferencedColumnNames(columnNames);
Original file line number Diff line number Diff line change @@ -393,4 +393,9 @@ public void testIssue633_2() throws JSQLParserException {
393393 public void testAlterOnlyIssue928 () throws JSQLParserException {
394394 assertSqlCanBeParsedAndDeparsed ("ALTER TABLE ONLY categories ADD CONSTRAINT pk_categories PRIMARY KEY (category_id)" );
395395 }
396+
397+ @ Test
398+ public void testAlterConstraintWithoutFKSourceColumnsIssue929 () throws JSQLParserException {
399+ assertSqlCanBeParsedAndDeparsed ("ALTER TABLE orders ADD CONSTRAINT fk_orders_customers FOREIGN KEY (customer_id) REFERENCES customers" );
400+ }
396401}
You can’t perform that action at this time.
0 commit comments