@@ -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" ); }