aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2009-12-26 16:55:21 +0000
committerBruce Momjian <bruce@momjian.us>2009-12-26 16:55:21 +0000
commit1fd9883ff49fdc4008c6a17936441b74696ff1a9 (patch)
tree82cc23f4939a26c84374c1f26914ebb15914ad87 /src/backend/parser
parentf9845aca2b0f123b759ce1624d563c497902703f (diff)
downloadpostgresql-1fd9883ff49fdc4008c6a17936441b74696ff1a9.tar.gz
postgresql-1fd9883ff49fdc4008c6a17936441b74696ff1a9.zip
Zero-label enums:
Allow enums to be created with zero labels, for use during binary upgrade.
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 30663d578ea..333b65bb9e8 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.699 2009/12/23 17:41:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.700 2009/12/26 16:55:21 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -297,7 +297,7 @@ static TypeName *TableFuncTypeName(List *columns);
TableFuncElementList opt_type_modifiers
prep_type_clause
execute_param_clause using_clause returning_clause
- enum_val_list table_func_column_list
+ opt_enum_val_list enum_val_list table_func_column_list
create_generic_options alter_generic_options
relation_expr_list dostmt_opt_list
@@ -3623,7 +3623,7 @@ DefineStmt:
n->coldeflist = $6;
$$ = (Node *)n;
}
- | CREATE TYPE_P any_name AS ENUM_P '(' enum_val_list ')'
+ | CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')'
{
CreateEnumStmt *n = makeNode(CreateEnumStmt);
n->typeName = $3;
@@ -3715,6 +3715,11 @@ old_aggr_elem: IDENT '=' def_arg
}
;
+opt_enum_val_list:
+ enum_val_list { $$ = $1; }
+ | /*EMPTY*/ { $$ = NIL; }
+ ;
+
enum_val_list: Sconst
{ $$ = list_make1(makeString($1)); }
| enum_val_list ',' Sconst