/ db / test / sql /
/db/test/sql/biography_u_sibrev
1 -- Copyright (C) 2012 The Meme Factory, Inc., http://www.meme.com/
2 --
3 -- This file is part of Gombe-MI.
4 --
5 -- Gombe-MI is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
9 --
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
14 --
15 -- You should have received a copy of the GNU General Public License
16 -- along with Gombe-MI. If not, see <http://www.gnu.org/licenses/>.
17 --
18 -- SQL to test on update of of biography_data that the sib cannot be
19 -- younger than the infant.
20 --
21 -- All data appearing in this work are fictitious. Any resemblance to
22 -- actual data, living or archived, is purely coincidental.
23 --
24 -- Karl O. Pinc <kop@meme.com>
25 --
26
27 -- Commit the transaction and then start a new one so as to
28 -- be sure that we test the biography_data update trigger, which
29 -- is deferred until transaction commit.
30 commit;
31 begin;
32
33 --
34 -- Main tables.
35 --
36
37 -- biography_data
38 do $$
39 declare
40 this_date date;
41
42 begin
43
44 select biography_data.birthdate
45 from biography_data
46 into this_date
47 where biography_data.animid = 'KID';
48
49 update biography_data
50 set birthdate = this_date
51 , bdmin = this_date
52 , bdmax = this_date
53 , entrydate = this_date
54 where animid = 'SIB';
55 end;
56 $$;
57
58 select 'Sib must be older than infant in follow: on update of biography_data' as message;