@@ -8034,89 +8034,107 @@ AlterExpression AlterExpression():
80348034 )
80358035 |
80368036 (
8037- <K_CONSTRAINT> sk3=RelObjectName()
8037+ <K_CONSTRAINT>
80388038 (
8039- ( tk=<K_FOREIGN> tk2=<K_KEY>
8040- columnNames=ColumnsNamesList()
8041- {
8042- fkIndex = new ForeignKeyIndex()
8043- .withName(sk3)
8044- .withType(tk.image + " " + tk2.image)
8045- .withColumnsNames(columnNames);
8046- columnNames = null;
8047- }
8048- <K_REFERENCES> fkTable=Table() [ LOOKAHEAD(2) columnNames=ColumnsNamesList() ]
8049- {
8050- fkIndex.withTable(fkTable).withReferencedColumnNames(columnNames);
8051- alterExp.setIndex(fkIndex);
8052- }
8053-
8054- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
8055- { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
8056- )]
8057- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
8058- { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
8059- )]
8060- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8061- )
8062- |
8063- ( tk=<K_PRIMARY> tk2=<K_KEY>
8064- columnNames=ColumnsNamesList()
8065- {
8066- index = new NamedConstraint()
8067- .withName(sk3)
8068- .withType(tk.image + " " + tk2.image)
8069- .withColumnsNames(columnNames);
8070- alterExp.setIndex(index);
8071- }
8072- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8073- [ <K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
8074- [ LOOKAHEAD(2) index = IndexWithComment(index) { alterExp.setIndex(index); } ]
8075- )
8076- |
8077- LOOKAHEAD(2) (
8078- { boolean enforced = true; }
8079- [ tk = <K_NOT> { enforced = false; } ]
8080- <K_ENFORCED> {
8081- alterExp.setEnforced(enforced);
8082- alterExp.setConstraintType("CONSTRAINT");
8083- alterExp.setConstraintSymbol(sk3);
8084- }
8085- )
8086- |
8039+ LOOKAHEAD(2)
80878040 (
8088- <K_CHECK> {Expression exp = null;} (LOOKAHEAD(2) "(" exp = Expression() ")")* {
8089- CheckConstraint checkCs = new CheckConstraint().withName(sk3).withExpression(exp);
8090- alterExp.setIndex(checkCs);
8041+ <K_UNIQUE> (<K_KEY> { alterExp.setConstraintType("UNIQUE KEY"); }
8042+ | <K_INDEX> { alterExp.setConstraintType("UNIQUE INDEX"); }
8043+ | { alterExp.setConstraintType("UNIQUE"); } )
8044+ sk3=RelObjectName() {
8045+ alterExp.setConstraintSymbol(sk3);
8046+ index = new Index();
8047+ }
8048+ columnNames=ColumnsNamesList() {
8049+ index.setColumnsNames(columnNames);
8050+ alterExp.setIndex(index);
80918051 }
80928052 )
80938053 |
8054+ sk3=RelObjectName()
80948055 (
8095- tk=<K_UNIQUE> ( tk2=<K_KEY> { alterExp.setUk(true); } | tk2=<K_INDEX>)?
8096- columnNames=ColumnsNamesList()
8097- {
8098- index = new NamedConstraint ()
8056+ ( tk=<K_FOREIGN> tk2=<K_KEY>
8057+ columnNames=ColumnsNamesList()
8058+ {
8059+ fkIndex = new ForeignKeyIndex ()
80998060 .withName(sk3)
8100- .withType(tk.image + (tk2!=null? " " + tk2.image:"") )
8061+ .withType(tk.image + " " + tk2.image)
81018062 .withColumnsNames(columnNames);
8102- alterExp.setIndex(index);
8103- }
8104- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8105- [ <K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
8106- [ LOOKAHEAD(2) index = IndexWithComment(index) { alterExp.setIndex(index); } ]
8107- )
8108- |
8109- (
8110- tk=<K_KEY>
8111- columnNames=ColumnsNamesList()
8112- {
8113- index = new NamedConstraint()
8114- .withName(sk3)
8115- .withType(tk.image)
8116- .withColumnsNames(columnNames);
8117- alterExp.setIndex(index);
8118- }
8119- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8063+ columnNames = null;
8064+ }
8065+ <K_REFERENCES> fkTable=Table() [ LOOKAHEAD(2) columnNames=ColumnsNamesList() ]
8066+ {
8067+ fkIndex.withTable(fkTable).withReferencedColumnNames(columnNames);
8068+ alterExp.setIndex(fkIndex);
8069+ }
8070+
8071+ [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
8072+ { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
8073+ )]
8074+ [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
8075+ { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
8076+ )]
8077+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8078+ )
8079+ |
8080+ ( tk=<K_PRIMARY> tk2=<K_KEY>
8081+ columnNames=ColumnsNamesList()
8082+ {
8083+ index = new NamedConstraint()
8084+ .withName(sk3)
8085+ .withType(tk.image + " " + tk2.image)
8086+ .withColumnsNames(columnNames);
8087+ alterExp.setIndex(index);
8088+ }
8089+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8090+ [ <K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
8091+ [ LOOKAHEAD(2) index = IndexWithComment(index) { alterExp.setIndex(index); } ]
8092+ )
8093+ |
8094+ LOOKAHEAD(2) (
8095+ { boolean enforced = true; }
8096+ [ tk = <K_NOT> { enforced = false; } ]
8097+ <K_ENFORCED> {
8098+ alterExp.setEnforced(enforced);
8099+ alterExp.setConstraintType("CONSTRAINT");
8100+ alterExp.setConstraintSymbol(sk3);
8101+ }
8102+ )
8103+ |
8104+ (
8105+ <K_CHECK> {Expression exp = null;} (LOOKAHEAD(2) "(" exp = Expression() ")")* {
8106+ CheckConstraint checkCs = new CheckConstraint().withName(sk3).withExpression(exp);
8107+ alterExp.setIndex(checkCs);
8108+ }
8109+ )
8110+ |
8111+ (
8112+ tk=<K_UNIQUE> (tk2=<K_KEY> { alterExp.setUk(true); } | tk2=<K_INDEX>)?
8113+ columnNames=ColumnsNamesList()
8114+ {
8115+ index = new NamedConstraint()
8116+ .withName(sk3)
8117+ .withType(tk.image + (tk2!=null?" " + tk2.image:""))
8118+ .withColumnsNames(columnNames);
8119+ alterExp.setIndex(index);
8120+ }
8121+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8122+ [ <K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
8123+ [ LOOKAHEAD(2) index = IndexWithComment(index) { alterExp.setIndex(index); } ]
8124+ )
8125+ |
8126+ (
8127+ tk=<K_KEY>
8128+ columnNames=ColumnsNamesList()
8129+ {
8130+ index = new NamedConstraint()
8131+ .withName(sk3)
8132+ .withType(tk.image)
8133+ .withColumnsNames(columnNames);
8134+ alterExp.setIndex(index);
8135+ }
8136+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
8137+ )
81208138 )
81218139 )
81228140 )
0 commit comments