@@ -225,6 +225,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
225225| <K_SKIP: "SKIP">
226226| <K_MERGE: "MERGE">
227227| <K_MATCHED: "MATCHED">
228+ | <K_CASCADE: "CASCADE">
228229}
229230
230231TOKEN : /* Numeric Constants */
@@ -2655,6 +2656,8 @@ String CreateParameter():
26552656 tk=<K_ROWS> { retval = tk.image; }
26562657 |
26572658 tk=<K_UNIQUE> { retval = tk.image; }
2659+ |
2660+ tk=<K_CASCADE> { retval = tk.image; }
26582661 |
26592662 tk=<K_DELETE> { retval = tk.image; }
26602663 |
@@ -2717,7 +2720,7 @@ Drop Drop():
27172720 )
27182721 { drop.setType(tk.image); }
27192722 name = Table() { drop.setName(name); }
2720- (tk=<S_IDENTIFIER> { dropArgs.add(tk.image); })*
2723+ (( tk=<S_IDENTIFIER> | tk=<K_CASCADE>) { dropArgs.add(tk.image); })*
27212724
27222725 {
27232726 if (dropArgs.size() > 0)
@@ -2745,8 +2748,7 @@ Alter Alter():
27452748 Table table;
27462749 Token tk;
27472750 ColDataType dataType;
2748- List<String> pkColumnNames = null;
2749- List<String> ukColumnNames = null;
2751+ List<String> columnNames = null;
27502752}
27512753{
27522754 <K_ALTER> <K_TABLE> table=Table() { alter.setTable(table); }
@@ -2762,9 +2764,14 @@ Alter Alter():
27622764 }
27632765 )
27642766 |
2765- ( <K_PRIMARY> <K_KEY> pkColumnNames=ColumnsNamesList() { alter.setPkColumns(pkColumnNames); } )
2767+ ( <K_PRIMARY> <K_KEY> columnNames=ColumnsNamesList() { alter.setPkColumns(columnNames); } )
2768+ |
2769+ ( <K_UNIQUE> <K_KEY> (tk=<S_IDENTIFIER> | tk=<S_QUOTED_IDENTIFIER>) columnNames=ColumnsNamesList() { alter.setUkName(tk.image); alter.setUkColumns(columnNames); } )
27662770 |
2767- ( <K_UNIQUE> <K_KEY> (tk=<S_IDENTIFIER> | tk=<S_QUOTED_IDENTIFIER>) ukColumnNames=ColumnsNamesList() { alter.setUkName(tk.image); alter.setUkColumns(ukColumnNames); } )
2771+ ( <K_FOREIGN> <K_KEY> columnNames=ColumnsNamesList() { alter.setFkColumns(columnNames); }
2772+ <K_REFERENCES> tk=<S_IDENTIFIER> columnNames=ColumnsNamesList()
2773+ { alter.setFkSourceTable(tk.image); alter.setFkSourceColumns(columnNames); }
2774+ [<K_ON> <K_DELETE> <K_CASCADE> { alter.setOnDeleteCascade(true); } ] )
27682775 )
27692776
27702777 {
0 commit comments