diff options
| author | Neil Conway <neilc@samurai.com> | 2005-01-27 23:36:15 +0000 |
|---|---|---|
| committer | Neil Conway <neilc@samurai.com> | 2005-01-27 23:36:15 +0000 |
| commit | f76730e35a05afb45abc487c76a01407e199da8d (patch) | |
| tree | 645aa7acce9b58384de95e70c30e591e7fd3b0b9 /src/backend | |
| parent | a885ecd6efc28b57b8079ae865a6a09035d1fc3d (diff) | |
| download | postgresql-f76730e35a05afb45abc487c76a01407e199da8d.tar.gz | |
Small patch to move get_grosysid() from catalog/aclchk.c to
utils/cache/lsyscache.c where it can be used by other things. Also
cleans up both get_usesysid() and get_grosysid() a bit. From Stephen
Frost.
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/catalog/aclchk.c | 24 | ||||
| -rw-r--r-- | src/backend/utils/cache/lsyscache.c | 39 |
2 files changed, 36 insertions, 27 deletions
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 23a4dbc03a..d1c33f57ad 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.109 2005/01/27 23:23:51 neilc Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.110 2005/01/27 23:36:06 neilc Exp $ * * NOTES * See acl.h. @@ -1208,28 +1208,6 @@ privilege_to_string(AclMode privilege) return NULL; /* appease compiler */ } - -AclId -get_grosysid(char *groname) -{ - HeapTuple tuple; - AclId id = 0; - - tuple = SearchSysCache(GRONAME, - PointerGetDatum(groname), - 0, 0, 0); - if (HeapTupleIsValid(tuple)) - { - id = ((Form_pg_group) GETSTRUCT(tuple))->grosysid; - ReleaseSysCache(tuple); - } - else - ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("group \"%s\" does not exist", groname))); - return id; -} - /* * Convert group ID to name, or return NULL if group can't be found */ diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c index b15f0f61fb..e417fcbec8 100644 --- a/src/backend/utils/cache/lsyscache.c +++ b/src/backend/utils/cache/lsyscache.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.119 2004/12/31 22:01:25 pgsql Exp $ + * $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.120 2005/01/27 23:36:12 neilc Exp $ * * NOTES * Eventually, the index information should go through here, too. @@ -25,6 +25,7 @@ #include "catalog/pg_operator.h" #include "catalog/pg_proc.h" #include "catalog/pg_shadow.h" +#include "catalog/pg_group.h" #include "catalog/pg_statistic.h" #include "catalog/pg_type.h" #include "nodes/makefuncs.h" @@ -2032,7 +2033,7 @@ get_namespace_name(Oid nspid) AclId get_usesysid(const char *username) { - int32 result; + AclId userId; HeapTuple userTup; userTup = SearchSysCache(SHADOWNAME, @@ -2043,9 +2044,39 @@ get_usesysid(const char *username) (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("user \"%s\" does not exist", username))); - result = ((Form_pg_shadow) GETSTRUCT(userTup))->usesysid; + userId = ((Form_pg_shadow) GETSTRUCT(userTup))->usesysid; ReleaseSysCache(userTup); - return result; + return userId; +} + +/* + * get_grosysid + * + * Given a group name, look up the group's sysid. + * Raises an error if no such group (rather than returning zero, + * which might possibly be a valid grosysid). + * + */ +AclId +get_grosysid(char *groname) +{ + AclId groupId; + HeapTuple groupTup; + + groupTup = SearchSysCache(GRONAME, + PointerGetDatum(groname), + 0, 0, 0); + if (!HeapTupleIsValid(groupTup)) + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("group \"%s\" does not exist", groname))); + + groupId = ((Form_pg_group) GETSTRUCT(groupTup))->grosysid; + + ReleaseSysCache(groupTup); + + return groupId; } + |
