@@ -3562,12 +3562,43 @@ SubSelect SubSelect() #SubSelect:
35623562 }
35633563}
35643564
3565+ List<Index.ColumnParams> ColumnNamesWithParamsList() : {
3566+ List<Index.ColumnParams> colNames = new ArrayList<Index.ColumnParams>();
3567+ String columnName;
3568+ List<String> parameter = null;
3569+ }
3570+ {
3571+ "("
3572+ columnName=RelObjectName()
3573+
3574+ { parameter = null; }
3575+ [ parameter = CreateParameter() ]
3576+ {
3577+ colNames.add(new Index.ColumnParams(columnName,parameter));
3578+ }
3579+
3580+ (
3581+ ","
3582+ columnName=RelObjectName()
3583+
3584+ { parameter = null; }
3585+ [ parameter = CreateParameter() ]
3586+ {
3587+ colNames.add(new Index.ColumnParams(columnName,parameter));
3588+ }
3589+ )*
3590+
3591+ ")"
3592+
3593+ { return colNames; }
3594+ }
3595+
35653596CreateIndex CreateIndex():
35663597{
35673598 CreateIndex createIndex = new CreateIndex();
35683599 Table table = null;
3569- List<Index.ColumnParams> colNames = new ArrayList<Index.ColumnParams>();
3570- Token columnName;
3600+ List<Index.ColumnParams> colNames;
3601+ // Token columnName;
35713602 Token using;
35723603 Index index = null;
35733604 //String name = null;
@@ -3591,31 +3622,8 @@ CreateIndex CreateIndex():
35913622
35923623 [ <K_USING> using=<S_IDENTIFIER> {index.setUsing(using.image);} ]
35933624
3594- "("
3595- (columnName=<S_IDENTIFIER>
3596- |
3597- columnName=<S_QUOTED_IDENTIFIER>)
3598-
3599- { parameter = null; }
3600- [ parameter = CreateParameter() ]
3601- {
3602- colNames.add(new Index.ColumnParams(columnName.image,parameter));
3603- }
3604-
3605- (
3606- ","
3607- (columnName=<S_IDENTIFIER>
3608- |
3609- columnName=<S_QUOTED_IDENTIFIER>)
3625+ colNames = ColumnNamesWithParamsList()
36103626
3611- { parameter = null; }
3612- [ parameter = CreateParameter() ]
3613- {
3614- colNames.add(new Index.ColumnParams(columnName.image,parameter));
3615- }
3616- )*
3617-
3618- ")"
36193627 [ tailParameter = CreateParameter() {} ]
36203628
36213629 {
@@ -3667,7 +3675,8 @@ CreateTable CreateTable():
36673675 String stringList = null;
36683676 ColumnDefinition coldef = null;
36693677 List indexes = new ArrayList();
3670- List colNames = null;
3678+ List<Index.ColumnParams> colNames = null;
3679+ List<String> colNames2 = null;
36713680 Index index = null;
36723681 ForeignKeyIndex fkIndex = null;
36733682 List<String> parameter = new ArrayList<String>();
@@ -3702,12 +3711,13 @@ CreateTable CreateTable():
37023711 LOOKAHEAD(3) (
37033712 tk=<K_INDEX>
37043713 sk3=RelObjectName()
3705- colNames=ColumnsNamesList()
3714+ /* colNames=ColumnsNamesList() */
3715+ colNames = ColumnNamesWithParamsList()
37063716 {
37073717 index = new Index();
37083718 index.setType(tk.image);
37093719 index.setName(sk3);
3710- index.setColumnsNames (colNames);
3720+ index.setColumnNamesWithParams (colNames);
37113721 indexes.add(index);
37123722 }
37133723 )
@@ -3721,10 +3731,11 @@ CreateTable CreateTable():
37213731 (tk=<K_PRIMARY> tk2=<K_KEY> {index.setType(tk.image + " " + tk2.image);}
37223732 | tk=<K_UNIQUE> [ tk2=<K_KEY> ] {index.setType(tk.image + (tk2!=null?" " + tk2.image:""));}
37233733 )
3724- colNames=ColumnsNamesList()
3734+ /* colNames=ColumnsNamesList() */
3735+ colNames = ColumnNamesWithParamsList()
37253736 ( parameter=CreateParameter() { idxSpec.addAll(parameter); } )*
37263737 {
3727- index.setColumnsNames (colNames);
3738+ index.setColumnNamesWithParams (colNames);
37283739 index.setIndexSpec(idxSpec);
37293740 indexes.add(index);
37303741 }
@@ -3733,12 +3744,13 @@ CreateTable CreateTable():
37333744 LOOKAHEAD(3) ( {tk=null;}
37343745 [ tk=<K_UNIQUE> ] [ tk3=<K_FULLTEXT> ] tk2=<K_KEY>
37353746 sk3=RelObjectName()
3736- colNames=ColumnsNamesList()
3747+ /* colNames=ColumnsNamesList() */
3748+ colNames = ColumnNamesWithParamsList()
37373749 {
37383750 index = new Index();
37393751 index.setType((tk!=null?tk.image + " ":"") + (tk3!=null?tk3.image + " ":"") + tk2.image);
37403752 index.setName(sk3);
3741- index.setColumnsNames (colNames);
3753+ index.setColumnNamesWithParams (colNames);
37423754 indexes.add(index);
37433755 }
37443756 )
@@ -3749,15 +3761,16 @@ CreateTable CreateTable():
37493761 }
37503762 [<K_CONSTRAINT> sk3=RelObjectName() {fkIndex.setName(sk3);} ]
37513763 tk=<K_FOREIGN> tk2=<K_KEY>
3752- colNames=ColumnsNamesList()
3764+ /* colNames=ColumnsNamesList() */
3765+ colNames = ColumnNamesWithParamsList()
37533766 {
37543767 fkIndex.setType(tk.image + " " + tk2.image);
3755- fkIndex.setColumnsNames (colNames);
3768+ fkIndex.setColumnNamesWithParams (colNames);
37563769 }
3757- <K_REFERENCES> fkTable=Table() colNames =ColumnsNamesList()
3770+ <K_REFERENCES> fkTable=Table() colNames2 =ColumnsNamesList()
37583771 {
37593772 fkIndex.setTable(fkTable);
3760- fkIndex.setReferencedColumnNames(colNames );
3773+ fkIndex.setReferencedColumnNames(colNames2 );
37613774 indexes.add(fkIndex);
37623775 }
37633776 [LOOKAHEAD(2) (<K_ON> <K_DELETE>
0 commit comments