Update Vcs-* headers.
[debian/quickappoint.git] / doc / dump.sql
1 --
2 -- PostgreSQL database dump
3 --
4
5 SET client_encoding = 'LATIN9';
6 SET check_function_bodies = false;
7
8 SET search_path = public, pg_catalog;
9
10 --
11 -- TOC entry 20 (OID 52099)
12 -- Name: plpgsql_call_handler(); Type: FUNC PROCEDURAL LANGUAGE; Schema: public; Owner: philipp
13 --
14
15 CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler
16     AS '$libdir/plpgsql', 'plpgsql_call_handler'
17     LANGUAGE c;
18
19
20 --
21 -- TOC entry 18 (OID 52100)
22 -- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: public; Owner: 
23 --
24
25 CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler;
26
27
28 --
29 -- TOC entry 5 (OID 21697)
30 -- Name: person; Type: TABLE; Schema: public; Owner: gregoa
31 --
32
33 CREATE TABLE person (
34     id serial NOT NULL,
35     username character varying(16) NOT NULL,
36     "password" character varying(32) DEFAULT ''::character varying NOT NULL,
37     fullname character varying(64),
38     email character varying(64),
39     manageperson boolean DEFAULT false NOT NULL,
40     addappointment boolean DEFAULT false NOT NULL,
41     locale character varying(32)
42 ) WITHOUT OIDS;
43
44
45 --
46 -- TOC entry 6 (OID 21704)
47 -- Name: proposal; Type: TABLE; Schema: public; Owner: gregoa
48 --
49
50 CREATE TABLE proposal (
51     id serial NOT NULL,
52     appointmentid bigint NOT NULL,
53     date date NOT NULL,
54     "time" time without time zone,
55     status smallint DEFAULT 0 NOT NULL,
56     accepted boolean
57 ) WITHOUT OIDS;
58
59
60 --
61 -- TOC entry 7 (OID 21710)
62 -- Name: appointment; Type: TABLE; Schema: public; Owner: gregoa
63 --
64
65 CREATE TABLE appointment (
66     id serial NOT NULL,
67     title character varying(32) NOT NULL,
68     description text,
69     "location" character varying(128),
70     "minvalue" smallint DEFAULT 0 NOT NULL,
71     "maxvalue" smallint DEFAULT 10 NOT NULL,
72     approvaldesc boolean DEFAULT false NOT NULL,
73     cssname character varying(256),
74     creator_personid integer,
75     creation_date date DEFAULT now(),
76     expire_date date,
77     CONSTRAINT min_max_check CHECK (("minvalue" < "maxvalue"))
78 ) WITHOUT OIDS;
79
80
81 --
82 -- TOC entry 8 (OID 21720)
83 -- Name: response; Type: TABLE; Schema: public; Owner: gregoa
84 --
85
86 CREATE TABLE response (
87     personid bigint NOT NULL,
88     proposalid bigint NOT NULL,
89     value smallint NOT NULL,
90     "comment" text
91 ) WITHOUT OIDS;
92
93
94 --
95 -- TOC entry 9 (OID 21725)
96 -- Name: permission; Type: TABLE; Schema: public; Owner: gregoa
97 --
98
99 CREATE TABLE permission (
100     personid bigint NOT NULL,
101     appointmentid bigint NOT NULL,
102     manageproposal boolean DEFAULT false NOT NULL,
103     manageappointment boolean DEFAULT false NOT NULL,
104     manageperson boolean DEFAULT false NOT NULL,
105     insertproposal boolean DEFAULT false NOT NULL,
106     updateproposal boolean DEFAULT false NOT NULL,
107     deleteproposal boolean DEFAULT false NOT NULL
108 ) WITHOUT OIDS;
109
110
111 --
112 -- TOC entry 19 (OID 52775)
113 -- Name: insert_creator_permission(); Type: FUNCTION; Schema: public; Owner: philipp
114 --
115
116 CREATE FUNCTION insert_creator_permission() RETURNS "trigger"
117     AS 'begin insert into permission (personid, appointmentid, manageproposal, manageappointment, manageperson) values (NEW.creator_personid, NEW.id, ''t'', ''t'', ''t''); return null; end;'
118     LANGUAGE plpgsql;
119
120
121 --
122 -- TOC entry 11 (OID 21730)
123 -- Name: person_pkey; Type: CONSTRAINT; Schema: public; Owner: gregoa
124 --
125
126 ALTER TABLE ONLY person
127     ADD CONSTRAINT person_pkey PRIMARY KEY (id);
128
129
130 --
131 -- TOC entry 12 (OID 21732)
132 -- Name: person_username_key; Type: CONSTRAINT; Schema: public; Owner: gregoa
133 --
134
135 ALTER TABLE ONLY person
136     ADD CONSTRAINT person_username_key UNIQUE (username);
137
138
139 --
140 -- TOC entry 15 (OID 21734)
141 -- Name: appointment_pkey; Type: CONSTRAINT; Schema: public; Owner: gregoa
142 --
143
144 ALTER TABLE ONLY appointment
145     ADD CONSTRAINT appointment_pkey PRIMARY KEY (id);
146
147
148 --
149 -- TOC entry 14 (OID 21736)
150 -- Name: proposal_pkey; Type: CONSTRAINT; Schema: public; Owner: gregoa
151 --
152
153 ALTER TABLE ONLY proposal
154     ADD CONSTRAINT proposal_pkey PRIMARY KEY (id);
155
156
157 --
158 -- TOC entry 13 (OID 21738)
159 -- Name: proposal_appointmentid_key; Type: CONSTRAINT; Schema: public; Owner: gregoa
160 --
161
162 ALTER TABLE ONLY proposal
163     ADD CONSTRAINT proposal_appointmentid_key UNIQUE (appointmentid, date, "time");
164
165
166 --
167 -- TOC entry 17 (OID 21740)
168 -- Name: permission_pkey; Type: CONSTRAINT; Schema: public; Owner: gregoa
169 --
170
171 ALTER TABLE ONLY permission
172     ADD CONSTRAINT permission_pkey PRIMARY KEY (personid, appointmentid);
173
174
175 --
176 -- TOC entry 16 (OID 38159)
177 -- Name: response_proposalid_key; Type: CONSTRAINT; Schema: public; Owner: gregoa
178 --
179
180 ALTER TABLE ONLY response
181     ADD CONSTRAINT response_proposalid_key UNIQUE (proposalid, personid);
182
183
184 --
185 -- TOC entry 21 (OID 21742)
186 -- Name: proposal_appointmentid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: gregoa
187 --
188
189 ALTER TABLE ONLY proposal
190     ADD CONSTRAINT proposal_appointmentid_fkey FOREIGN KEY (appointmentid) REFERENCES appointment(id) ON UPDATE CASCADE ON DELETE CASCADE;
191
192
193 --
194 -- TOC entry 23 (OID 21746)
195 -- Name: response_personid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: gregoa
196 --
197
198 ALTER TABLE ONLY response
199     ADD CONSTRAINT response_personid_fkey FOREIGN KEY (personid) REFERENCES person(id) ON UPDATE CASCADE ON DELETE CASCADE;
200
201
202 --
203 -- TOC entry 24 (OID 21750)
204 -- Name: response_proposalid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: gregoa
205 --
206
207 ALTER TABLE ONLY response
208     ADD CONSTRAINT response_proposalid_fkey FOREIGN KEY (proposalid) REFERENCES proposal(id) ON UPDATE CASCADE ON DELETE CASCADE;
209
210
211 --
212 -- TOC entry 25 (OID 21754)
213 -- Name: permission_personid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: gregoa
214 --
215
216 ALTER TABLE ONLY permission
217     ADD CONSTRAINT permission_personid_fkey FOREIGN KEY (personid) REFERENCES person(id) ON UPDATE CASCADE ON DELETE CASCADE;
218
219
220 --
221 -- TOC entry 26 (OID 21758)
222 -- Name: permission_appointmentid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: gregoa
223 --
224
225 ALTER TABLE ONLY permission
226     ADD CONSTRAINT permission_appointmentid_fkey FOREIGN KEY (appointmentid) REFERENCES appointment(id) ON UPDATE CASCADE ON DELETE CASCADE;
227
228
229 --
230 -- TOC entry 22 (OID 52771)
231 -- Name: appointment_creator_personid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: gregoa
232 --
233
234 ALTER TABLE ONLY appointment
235     ADD CONSTRAINT appointment_creator_personid_fkey FOREIGN KEY (creator_personid) REFERENCES person(id) ON UPDATE CASCADE ON DELETE SET NULL;
236
237
238 --
239 -- TOC entry 27 (OID 52776)
240 -- Name: set_permissions_for_new_appointment; Type: TRIGGER; Schema: public; Owner: gregoa
241 --
242
243 CREATE TRIGGER set_permissions_for_new_appointment
244     AFTER INSERT ON appointment
245     FOR EACH ROW
246     EXECUTE PROCEDURE insert_creator_permission();
247
248
249 --
250 -- TOC entry 3 (OID 2200)
251 -- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
252 --
253
254 COMMENT ON SCHEMA public IS 'Standard public namespace';
255
256
257 --
258 -- TOC entry 10 (OID 21725)
259 -- Name: COLUMN permission.manageperson; Type: COMMENT; Schema: public; Owner: gregoa
260 --
261
262 COMMENT ON COLUMN permission.manageperson IS 'if true, the person may add or remove persons for this appointment.';
263
264