Skip to content

Commit acd16e5

Browse files
committed
fixes #309
1 parent 043a5cb commit acd16e5

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2733,7 +2733,13 @@ CreateTable CreateTable():
27332733
fkIndex.setReferencedColumnNames(colNames);
27342734
indexes.add(fkIndex);
27352735
}
2736-
[LOOKAHEAD(2) (<K_ON> <K_DELETE> (<K_CASCADE> {fkIndex.setOnDeleteReferenceOption("CASCADE");}|<K_NO> <K_ACTION> {fkIndex.setOnDeleteReferenceOption("NO ACTION");}))]
2736+
[LOOKAHEAD(2) (<K_ON> <K_DELETE>
2737+
(<K_CASCADE> {fkIndex.setOnDeleteReferenceOption("CASCADE");}
2738+
|
2739+
<K_NO> <K_ACTION> {fkIndex.setOnDeleteReferenceOption("NO ACTION");}
2740+
|
2741+
<K_SET> <K_NULL> {fkIndex.setOnDeleteReferenceOption("SET NULL");}
2742+
))]
27372743
[LOOKAHEAD(2) (<K_ON> <K_UPDATE> (<K_CASCADE> {fkIndex.setOnUpdateReferenceOption("CASCADE");}|<K_NO> <K_ACTION> {fkIndex.setOnUpdateReferenceOption("NO ACTION");}))]
27382744
)
27392745
|

src/test/java/net/sf/jsqlparser/test/create/CreateTableTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ public void testCreateTableWithTablespaceIssue247() throws JSQLParserException {
215215
public void testCreateTableWithTablespaceIssue247_1() throws JSQLParserException {
216216
assertSqlCanBeParsedAndDeparsed("CREATE TABLE TABLE1 (COLUMN1 VARCHAR2 (15), COLUMN2 VARCHAR2 (15), CONSTRAINT P_PK PRIMARY KEY (COLUMN1) USING INDEX TABLESPACE \"T_INDEX\")");
217217
}
218+
219+
public void testOnDeleteSetNull() throws JSQLParserException {
220+
assertSqlCanBeParsedAndDeparsed("CREATE TABLE inventory (inventory_id INT PRIMARY KEY, product_id INT, CONSTRAINT fk_inv_product_id FOREIGN KEY (product_id) REFERENCES products(product_id) ON DELETE SET NULL)");
221+
}
218222

219223
public void testRUBiSCreateList() throws Exception {
220224
BufferedReader in = new BufferedReader(new InputStreamReader(CreateTableTest.class.getResourceAsStream("/RUBiS-create-requests.txt")));

0 commit comments

Comments
 (0)