diff options
Diffstat (limited to 'src/backend/commands/user.c')
-rw-r--r-- | src/backend/commands/user.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index adc6b99b215..a3521e77570 100644 --- a/src/backend/commands/user.c +++ b/src/backend/commands/user.c @@ -449,7 +449,7 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt) foreach(item, addroleto) { RoleSpec *oldrole = lfirst(item); - HeapTuple oldroletup = get_rolespec_tuple((Node *) oldrole); + HeapTuple oldroletup = get_rolespec_tuple(oldrole); Oid oldroleid = HeapTupleGetOid(oldroletup); char *oldrolename = NameStr(((Form_pg_authid) GETSTRUCT(oldroletup))->rolname); @@ -1396,9 +1396,11 @@ roleSpecsToIds(List *memberNames) foreach(l, memberNames) { - Node *rolespec = (Node *) lfirst(l); + RoleSpec *rolespec = (RoleSpec *) lfirst(l); Oid roleid; + Assert(IsA(rolespec, RoleSpec)); + roleid = get_rolespec_oid(rolespec, false); result = lappend_oid(result, roleid); } @@ -1493,7 +1495,7 @@ AddRoleMems(const char *rolename, Oid roleid, ereport(ERROR, (errcode(ERRCODE_INVALID_GRANT_OPERATION), (errmsg("role \"%s\" is a member of role \"%s\"", - rolename, get_rolespec_name((Node *) memberRole))))); + rolename, get_rolespec_name(memberRole))))); /* * Check if entry for this role/member already exists; if so, give @@ -1508,7 +1510,7 @@ AddRoleMems(const char *rolename, Oid roleid, { ereport(NOTICE, (errmsg("role \"%s\" is already a member of role \"%s\"", - get_rolespec_name((Node *) memberRole), rolename))); + get_rolespec_name(memberRole), rolename))); ReleaseSysCache(authmem_tuple); continue; } @@ -1619,7 +1621,7 @@ DelRoleMems(const char *rolename, Oid roleid, { ereport(WARNING, (errmsg("role \"%s\" is not a member of role \"%s\"", - get_rolespec_name((Node *) memberRole), rolename))); + get_rolespec_name(memberRole), rolename))); continue; } |