@@ -6217,78 +6217,85 @@ CreateTable CreateTable(boolean isUsingOrReplace):
6217
6217
[ LOOKAHEAD(2) <K_IF> <K_NOT> <K_EXISTS> { createTable.setIfNotExists(true); }]
6218
6218
table=Table()
6219
6219
[ LOOKAHEAD(2) (
6220
- LOOKAHEAD(3)
6221
- ("(" tableColumn=RelObjectName() { columns.add(tableColumn); } ("," tableColumn=RelObjectName() { columns.add(tableColumn); } )* ")")
6220
+ LOOKAHEAD(3) (
6221
+ "(" tableColumn=RelObjectName() { columns.add(tableColumn); } ("," tableColumn=RelObjectName() { columns.add(tableColumn); } )* ")"
6222
+ )
6222
6223
|
6223
- ("("
6224
- coldef = ColumnDefinition()
6225
-
6226
- { columnDefinitions.add(coldef); }
6227
-
6228
6224
(
6229
- ","
6225
+ "("
6226
+ coldef = ColumnDefinition() { columnDefinitions.add(coldef); }
6230
6227
6231
6228
(
6232
- LOOKAHEAD(3) (
6233
- tk=<K_INDEX>
6229
+ ","
6230
+ (
6231
+ LOOKAHEAD(3) (
6232
+ {
6233
+ idxSpec.clear();
6234
+ }
6235
+ tk=<K_INDEX>
6234
6236
sk3=RelObjectName()
6235
- /* colNames=ColumnsNamesList() */
6236
6237
colNames = ColumnNamesWithParamsList()
6237
- { idxSpec.clear(); }
6238
6238
( parameter=CreateParameter() { idxSpec.addAll(parameter); } )*
6239
6239
{
6240
6240
index = new Index().withType(tk.image).withName(sk3).withColumns(colNames).withIndexSpec(new ArrayList<String>(idxSpec));
6241
6241
indexes.add(index);
6242
6242
}
6243
- )
6244
- |
6245
- LOOKAHEAD(3) (
6246
- {
6247
- index = new NamedConstraint();
6248
- }
6249
- [<K_CONSTRAINT> sk3=RelObjectName() {index.setName(sk3);} ]
6243
+ )
6244
+ |
6245
+ LOOKAHEAD(3) (
6246
+ {
6247
+ index = new NamedConstraint();
6248
+ tk2=null;
6249
+ idxSpec.clear();
6250
+ }
6251
+ [ <K_CONSTRAINT> sk3=RelObjectName() {index.setName(sk3);} ]
6252
+
6253
+ (
6254
+ tk=<K_PRIMARY> tk2=<K_KEY>
6255
+ |
6256
+ tk=<K_UNIQUE> [ tk2=<K_KEY> ]
6257
+ )
6258
+ {
6259
+ index.setType( tk.image + ( tk2!=null ? " " + tk2.image : "" ));
6260
+ tk2=null;
6261
+ }
6250
6262
6251
- (tk=<K_PRIMARY> tk2=<K_KEY> {index.setType(tk.image + " " + tk2.image);}
6252
- | tk=<K_UNIQUE> [ tk2=<K_KEY> ] {index.setType(tk.image + (tk2!=null?" " + tk2.image:""));}
6253
- )
6254
- /* colNames=ColumnsNamesList() */
6255
6263
colNames = ColumnNamesWithParamsList()
6256
- { idxSpec.clear(); }
6257
6264
( parameter=CreateParameter() { idxSpec.addAll(parameter); } )*
6258
6265
{
6259
6266
index.withColumns(colNames).withIndexSpec(new ArrayList<String>(idxSpec));
6260
6267
indexes.add(index);
6261
6268
}
6262
- // reset Token to null forcefullly
6269
+ )
6270
+ |
6271
+ LOOKAHEAD(3) (
6263
6272
{
6264
- tk2=null;
6265
- }
6266
- )
6267
- |
6268
- LOOKAHEAD(3) ( {tk=null;}
6269
- [ tk=<K_UNIQUE> ] [ tk3=<K_FULLTEXT> ] tk2=<K_KEY>
6273
+ tk=null;
6274
+ idxSpec.clear();
6275
+ }
6276
+ [ tk=<K_UNIQUE> ]
6277
+ [ tk3=<K_FULLTEXT> ] tk2=<K_KEY>
6270
6278
sk3=RelObjectName()
6271
- /* colNames=ColumnsNamesList() */
6272
6279
colNames = ColumnNamesWithParamsList()
6273
- { idxSpec.clear(); }
6274
6280
( parameter=CreateParameter() { idxSpec.addAll(parameter); } )*
6275
6281
{
6276
6282
index = new Index()
6277
- .withType(( tk!=null? tk.image + " ": "") + (tk3!=null? tk3.image + " ":"") + tk2.image)
6278
- .withName(sk3)
6279
- .withColumns(colNames)
6280
- .withIndexSpec(new ArrayList<String>(idxSpec));
6283
+ .withType( ( tk!=null ? tk.image + " " : "") + ( tk3!=null ? tk3.image + " ":"" ) + tk2.image)
6284
+ .withName(sk3)
6285
+ .withColumns(colNames)
6286
+ .withIndexSpec(new ArrayList<String>(idxSpec));
6281
6287
indexes.add(index);
6282
6288
}
6283
- )
6284
- |
6285
- LOOKAHEAD(3)(
6286
- {
6287
- fkIndex = new ForeignKeyIndex();
6288
- }
6289
- [<K_CONSTRAINT> sk3=RelObjectName() {fkIndex.setName(sk3);} ]
6290
- tk=<K_FOREIGN> tk2=<K_KEY>
6291
- /* colNames=ColumnsNamesList() */
6289
+ )
6290
+ |
6291
+ LOOKAHEAD(3)(
6292
+ {
6293
+ fkIndex = new ForeignKeyIndex();
6294
+ sk3=null;
6295
+
6296
+ }
6297
+ [ <K_CONSTRAINT> sk3=RelObjectName() { fkIndex.setName(sk3); } ]
6298
+ tk=<K_FOREIGN> tk2=<K_KEY>
6292
6299
colNames = ColumnNamesWithParamsList()
6293
6300
{
6294
6301
fkIndex.withType(tk.image + " " + tk2.image).withColumns(colNames);
@@ -6299,60 +6306,50 @@ CreateTable CreateTable(boolean isUsingOrReplace):
6299
6306
fkIndex.setReferencedColumnNames(colNames2);
6300
6307
indexes.add(fkIndex);
6301
6308
}
6302
- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
6303
- { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
6304
- )]
6305
- [LOOKAHEAD(2) (<K_ON> (tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
6306
- { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
6307
- )]
6308
- )
6309
- |
6310
- LOOKAHEAD(3)(
6311
- [<K_CONSTRAINT> sk3 = RelObjectName()]
6312
- {Expression exp = null;}
6313
- <K_CHECK> ("(" exp = Expression() ")")* {
6314
- checkCs = new CheckConstraint().withName(sk3).withExpression(exp);
6315
- indexes.add(checkCs);
6316
- }
6317
- )
6318
- |
6319
- LOOKAHEAD(2) tk=<K_EXCLUDE> {excludeC = new ExcludeConstraint(); Expression exp = null;}
6320
- (tk2=<K_WHERE>
6321
- ("(" exp = Expression() ")")* {excludeC.setExpression(exp);})
6322
- {
6323
- indexes.add(excludeC);
6324
- }
6325
- |
6326
- (
6327
-
6328
- coldef = ColumnDefinition()
6329
-
6330
- /*
6331
- columnName=RelObjectName()
6332
-
6333
- colDataType = ColDataType()
6334
- {
6335
- columnSpecs = new ArrayList<String>();
6336
- }
6337
-
6338
- ( parameter=CreateParameter() { columnSpecs.addAll(parameter); } )*
6339
-
6340
- {
6341
- coldef = new ColumnDefinition();
6342
- coldef.setColumnName(columnName);
6343
- coldef.setColDataType(colDataType);
6344
- if (columnSpecs.size() > 0)
6345
- coldef.setColumnSpecs(columnSpecs);
6346
- columnDefinitions.add(coldef);
6347
- } */
6348
- { columnDefinitions.add(coldef); }
6309
+ [ LOOKAHEAD(2) (
6310
+ <K_ON>
6311
+ ( tk=<K_DELETE> | tk=<K_UPDATE> ) action = Action()
6312
+ { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
6313
+ )
6314
+ ]
6315
+ [ LOOKAHEAD(2) (
6316
+ <K_ON>
6317
+ ( tk=<K_DELETE> | tk=<K_UPDATE>) action = Action()
6318
+ { fkIndex.setReferentialAction(ReferentialAction.Type.from(tk.image), action); }
6319
+ )
6320
+ ]
6321
+ )
6322
+ |
6323
+ LOOKAHEAD(3)(
6324
+ {
6325
+ sk3 = null;
6326
+ Expression exp = null;
6327
+ }
6328
+ [ <K_CONSTRAINT> sk3 = RelObjectName() ]
6329
+ <K_CHECK> ( "(" exp = Expression() ")" )*
6330
+ {
6331
+ checkCs = new CheckConstraint().withName(sk3).withExpression(exp);
6332
+ indexes.add(checkCs);
6333
+ }
6334
+ )
6335
+ |
6336
+ LOOKAHEAD(2) tk=<K_EXCLUDE> {excludeC = new ExcludeConstraint(); Expression exp = null;}
6337
+ (tk2=<K_WHERE>
6338
+ ("(" exp = Expression() ")")* {excludeC.setExpression(exp);})
6339
+ {
6340
+ indexes.add(excludeC);
6341
+ }
6342
+ |
6343
+ (
6344
+ coldef = ColumnDefinition()
6345
+ { columnDefinitions.add(coldef); }
6346
+ )
6349
6347
)
6350
- )
6351
- )*
6348
+ )*
6352
6349
6353
- ")"
6350
+ ")"
6354
6351
)
6355
- )
6352
+ )
6356
6353
]
6357
6354
( LOOKAHEAD(2, { getToken(1).kind != K_AS }) parameter=CreateParameter() { tableOptions.addAll(parameter); } )*
6358
6355
0 commit comments