/ db / test / sql /
/db/test/sql/intervals_abandonsheet
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 the intervals table integrity constraints.
19 -- Raise an error because sheets are left without related intervals.
20 -- Test the intervals trigger.
21 --
22 -- All data appearing in this work are fictitious. Any resemblance to
23 -- actual data, living or archived, is purely coincidental.
24 --
25 -- Karl O. Pinc <kop@meme.com>
26 --
27
28 -- Because intervals delete sheets on commit we must commit additions
29 -- or else we get a race condition on whether the intervals delete commit
30 -- trigger fires first or the sheets insert commit trigger.
31 commit;
32 begin;
33
34 delete from intervals
35 where sheetid = 2;
36
37 -- Then delete the follow so we don't get a follow without intervals.
38 delete from follows
39 where followid = 2;
40
41 commit;
42 begin;
43
44 -- See that the delete trigger did it's job.
45 select count(*) from sheets where sheetid = 2;