1111 *
1212 *
1313 * IDENTIFICATION
14- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.510 2005/09/05 23:50:48 tgl Exp $
14+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.511 2005/09/23 22:25:25 momjian Exp $
1515 *
1616 * HISTORY
1717 * AUTHORDATEMAJOR EVENT
@@ -623,10 +623,6 @@ OptRoleElem:
623623$$ = makeDefElem(" unencryptedPassword" ,
624624 (Node *)makeString($3 ));
625625}
626- | SYSID Iconst
627- {
628- $$ = makeDefElem(" sysid" , (Node *)makeInteger($2 ));
629- }
630626| SUPERUSER_P
631627{
632628$$ = makeDefElem(" superuser" , (Node *)makeInteger(TRUE ));
@@ -680,17 +676,19 @@ OptRoleElem:
680676{
681677$$ = makeDefElem(" connectionlimit" , (Node *)makeInteger($3 ));
682678}
683- | IN_P ROLE name_list
679+ | VALID UNTIL Sconst
684680{
685- $$ = makeDefElem(" addroleto " , (Node *)$3 );
681+ $$ = makeDefElem(" validUntil " , (Node *)makeString( $3 ) );
686682}
687- | IN_P GROUP_P name_list
683+ /* Supported but not documented for roles, for use by ALTER GROUP.*/
684+ | USER name_list
688685{
689- $$ = makeDefElem(" addroleto " , (Node *)$3 );
686+ $$ = makeDefElem(" rolemembers " , (Node *)$2 );
690687}
691- | VALID UNTIL Sconst
688+ /* The following are not supported by ALTER ROLE/USER/GROUP*/
689+ | SYSID Iconst
692690{
693- $$ = makeDefElem(" validUntil " , (Node *)makeString( $3 ));
691+ $$ = makeDefElem(" sysid " , (Node *)makeInteger( $2 ));
694692}
695693| ADMIN name_list
696694{
@@ -700,9 +698,13 @@ OptRoleElem:
700698{
701699$$ = makeDefElem(" rolemembers" , (Node *)$2 );
702700}
703- | USER name_list
701+ | IN_P ROLE name_list
704702{
705- $$ = makeDefElem(" rolemembers" , (Node *)$2 );
703+ $$ = makeDefElem(" addroleto" , (Node *)$3 );
704+ }
705+ | IN_P GROUP_P name_list
706+ {
707+ $$ = makeDefElem(" addroleto" , (Node *)$3 );
706708}
707709;
708710