File: blobs-doc_obj.sql

package info (click to toggle)
gnumed-server 22.31-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 46,268 kB
  • sloc: sql: 1,217,633; python: 15,878; sh: 1,590; makefile: 20
file content (75 lines) | stat: -rw-r--r-- 1,998 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
-- ==============================================================
-- GNUmed database schema change script
--
-- Source database version: v5
-- Target database version: v6
--
-- License: GPL v2 or later
-- Author: Karsten Hilbert
-- 
-- ==============================================================
-- $Id: blobs-doc_obj.sql,v 1.2 2007-05-07 16:33:06 ncq Exp $
-- $Revision: 1.2 $

-- --------------------------------------------------------------
\set ON_ERROR_STOP 1

-- --------------------------------------------------------------
-- seq_idx
\unset ON_ERROR_STOP
drop function blobs.trf_verify_page_number() cascade;
\set ON_ERROR_STOP 1


create function blobs.trf_verify_page_number()
	returns trigger
	language plpgsql
	as '
declare
	msg text;
begin
	if NEW.seq_idx is NULL then
		return NEW;
	end if;

	perform 1 from blobs.doc_obj where pk <> NEW.pk and fk_doc = NEW.fk_doc and seq_idx = NEW.seq_idx;
	if FOUND then
		msg := ''[blobs.trf_verify_page_number]: uniqueness violation: seq_idx ['' || NEW.seq_idx || ''] already exists for fk_doc ['' || NEW.fk_doc || '']'';
		raise exception ''%'', msg;
	end if;
	return NEW;
end;';


create trigger tr_verify_page_number
	before insert or update on blobs.doc_obj
	for each row execute procedure blobs.trf_verify_page_number()
;


-- file name
update blobs.doc_obj
	set filename = NULL
	where
		filename is not NULL and
		trim(filename) = '';

\unset ON_ERROR_STOP
alter table blobs.doc_obj drop constraint "doc_obj_filename_check";
\set ON_ERROR_STOP 1

alter table blobs.doc_obj
	add check (trim(coalesce(filename, 'NULL')) <> '');

-- --------------------------------------------------------------
select gm.log_script_insertion('$RCSfile: blobs-doc_obj.sql,v $', '$Revision: 1.2 $');

-- ==============================================================
-- $Log: blobs-doc_obj.sql,v $
-- Revision 1.2  2007-05-07 16:33:06  ncq
-- - log_script_insertion() now in gm.
--
-- Revision 1.1  2007/04/21 19:36:55  ncq
-- - tighten constraints
--
--