From 9f53cfd9dbe4b537e01cc2f2c1d862897706eecd Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 23 Sep 2005 22:25:25 +0000
Subject: [PATCH] Add comments explaining clauses used by CREATE ROLE but not
 ALTER.

---
 src/backend/parser/gram.y | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index c2cdf58c2e9..4440cf351a7 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.510 2005/09/05 23:50:48 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.511 2005/09/23 22:25:25 momjian Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -623,10 +623,6 @@ OptRoleElem:
 					$$ = makeDefElem("unencryptedPassword",
 									 (Node *)makeString($3));
 				}
-			| SYSID Iconst
-				{
-					$$ = makeDefElem("sysid", (Node *)makeInteger($2));
-				}
 			| SUPERUSER_P
 				{
 					$$ = makeDefElem("superuser", (Node *)makeInteger(TRUE));
@@ -680,17 +676,19 @@ OptRoleElem:
 				{
 					$$ = makeDefElem("connectionlimit", (Node *)makeInteger($3));
 				}
-			| IN_P ROLE name_list
+			| VALID UNTIL Sconst
 				{
-					$$ = makeDefElem("addroleto", (Node *)$3);
+					$$ = makeDefElem("validUntil", (Node *)makeString($3));
 				}
-			| IN_P GROUP_P name_list
+		/*	Supported but not documented for roles, for use by ALTER GROUP. */
+			| USER name_list
 				{
-					$$ = makeDefElem("addroleto", (Node *)$3);
+					$$ = makeDefElem("rolemembers", (Node *)$2);
 				}
-			| VALID UNTIL Sconst
+		/* The following are not supported by ALTER ROLE/USER/GROUP */
+			| SYSID Iconst
 				{
-					$$ = makeDefElem("validUntil", (Node *)makeString($3));
+					$$ = makeDefElem("sysid", (Node *)makeInteger($2));
 				}
 			| ADMIN name_list
 				{
@@ -700,9 +698,13 @@ OptRoleElem:
 				{
 					$$ = makeDefElem("rolemembers", (Node *)$2);
 				}
-			| USER name_list
+			| IN_P ROLE name_list
 				{
-					$$ = makeDefElem("rolemembers", (Node *)$2);
+					$$ = makeDefElem("addroleto", (Node *)$3);
+				}
+			| IN_P GROUP_P name_list
+				{
+					$$ = makeDefElem("addroleto", (Node *)$3);
 				}
 		;
 
-- 
GitLab