Yep, that's it!

---------------------------------------------------------------------------

Joe Conway wrote:
> Bruce Momjian wrote:
> > Allow easy display of usernames in a group (pg_hba.conf uses groups now)
> 
> Hows this:
> 
> parts=# select * from pg_group ;
>   groname | grosysid |    grolist
> ---------+----------+---------------
>   grp     |      100 | {100,101,102}
>   grp2    |      101 | {102}
> (2 rows)
> 
> parts=# select usename,usesysid from pg_user;
>   usename  | usesysid
> ----------+----------
>   postgres |        1
>   user1    |      100
>   user2    |      101
>   user3    |      102
> (4 rows)
> 
> CREATE FUNCTION show_group(text) RETURNS SETOF text AS '
> DECLARE
>    loginname text;
>    low int;
>    high int;
> BEGIN
>    SELECT INTO low
>      replace(split(array_dims(grolist),'':'',1),''['','''')::int
>      FROM pg_group WHERE groname = $1;
>    SELECT INTO high
>      replace(split(array_dims(grolist),'':'',2),'']'','''')::int
>      FROM pg_group WHERE groname = $1;
> 
>    FOR i IN low..high LOOP
>      SELECT INTO loginname s.usename
>        FROM pg_shadow s join pg_group g on s.usesysid = g.grolist[i];
>      RETURN NEXT loginname;
>    END LOOP;
>    RETURN;
> END;
> ' LANGUAGE 'plpgsql';
> 
> parts=# select * from show_group('grp');
>   show_group
> ------------
>   user1
>   user2
>   user3
> (3 rows)
> 
> parts=# select * from show_group('grp2');
>   show_group
> ------------
>   user1
> (1 row)
> 
> 
> --Joe
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (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 4: Don't 'kill -9' the postmaster

Reply via email to