-- Copyright (C) 2013 The Meme Factory, Inc., http://www.meme.com/
--
-- This file is part of Gombe-MI.
--
-- Gombe-MI is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with Gombe-MI. If not, see .
--
-- Add the moms of the follows as groupmembers to the existing groups
-- (for all (9am to 5pm) intervals of follows 1-2,
-- the follows of the first day).
--
-- All data appearing in this work are fictitious. Any resemblance to
-- actual data, living or archived, is purely coincidental.
--
-- Karl O. Pinc
--
--
-- Main tables.
--
do $$
declare
this_time time;
this_mom varchar array;
a_mom varchar;
begin
-- Find the mom for each of the 4 follows.
for fid in 1 .. 2 loop
select followparts.chimpid
into strict a_mom
from followparts
join followroles on (followroles.role = followparts.role)
where followparts.followid = fid
and followroles.function = 'M';
this_mom[fid] := a_mom;
end loop;
-- The group composition is all taken at 5 minute intervals so use
-- that to find the groups.
this_time := '9:00';
while this_time <= '17:00' loop
for fid in 1 .. 2 loop
-- Give each of the groups a mom.
insert into groupmembers (gid, chimpid, uncertain)
select intervals.gid, this_mom[fid], 'f'
from intervals
where intervals.followid = fid
and intervals.time = this_time;
end loop;
this_time := this_time + '5 minute'::interval;
end loop;
end;
$$;