@@ -204,6 +204,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
204204| <K_FETCH:"FETCH">
205205| <K_NEXT:"NEXT">
206206| <K_ONLY:"ONLY">
207+ | <K_COMMIT:"COMMIT">
207208}
208209
209210TOKEN : /* Numeric Constants */
@@ -2117,7 +2118,8 @@ CreateTable CreateTable():
21172118 Table table = null;
21182119 List columnDefinitions = new ArrayList();
21192120 List columnSpecs = null;
2120- List tableOptions = new ArrayList();
2121+ List<String> tableOptions = new ArrayList<String>();
2122+ List<String> createOptions = new ArrayList<String>();
21212123 Token columnName;
21222124 Token tk = null;
21232125 Token tk2 = null;
@@ -2138,7 +2140,7 @@ CreateTable CreateTable():
21382140 // TODO:
21392141// [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ]
21402142 [ <K_UNLOGGED> { createTable.setUnlogged(true); } ]
2141- (CreateParameter())*
2143+ (parameter = CreateParameter() { createOptions.add(parameter); } )*
21422144
21432145 <K_TABLE> table=Table()
21442146 [
@@ -2262,6 +2264,8 @@ CreateTable CreateTable():
22622264 createTable.setTable(table);
22632265 if (indexes.size() > 0)
22642266 createTable.setIndexes(indexes);
2267+ if (createOptions.size() > 0)
2268+ createTable.setCreateOptionsStrings(createOptions);
22652269 if (tableOptions.size() > 0)
22662270 createTable.setTableOptionsStrings(tableOptions);
22672271 if (columnDefinitions.size() > 0)
@@ -2336,6 +2340,12 @@ String CreateParameter():
23362340 |
23372341 tk=<S_DOUBLE> { retval = tk.image; }
23382342 |
2343+ tk=<K_ON> { retval = tk.image; }
2344+ |
2345+ tk=<K_COMMIT> { retval = tk.image; }
2346+ |
2347+ tk=<K_ROWS> { retval = tk.image; }
2348+ |
23392349 "=" { retval = "="; }
23402350 |
23412351 retval=AList()
0 commit comments