Re: [PATCHES] Move get_grosysid() to utils/cache/lsyscache.c

2005-01-27 Thread Neil Conway
On Wed, 2004-12-29 at 11:36 -0500, Stephen Frost wrote:
   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.

Applied to HEAD. Thanks for the patch.

-Neil



---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [PATCHES] Move get_grosysid() to utils/cache/lsyscache.c

2005-01-26 Thread Neil Conway
On Wed, 2004-12-29 at 11:36 -0500, Stephen Frost wrote:
   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.  This is in
   preparation for 'Group Ownership' support.

I'll apply this to HEAD tomorrow, barring any objections.

-Neil



---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [PATCHES] Move get_grosysid() to utils/cache/lsyscache.c

2005-01-03 Thread Bruce Momjian

This has been saved for the 8.1 release:

http:/momjian.postgresql.org/cgi-bin/pgpatches2

---

Stephen Frost wrote:
 Greetings,
 
   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.  This is in
   preparation for 'Group Ownership' support.
 
   Thanks,
 
   Stephen

[ Attachment, skipping... ]

 
 ---(end of broadcast)---
 TIP 9: the planner will ignore your desire to choose an index scan if your
   joining column's datatypes do not match

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  pgman@candle.pha.pa.us   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


[PATCHES] Move get_grosysid() to utils/cache/lsyscache.c

2004-12-29 Thread Stephen Frost
Greetings,

  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.  This is in
  preparation for 'Group Ownership' support.

Thanks,

Stephen
diff -u -u -r1.107 aclchk.c
--- src/backend/catalog/aclchk.c29 Aug 2004 05:06:41 -  1.107
+++ src/backend/catalog/aclchk.c29 Dec 2004 16:32:57 -
@@ -1208,28 +1208,6 @@
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 -u -u -r1.118 lsyscache.c
--- src/backend/utils/cache/lsyscache.c 5 Nov 2004 19:16:14 -   1.118
+++ src/backend/utils/cache/lsyscache.c 29 Dec 2004 16:32:58 -
@@ -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 @@
 AclId
 get_usesysid(const char *username)
 {
-   int32   result;
+   AclId   userId;
HeapTuple   userTup;
 
userTup = SearchSysCache(SHADOWNAME,
@@ -2043,9 +2044,39 @@
(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;
 }
+
Index: src/include/utils/acl.h
===
RCS file: /projects/cvsroot/pgsql/src/include/utils/acl.h,v
retrieving revision 1.75
diff -u -u -r1.75 acl.h
--- src/include/utils/acl.h 29 Aug 2004 05:06:58 -  1.75
+++ src/include/utils/acl.h 29 Dec 2004 16:32:58 -
@@ -245,7 +245,6 @@
  * prototypes for functions in aclchk.c
  */
 extern void ExecuteGrantStmt(GrantStmt *stmt);
-extern AclId get_grosysid(char *groname);
 extern char *get_groname(AclId grosysid);
 
 extern AclMode pg_class_aclmask(Oid table_oid, AclId userid,
Index: src/include/utils/lsyscache.h
===
RCS file: /projects/cvsroot/pgsql/src/include/utils/lsyscache.h,v
retrieving revision 1.92
diff -u -u -r1.92 lsyscache.h
--- src/include/utils/lsyscache.h   5 Nov 2004 19:16:41 -   1.92
+++ src/include/utils/lsyscache.h   29 Dec 2004 16:32:58 -
@@ -115,7 +115,8 @@
  Datum *values, int nvalues,
  float4 *numbers, int nnumbers);
 extern char *get_namespace_name(Oid nspid);
-extern int32 get_usesysid(const char *username);
+extern AclId get_usesysid(const char *username);
+extern AclId get_grosysid(char *groname);
 
 #define is_array_type(typid)  (get_element_type(typid) != InvalidOid)
 

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match