source: trunk/LATMOS-Accounts/annexes/sql.schema.sql @ 2393

Last change on this file since 2393 was 36, checked in by nanardon, 15 years ago
  • add sql schema
File size: 5.3 KB
Line 
1--
2-- PostgreSQL database dump
3--
4
5SET client_encoding = 'UTF8';
6SET standard_conforming_strings = off;
7SET check_function_bodies = false;
8SET client_min_messages = warning;
9SET escape_string_warning = off;
10
11--
12-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: -
13--
14
15CREATE PROCEDURAL LANGUAGE plpgsql;
16
17
18SET search_path = public, pg_catalog;
19
20--
21-- Name: rev_tg_f(); Type: FUNCTION; Schema: public; Owner: -
22--
23
24CREATE FUNCTION rev_tg_f() RETURNS "trigger"
25    AS $$begin
26
27IF (TG_OP = 'DELETE') THEN
28  return old;
29else
30  new.rev := nextval('revisions_rev_seq'::regclass);
31  new.date := now();
32  return new;
33END IF;
34
35end;$$
36    LANGUAGE plpgsql;
37
38
39--
40-- Name: users_groups_update_ref(); Type: FUNCTION; Schema: public; Owner: -
41--
42
43CREATE FUNCTION users_groups_update_ref() RETURNS "trigger"
44    AS $$begin
45
46IF (TG_OP != 'INSERT') then
47update person  set date = now() where person.uid = old.uid;
48update "group" set date = now() where "group".gid = old.gid;
49end if;
50IF (TG_OP != 'DELETE') then
51update person  set date = now() where person.uid = new.uid;
52update "group" set date = now() where "group".gid = new.gid;
53end if;
54
55IF (TG_OP = 'DELETE') then
56  return old;
57ELSE
58  return new;
59END IF;
60
61END;$$
62    LANGUAGE plpgsql;
63
64
65SET default_tablespace = '';
66
67SET default_with_oids = false;
68
69--
70-- Name: revisions; Type: TABLE; Schema: public; Owner: -; Tablespace:
71--
72
73CREATE TABLE revisions (
74    rev integer NOT NULL,
75    date timestamp with time zone DEFAULT now() NOT NULL,
76    "create" timestamp with time zone DEFAULT now() NOT NULL
77);
78
79
80--
81-- Name: revisions_rev_seq; Type: SEQUENCE; Schema: public; Owner: -
82--
83
84CREATE SEQUENCE revisions_rev_seq
85    INCREMENT BY 1
86    NO MAXVALUE
87    NO MINVALUE
88    CACHE 1;
89
90
91--
92-- Name: revisions_rev_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
93--
94
95ALTER SEQUENCE revisions_rev_seq OWNED BY revisions.rev;
96
97
98--
99-- Name: group; Type: TABLE; Schema: public; Owner: -; Tablespace:
100--
101
102CREATE TABLE "group" (
103    groupname text NOT NULL,
104    gid integer NOT NULL
105)
106INHERITS (revisions);
107
108
109--
110-- Name: person; Type: TABLE; Schema: public; Owner: -; Tablespace:
111--
112
113CREATE TABLE person (
114    name text NOT NULL,
115    firstname text NOT NULL,
116    login text NOT NULL,
117    uid integer NOT NULL,
118    mail text,
119    shell text DEFAULT '/bin/bash'::text,
120    home text,
121    gid integer NOT NULL
122)
123INHERITS (revisions);
124
125
126--
127-- Name: users_groups; Type: TABLE; Schema: public; Owner: -; Tablespace:
128--
129
130CREATE TABLE users_groups (
131    uid integer NOT NULL,
132    gid integer NOT NULL
133)
134INHERITS (revisions);
135
136
137--
138-- Name: rev; Type: DEFAULT; Schema: public; Owner: -
139--
140
141ALTER TABLE revisions ALTER COLUMN rev SET DEFAULT nextval('revisions_rev_seq'::regclass);
142
143
144--
145-- Name: goup_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
146--
147
148ALTER TABLE ONLY "group"
149    ADD CONSTRAINT goup_pkey PRIMARY KEY (groupname);
150
151
152--
153-- Name: group_gid_uniq; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
154--
155
156ALTER TABLE ONLY "group"
157    ADD CONSTRAINT group_gid_uniq UNIQUE (gid);
158
159
160--
161-- Name: person_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
162--
163
164ALTER TABLE ONLY person
165    ADD CONSTRAINT person_pkey PRIMARY KEY (login);
166
167
168--
169-- Name: person_uid_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
170--
171
172ALTER TABLE ONLY person
173    ADD CONSTRAINT person_uid_key UNIQUE (uid);
174
175
176--
177-- Name: users_group_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
178--
179
180ALTER TABLE ONLY users_groups
181    ADD CONSTRAINT users_group_pkey PRIMARY KEY (uid, gid);
182
183
184--
185-- Name: fki_users_group_gid_fkey; Type: INDEX; Schema: public; Owner: -; Tablespace:
186--
187
188CREATE INDEX fki_users_group_gid_fkey ON users_groups USING btree (gid);
189
190
191--
192-- Name: group_rev_tg; Type: TRIGGER; Schema: public; Owner: -
193--
194
195CREATE TRIGGER group_rev_tg
196    BEFORE DELETE OR UPDATE ON "group"
197    FOR EACH ROW
198    EXECUTE PROCEDURE rev_tg_f();
199
200
201--
202-- Name: person_rev_tg; Type: TRIGGER; Schema: public; Owner: -
203--
204
205CREATE TRIGGER person_rev_tg
206    BEFORE DELETE OR UPDATE ON person
207    FOR EACH ROW
208    EXECUTE PROCEDURE rev_tg_f();
209
210
211--
212-- Name: revisions_rev_tg; Type: TRIGGER; Schema: public; Owner: -
213--
214
215CREATE TRIGGER revisions_rev_tg
216    AFTER DELETE OR UPDATE ON revisions
217    FOR EACH ROW
218    EXECUTE PROCEDURE rev_tg_f();
219
220
221--
222-- Name: users_groups_update_ref_tg; Type: TRIGGER; Schema: public; Owner: -
223--
224
225CREATE TRIGGER users_groups_update_ref_tg
226    AFTER INSERT OR DELETE OR UPDATE ON users_groups
227    FOR EACH ROW
228    EXECUTE PROCEDURE users_groups_update_ref();
229
230
231--
232-- Name: usres_groups_rev_tg; Type: TRIGGER; Schema: public; Owner: -
233--
234
235CREATE TRIGGER usres_groups_rev_tg
236    BEFORE DELETE OR UPDATE ON users_groups
237    FOR EACH ROW
238    EXECUTE PROCEDURE rev_tg_f();
239
240
241--
242-- Name: users_group_gid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
243--
244
245ALTER TABLE ONLY users_groups
246    ADD CONSTRAINT users_group_gid_fkey FOREIGN KEY (gid) REFERENCES "group"(gid);
247
248
249--
250-- Name: users_group_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
251--
252
253ALTER TABLE ONLY users_groups
254    ADD CONSTRAINT users_group_uid_fkey FOREIGN KEY (uid) REFERENCES person(uid);
255
256
257--
258-- Name: public; Type: ACL; Schema: -; Owner: -
259--
260
261REVOKE ALL ON SCHEMA public FROM PUBLIC;
262REVOKE ALL ON SCHEMA public FROM postgres;
263GRANT ALL ON SCHEMA public TO postgres;
264GRANT ALL ON SCHEMA public TO PUBLIC;
265
266
267--
268-- PostgreSQL database dump complete
269--
270
Note: See TracBrowser for help on using the repository browser.