@@ -5833,169 +5833,179 @@ AlterExpression AlterExpression():
5833
5833
{
5834
5834
5835
5835
(
5836
- ((<K_ADD> { alterExp.setOperation(AlterOperation.ADD); } | <K_ALTER> { alterExp.setOperation(AlterOperation.ALTER); } | <K_MODIFY> { alterExp.setOperation(AlterOperation.MODIFY); })
5837
5836
(
5838
- LOOKAHEAD(2) (
5839
- <K_PRIMARY> <K_KEY> columnNames=ColumnsNamesList() { alterExp.setPkColumns(columnNames); }
5840
- ) constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5841
- [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5842
- |
5843
- LOOKAHEAD(2) (
5844
- (tk=<K_KEY> { alterExp.setUk(true); } | tk=<K_INDEX>)
5845
- sk3 = RelObjectName()
5846
- columnNames = ColumnsNamesList()
5847
- {
5848
- index = new Index().withType(tk.image).withName(sk3).withColumnsNames(columnNames);
5849
- alterExp.setIndex(index);
5850
- }
5851
- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5852
- [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5853
- )
5854
- |
5855
- LOOKAHEAD(3) (
5856
- ( LOOKAHEAD(2) <K_COLUMN> { alterExp.hasColumn(true); } )?
5857
-
5858
- (
5859
- LOOKAHEAD(2) alterExpressionColumnDataType = AlterExpressionColumnDataType() {
5860
- alterExp.addColDataType(alterExpressionColumnDataType);
5861
- }
5862
- |
5863
- LOOKAHEAD(3) alterExpressionColumnDropNotNull = AlterExpressionColumnDropNotNull() {
5864
- alterExp.addColDropNotNull( alterExpressionColumnDropNotNull);
5865
- }
5866
- |
5867
- LOOKAHEAD(4) "("
5868
- ( alterExpressionColumnDataType = AlterExpressionColumnDataType() {
5869
- if (alterExp.getOperation()== AlterOperation.ADD ){
5870
- alterExp.addColDataType(alterExpressionColumnDataType);
5871
- } else if(alterExp.getOperation()== AlterOperation.ALTER){
5872
- error_skipto(K_ALTER);
5873
- }else if(alterExp.getOperation()== AlterOperation.MODIFY){
5874
- error_skipto(K_MODIFY);
5875
- }
5876
- }
5877
- (LOOKAHEAD(2) "," alterExpressionColumnDataType = AlterExpressionColumnDataType() { alterExp.addColDataType(alterExpressionColumnDataType); }) *
5878
- )
5879
- ")" {alterExp.useBrackets(true);}
5880
- |
5881
- alterExpressionColumnDropDefault = AlterExpressionColumnDropDefault() {
5882
- alterExp.addColDropDefault( alterExpressionColumnDropDefault);
5883
- }
5884
- )
5885
- )
5886
- |
5887
5837
(
5888
- "(" alterExpressionColumnDataType = AlterExpressionColumnDataType() { alterExp.addColDataType(alterExpressionColumnDataType); }
5889
- ("," alterExpressionColumnDataType = AlterExpressionColumnDataType() { alterExp.addColDataType(alterExpressionColumnDataType); } )* ")"
5890
- )
5891
- |
5892
- ( <K_UNIQUE> ((<K_KEY> { alterExp.setUk(true); } | <K_INDEX>) (tk=<S_IDENTIFIER> | tk=<S_QUOTED_IDENTIFIER>) { alterExp.setUkName(tk.image); } )?
5893
- columnNames=ColumnsNamesList() { alterExp.setUkColumns(columnNames); }
5894
- [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }])
5895
- |
5896
- //following two choices regarding foreign keys should be merged
5897
- ( <K_FOREIGN> <K_KEY> columnNames=ColumnsNamesList() { alterExp.setFkColumns(columnNames); columnNames = null; }
5898
- /*
5899
- <K_REFERENCES> tk=<S_IDENTIFIER> [ columnNames=ColumnsNamesList() ]
5900
- { alterExp.setFkSourceTable(tk.image); alterExp.setFkSourceColumns(columnNames); }
5901
- */
5902
- <K_REFERENCES> fkTable=Table() [ columnNames=ColumnsNamesList() ]
5903
- {
5904
- alterExp.setFkSourceSchema(fkTable.getSchemaName());
5905
- alterExp.setFkSourceTable(fkTable.getName());
5906
- alterExp.setFkSourceColumns(columnNames);
5907
- }
5908
-
5909
- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5910
- { alterExp.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5911
- )]
5912
- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5913
- { alterExp.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5914
- )]
5838
+ <K_ADD> { alterExp.setOperation(AlterOperation.ADD); }
5839
+ |
5840
+ <K_ALTER> { alterExp.setOperation(AlterOperation.ALTER); }
5841
+ |
5842
+ <K_MODIFY> { alterExp.setOperation(AlterOperation.MODIFY); }
5915
5843
)
5916
- |
5844
+
5917
5845
(
5918
- <K_CONSTRAINT> sk3=RelObjectName()
5919
-
5920
- ( ( tk=<K_FOREIGN> tk2=<K_KEY>
5921
- columnNames=ColumnsNamesList()
5922
- {
5923
- fkIndex = new ForeignKeyIndex()
5924
- .withName(sk3)
5925
- .withType(tk.image + " " + tk2.image)
5926
- .withColumnsNames(columnNames);
5927
- columnNames = null;
5928
- }
5929
- <K_REFERENCES> fkTable=Table() [ columnNames=ColumnsNamesList() ]
5930
- {
5931
- fkIndex.withTable(fkTable).withReferencedColumnNames(columnNames);
5932
- alterExp.setIndex(fkIndex);
5933
- }
5934
-
5935
- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5936
- { fkIndex.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5937
- )]
5938
- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5939
- { fkIndex.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5940
- )]
5941
- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5846
+ LOOKAHEAD(2) (
5847
+ <K_PRIMARY> <K_KEY> columnNames=ColumnsNamesList() { alterExp.setPkColumns(columnNames); }
5942
5848
)
5849
+
5850
+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5851
+ [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5943
5852
|
5944
- ( tk=<K_PRIMARY> tk2=<K_KEY>
5945
- columnNames=ColumnsNamesList()
5946
- {
5947
- index = new NamedConstraint()
5948
- .withName(sk3)
5949
- .withType(tk.image + " " + tk2.image)
5950
- .withColumnsNames(columnNames);
5951
- alterExp.setIndex(index);
5952
- }
5953
- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5954
- [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5853
+ LOOKAHEAD(2) (
5854
+ (tk=<K_KEY> { alterExp.setUk(true); } | tk=<K_INDEX>)
5855
+ sk3 = RelObjectName()
5856
+ columnNames = ColumnsNamesList()
5857
+ {
5858
+ index = new Index().withType(tk.image).withName(sk3).withColumnsNames(columnNames);
5859
+ alterExp.setIndex(index);
5860
+ }
5861
+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5862
+ [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5863
+ )
5864
+ |
5865
+ LOOKAHEAD(3) (
5866
+ ( LOOKAHEAD(2) <K_COLUMN> { alterExp.hasColumn(true); } )?
5867
+
5868
+ (
5869
+ LOOKAHEAD(4) (
5870
+ "(" { alterExp.useBrackets(true);}
5871
+ alterExpressionColumnDataType = AlterExpressionColumnDataType() {
5872
+ alterExp.addColDataType(alterExpressionColumnDataType);
5873
+ }
5874
+ (
5875
+ ","
5876
+ alterExpressionColumnDataType = AlterExpressionColumnDataType() {
5877
+ alterExp.addColDataType(alterExpressionColumnDataType);
5878
+ }
5879
+ )*
5880
+ ")"
5881
+ )
5882
+ |
5883
+ LOOKAHEAD(2) alterExpressionColumnDataType = AlterExpressionColumnDataType() {
5884
+ alterExp.addColDataType(alterExpressionColumnDataType);
5885
+ }
5886
+ |
5887
+ LOOKAHEAD(3) alterExpressionColumnDropNotNull = AlterExpressionColumnDropNotNull() {
5888
+ alterExp.addColDropNotNull( alterExpressionColumnDropNotNull);
5889
+ }
5890
+ |
5891
+ alterExpressionColumnDropDefault = AlterExpressionColumnDropDefault() {
5892
+ alterExp.addColDropDefault( alterExpressionColumnDropDefault);
5893
+ }
5894
+ )
5955
5895
)
5956
5896
|
5957
5897
(
5958
- <K_CHECK> {Expression exp = null;} ("(" exp = Expression() ")")* {
5959
- CheckConstraint checkCs = new CheckConstraint().withName(sk3).withExpression(exp);
5960
- alterExp.setIndex(checkCs);
5961
- }
5898
+ "(" alterExpressionColumnDataType = AlterExpressionColumnDataType() { alterExp.addColDataType(alterExpressionColumnDataType); }
5899
+ ("," alterExpressionColumnDataType = AlterExpressionColumnDataType() { alterExp.addColDataType(alterExpressionColumnDataType); } )* ")"
5900
+ )
5901
+ |
5902
+ ( <K_UNIQUE> ((<K_KEY> { alterExp.setUk(true); } | <K_INDEX>) (tk=<S_IDENTIFIER> | tk=<S_QUOTED_IDENTIFIER>) { alterExp.setUkName(tk.image); } )?
5903
+ columnNames=ColumnsNamesList() { alterExp.setUkColumns(columnNames); }
5904
+ [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }])
5905
+ |
5906
+ //following two choices regarding foreign keys should be merged
5907
+ ( <K_FOREIGN> <K_KEY> columnNames=ColumnsNamesList() { alterExp.setFkColumns(columnNames); columnNames = null; }
5908
+ /*
5909
+ <K_REFERENCES> tk=<S_IDENTIFIER> [ columnNames=ColumnsNamesList() ]
5910
+ { alterExp.setFkSourceTable(tk.image); alterExp.setFkSourceColumns(columnNames); }
5911
+ */
5912
+ <K_REFERENCES> fkTable=Table() [ columnNames=ColumnsNamesList() ]
5913
+ {
5914
+ alterExp.setFkSourceSchema(fkTable.getSchemaName());
5915
+ alterExp.setFkSourceTable(fkTable.getName());
5916
+ alterExp.setFkSourceColumns(columnNames);
5917
+ }
5918
+
5919
+ [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5920
+ { alterExp.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5921
+ )]
5922
+ [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5923
+ { alterExp.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5924
+ )]
5962
5925
)
5963
5926
|
5964
5927
(
5965
- tk=<K_UNIQUE> (tk2=<K_KEY> { alterExp.setUk(true); } | tk2=<K_INDEX>)?
5966
- columnNames=ColumnsNamesList()
5967
- {
5968
- index = new NamedConstraint()
5928
+ <K_CONSTRAINT> sk3=RelObjectName()
5929
+
5930
+ ( ( tk=<K_FOREIGN> tk2=<K_KEY>
5931
+ columnNames=ColumnsNamesList()
5932
+ {
5933
+ fkIndex = new ForeignKeyIndex()
5934
+ .withName(sk3)
5935
+ .withType(tk.image + " " + tk2.image)
5936
+ .withColumnsNames(columnNames);
5937
+ columnNames = null;
5938
+ }
5939
+ <K_REFERENCES> fkTable=Table() [ columnNames=ColumnsNamesList() ]
5940
+ {
5941
+ fkIndex.withTable(fkTable).withReferencedColumnNames(columnNames);
5942
+ alterExp.setIndex(fkIndex);
5943
+ }
5944
+
5945
+ [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5946
+ { fkIndex.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5947
+ )]
5948
+ [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
5949
+ { fkIndex.setReferentialAction(ReferentialAction.Type.valueOf(tk.image), action); }
5950
+ )]
5951
+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5952
+ )
5953
+ |
5954
+ ( tk=<K_PRIMARY> tk2=<K_KEY>
5955
+ columnNames=ColumnsNamesList()
5956
+ {
5957
+ index = new NamedConstraint()
5969
5958
.withName(sk3)
5970
- .withType(tk.image + (tk2!=null?" " + tk2.image:""))
5971
- .withColumnsNames(columnNames);
5972
- alterExp.setIndex(index);
5973
- }
5974
- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5975
- [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5959
+ .withType(tk.image + " " + tk2.image)
5960
+ .withColumnsNames(columnNames);
5961
+ alterExp.setIndex(index);
5962
+ }
5963
+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5964
+ [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5965
+ )
5966
+ |
5967
+ (
5968
+ <K_CHECK> {Expression exp = null;} ("(" exp = Expression() ")")* {
5969
+ CheckConstraint checkCs = new CheckConstraint().withName(sk3).withExpression(exp);
5970
+ alterExp.setIndex(checkCs);
5971
+ }
5972
+ )
5973
+ |
5974
+ (
5975
+ tk=<K_UNIQUE> (tk2=<K_KEY> { alterExp.setUk(true); } | tk2=<K_INDEX>)?
5976
+ columnNames=ColumnsNamesList()
5977
+ {
5978
+ index = new NamedConstraint()
5979
+ .withName(sk3)
5980
+ .withType(tk.image + (tk2!=null?" " + tk2.image:""))
5981
+ .withColumnsNames(columnNames);
5982
+ alterExp.setIndex(index);
5983
+ }
5984
+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5985
+ [<K_USING> sk4=RelObjectName() { alterExp.addParameters("USING", sk4); }]
5986
+ )
5987
+ |
5988
+ (
5989
+ tk=<K_KEY>
5990
+ columnNames=ColumnsNamesList()
5991
+ {
5992
+ index = new NamedConstraint()
5993
+ .withName(sk3)
5994
+ .withType(tk.image)
5995
+ .withColumnsNames(columnNames);
5996
+ alterExp.setIndex(index);
5997
+ }
5998
+ constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
5999
+ )
6000
+ )
5976
6001
)
5977
6002
|
5978
- (
5979
- tk=<K_KEY>
5980
- columnNames=ColumnsNamesList()
5981
- {
5982
- index = new NamedConstraint()
5983
- .withName(sk3)
5984
- .withType(tk.image)
5985
- .withColumnsNames(columnNames);
5986
- alterExp.setIndex(index);
5987
- }
5988
- constraints=AlterExpressionConstraintState() { alterExp.setConstraints(constraints); }
6003
+ ( sk3=RelObjectName() <K_COMMENT>
6004
+ tk=<S_CHAR_LITERAL> {
6005
+ alterExp.withColumnName(sk3).withCommentText(tk.image);
6006
+ }
5989
6007
)
5990
- )
5991
- )
5992
- |
5993
- ( sk3=RelObjectName() <K_COMMENT>
5994
- tk=<S_CHAR_LITERAL> {
5995
- alterExp.withColumnName(sk3).withCommentText(tk.image);
5996
- }
5997
- )
5998
- )
6008
+ )
5999
6009
)
6000
6010
|
6001
6011
(
0 commit comments