From 82fd372c0c45826ae129647380cb9aca868470d7 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Mon, 19 Mar 2007 14:12:37 +1200 Subject: [PATCH] Add a function to provide a textual list of relationships for display. --- dba/caldav_functions.sql | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dba/caldav_functions.sql b/dba/caldav_functions.sql index 2ccf2889..cdbddde6 100644 --- a/dba/caldav_functions.sql +++ b/dba/caldav_functions.sql @@ -319,3 +319,23 @@ BEGIN RETURN TRUE; END; ' LANGUAGE 'plpgsql' STRICT; + +-- List a user's relationships as a text string +CREATE or REPLACE FUNCTION relationship_list( INTEGER ) RETURNS TEXT AS ' +DECLARE + user ALIAS FOR $1; + r RECORD; + rlist TEXT; +BEGIN + rlist := ''''; + FOR r IN SELECT rt_name, fullname FROM relationship + LEFT JOIN relationship_type USING(rt_id) LEFT JOIN usr tgt ON to_user = tgt.user_no + WHERE from_user = user + LOOP + rlist := rlist + || CASE WHEN rlist = '''' THEN '''' ELSE '', '' END + || r.rt_name || ''('' || r.fullname || '')''; + END LOOP; + RETURN rlist; +END; +' LANGUAGE 'plpgsql';