@@ -199,7 +199,7 @@ make_name(void)
199
199
READ , REFERENCES , RELATIVE , REVOKE , RIGHT , ROLLBACK ,
200
200
SCHEMA , SCROLL , SECOND_P , SELECT , SESSION , SESSION_USER , SET , SOME , SUBSTRING ,
201
201
TABLE , TEMPORARY , THEN , TIME , TIMESTAMP , TIMEZONE_HOUR ,
202
- TIMEZONE_MINUTE , TO , TOAST , TRAILING , TRANSACTION , TRIM , TRUE_P ,
202
+ TIMEZONE_MINUTE , TO , TRAILING , TRANSACTION , TRIM , TRUE_P ,
203
203
UNION , UNIQUE , UPDATE , USER , USING ,
204
204
VALUES , VARCHAR , VARYING , VIEW ,
205
205
WHEN , WHERE , WITH , WITHOUT , WORK , YEAR_P , ZONE
@@ -232,7 +232,7 @@ make_name(void)
232
232
OPERATOR , OWNER , PASSWORD , PROCEDURAL , REINDEX , RENAME , RESET ,
233
233
RETURNS , ROW , RULE , SEQUENCE , SERIAL , SETOF , SHARE ,
234
234
SHOW , START , STATEMENT , STDIN , STDOUT , SYSID TEMP ,
235
- TRUNCATE , TRUSTED , UNDER , UNLISTEN , UNTIL , VACUUM ,
235
+ TEMPLATE , TOAST , TRUNCATE , TRUSTED , UNDER , UNLISTEN , UNTIL , VACUUM ,
236
236
VALID , VERBOSE , VERSION
237
237
238
238
/* The grammar thinks these are keywords, but they are not in the keywords.c
@@ -2251,11 +2251,8 @@ LoadStmt: LOAD file_name
2251
2251
*
2252
2252
*****************************************************************************/
2253
2253
2254
- CreatedbStmt : CREATE DATABASE database_name WITH createdb_opt_location createdb_opt_encoding
2254
+ CreatedbStmt : CREATE DATABASE database_name WITH createdb_opt_list
2255
2255
{
2256
- if (strlen($5 ) == 0 || strlen($6 ) == 0 )
2257
- mmerror (ET_ERROR, " CREATE DATABASE WITH requires at least an option." );
2258
-
2259
2256
$$ = cat_str(5 , make_str(" create database" ), $3 , make_str(" with" ), $5 , $6 );
2260
2257
}
2261
2258
| CREATE DATABASE database_name
@@ -2264,20 +2261,24 @@ CreatedbStmt: CREATE DATABASE database_name WITH createdb_opt_location createdb
2264
2261
}
2265
2262
;
2266
2263
2267
- createdb_opt_location : LOCATION ' =' StringConst { $$ = cat2_str(make_str(" location =" ), $3 ); }
2268
- | LOCATION ' =' DEFAULT { $$ = make_str(" location = default" ); }
2269
- | /* EMPTY*/ { $$ = EMPTY; }
2270
- ;
2264
+ createdb_opt_list : createdb_opt_item
2265
+ { $$ = $1 ; }
2266
+ | createdb_opt_list createdb_opt_item
2267
+ { $$ = cat2_str($1 , $2 ); }
2268
+ ;
2271
2269
2272
- createdb_opt_encoding : ENCODING ' =' PosIntStringConst
2270
+ createdb_opt_item : LOCATION ' =' StringConst { $$ = cat2_str(make_str(" location =" ), $3 ); }
2271
+ | LOCATION ' =' DEFAULT { $$ = make_str(" location = default" ); }
2272
+ | TEMPLATE ' =' name { $$ = cat2_str(make_str(" template =" ), $3 ); }
2273
+ | TEMPLATE ' =' DEFAULT { $$ = make_str(" template = default" ); }
2274
+ | ENCODING ' =' PosIntStringConst
2273
2275
{
2274
2276
$$ = cat2_str(make_str(" encoding =" ), $3 );
2275
2277
}
2276
2278
| ENCODING ' =' DEFAULT
2277
2279
{
2278
2280
$$ = make_str(" encoding = default" );
2279
2281
}
2280
- | /* EMPTY*/ { $$ = NULL ; }
2281
2282
;
2282
2283
2283
2284
/* ****************************************************************************
@@ -5076,6 +5077,7 @@ TokenId: ABSOLUTE { $$ = make_str("absolute"); }
5076
5077
| STDOUT { $$ = make_str(" stdout" ); }
5077
5078
| SYSID { $$ = make_str(" sysid" ); }
5078
5079
| TEMP { $$ = make_str(" temp" ); }
5080
+ | TEMPLATE { $$ = make_str(" template" ); }
5079
5081
| TEMPORARY { $$ = make_str(" temporary" ); }
5080
5082
| TIMEZONE_HOUR { $$ = make_str(" timezone_hour" ); }
5081
5083
| TIMEZONE_MINUTE { $$ = make_str(" timezone_minute" ); }
0 commit comments