db/3712154_to_38893b5.sql

36 lines
753 B
PL/PgSQL

set check_function_bodies = off;
CREATE OR REPLACE FUNCTION public.do_grp_add_admins()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
declare
admins int[];
begin
admins := ( select array_agg(usr.id)
from public.grp_members_admins() as usr
);
perform public.grp_add_members( to_grp => NEW.id
, add_usrs => admins
);
return null;
end;
$function$
;
CREATE OR REPLACE FUNCTION public.grp_members(of_grp integer)
RETURNS SETOF usr
LANGUAGE plpgsql
STABLE
AS $function$
begin
return query select u.*
from public.grp_usr gu
inner join public.usr u on gu.usr = u.id
where gu.grp = of_grp;
end;
$function$
;