root/archive/beavertrac/trac_ddl.sql

Revision 6, 22.7 kB (checked in by bettse, 2 years ago)

adding beavertrac documents, these include:
patches
postgres sql
python scripts
notes
a useless jumpstart document
an http conf for multiple projects
and a php script for checking if someone has a trac session token and crossregerencing with the db for their username if they do,
might be useful to others

  • Property svn:executable set to *
Line 
1
2 CREATE TABLE master_attachment (
3     dbuser text NOT NULL,
4     "type" text NOT NULL,
5     id text NOT NULL,
6     filename text NOT NULL,
7     size integer,
8     "time" integer,
9     description text,
10     author text,
11     ipnr text
12 );
13
14 -- Notice normal auth_cookie
15 CREATE TABLE auth_cookie (
16     cookie text NOT NULL,
17     name text NOT NULL,
18     ipnr text NOT NULL,
19     "time" integer
20 );
21
22
23 CREATE TABLE master_component (
24     dbuser text NOT NULL,
25     name text NOT NULL,
26     "owner" text,
27     description text
28 );
29
30
31 CREATE TABLE master_enum (
32     dbuser text NOT NULL,
33     "type" text NOT NULL,
34     name text NOT NULL,
35     value text
36 );
37
38
39 CREATE TABLE master_milestone (
40     dbuser text NOT NULL,
41     name text NOT NULL,
42     due integer,
43     completed integer,
44     description text
45 );
46
47
48 CREATE TABLE master_node_change (
49     dbuser text NOT NULL,
50     rev text NOT NULL,
51     path text NOT NULL,
52     node_type text,
53     change_type text NOT NULL,
54     base_path text,
55     base_rev text
56 );
57
58
59 CREATE TABLE master_permission (
60     dbuser text NOT NULL,
61     username text NOT NULL,
62     "action" text NOT NULL
63 );
64
65
66 CREATE TABLE master_report (
67     dbuser text NOT NULL,
68     id integer NOT NULL,
69     author text,
70     title text,
71     query text,
72     description text
73 );
74
75
76
77
78
79
80
81
82 CREATE TABLE master_revision (
83     dbuser text NOT NULL,
84     rev text NOT NULL,
85     "time" integer,
86     author text,
87     message text
88 );
89
90
91 CREATE TABLE "master_session" (
92     dbuser text NOT NULL,
93     sid text NOT NULL,
94     authenticated integer NOT NULL,
95     last_visit integer
96 );
97
98
99 CREATE TABLE master_session_attribute (
100     dbuser text NOT NULL,
101     sid text NOT NULL,
102     authenticated integer NOT NULL,
103     name text NOT NULL,
104     value text
105 );
106
107
108 CREATE TABLE "master_system" (
109     dbuser text NOT NULL,
110     name text NOT NULL,
111     value text
112 );
113
114
115 CREATE TABLE master_ticket (
116     dbuser text NOT NULL,
117     id integer NOT NULL,
118     "type" text,
119     "time" integer,
120     changetime integer,
121     component text,
122     severity text,
123     priority text,
124     "owner" text,
125     reporter text,
126     cc text,
127     version text,
128     milestone text,
129     status text,
130     resolution text,
131     summary text,
132     description text,
133     keywords text
134 );
135
136
137 CREATE TABLE master_ticket_change (
138     dbuser text NOT NULL,
139     ticket integer NOT NULL,
140     "time" integer NOT NULL,
141     author text,
142     field text NOT NULL,
143     oldvalue text,
144     newvalue text
145 );
146
147
148 CREATE TABLE master_ticket_custom (
149     dbuser text NOT NULL,
150     ticket integer NOT NULL,
151     name text NOT NULL,
152     value text
153 );
154
155
156 CREATE TABLE master_version (
157     dbuser text NOT NULL,
158     name text NOT NULL,
159     "time" integer,
160     description text
161 );
162
163
164 CREATE TABLE master_wiki (
165     dbuser text NOT NULL,
166     name text NOT NULL,
167     version integer NOT NULL,
168     "time" integer,
169     author text,
170     ipnr text,
171     text text,
172     "comment" text,
173     readonly integer
174 );
175
176
177
178
179
180
181
182
183
184
185 CREATE SEQUENCE report_id_seq
186     INCREMENT BY 1
187     NO MAXVALUE
188     NO MINVALUE
189     CACHE 1;
190
191 -- ALTER SEQUENCE report_id_seq OWNED BY master_report.id;
192 ALTER SEQUENCE report_id_seq;
193
194 SELECT pg_catalog.setval('report_id_seq', 8, true);
195    
196 CREATE SEQUENCE ticket_id_seq
197     START WITH 1
198     INCREMENT BY 1
199     NO MAXVALUE
200     NO MINVALUE
201     CACHE 1;
202
203 -- ALTER SEQUENCE ticket_id_seq OWNED BY master_ticket.id;
204 ALTER SEQUENCE ticket_id_seq;
205
206 SELECT pg_catalog.setval('ticket_id_seq', 1, false);
207
208
209
210 ALTER TABLE master_report ALTER COLUMN id SET DEFAULT nextval('report_id_seq'::regclass);
211
212 ALTER TABLE master_ticket ALTER COLUMN id SET DEFAULT nextval('ticket_id_seq'::regclass);
213
214 ALTER TABLE ONLY master_attachment
215     ADD CONSTRAINT attachment_pk PRIMARY KEY (dbuser, "type", id, filename);
216
217
218 ALTER TABLE ONLY auth_cookie
219     ADD CONSTRAINT auth_cookie_pk PRIMARY KEY (cookie, ipnr, name);
220
221
222 ALTER TABLE ONLY master_component
223     ADD CONSTRAINT component_pkey PRIMARY KEY (dbuser, name);
224
225
226 ALTER TABLE ONLY master_enum
227     ADD CONSTRAINT enum_pk PRIMARY KEY (dbuser, "type", name);
228
229
230 ALTER TABLE ONLY master_milestone
231     ADD CONSTRAINT milestone_pkey PRIMARY KEY (dbuser, name);
232
233
234 ALTER TABLE ONLY master_node_change
235     ADD CONSTRAINT node_change_pk PRIMARY KEY (dbuser, rev, path, change_type);
236
237
238 ALTER TABLE ONLY master_permission
239     ADD CONSTRAINT permission_pk PRIMARY KEY (dbuser, username, "action");
240
241
242 ALTER TABLE ONLY master_report
243     ADD CONSTRAINT report_pkey PRIMARY KEY (dbuser, id);
244
245
246 ALTER TABLE ONLY master_revision
247     ADD CONSTRAINT revision_pkey PRIMARY KEY (dbuser, rev);
248
249
250 ALTER TABLE ONLY master_session_attribute
251     ADD CONSTRAINT session_attribute_pk PRIMARY KEY (dbuser, sid, authenticated, name);
252
253
254 ALTER TABLE ONLY "master_session"
255     ADD CONSTRAINT session_pk PRIMARY KEY (dbuser, sid, authenticated);
256
257
258 ALTER TABLE ONLY "master_system"
259     ADD CONSTRAINT system_pkey PRIMARY KEY (dbuser, name);
260
261
262 ALTER TABLE ONLY master_ticket_change
263     ADD CONSTRAINT ticket_change_pk PRIMARY KEY (dbuser, ticket, "time", field);
264
265
266 ALTER TABLE ONLY master_ticket_custom
267     ADD CONSTRAINT ticket_custom_pk PRIMARY KEY (dbuser, ticket, name);
268
269
270 ALTER TABLE ONLY master_ticket
271     ADD CONSTRAINT ticket_pkey PRIMARY KEY (dbuser, id);
272
273
274 ALTER TABLE ONLY master_version
275     ADD CONSTRAINT version_pkey PRIMARY KEY (dbuser, name);
276
277
278 ALTER TABLE ONLY master_wiki
279     ADD CONSTRAINT wiki_pk PRIMARY KEY (dbuser, name, version);
280
281
282 CREATE INDEX node_change_rev_idx ON master_node_change USING btree (dbuser, rev);
283
284
285 CREATE INDEX revision_time_idx ON master_revision USING btree (dbuser, "time");
286
287
288 CREATE INDEX session_authenticated_idx ON "master_session" USING btree (dbuser, authenticated);
289
290
291 CREATE INDEX session_last_visit_idx ON "master_session" USING btree (dbuser, last_visit);
292
293
294 CREATE INDEX ticket_change_ticket_idx ON master_ticket_change USING btree (dbuser, ticket);
295
296
297 CREATE INDEX ticket_change_time_idx ON master_ticket_change USING btree (dbuser, "time");
298
299
300 CREATE INDEX ticket_status_idx ON master_ticket USING btree (dbuser, status);
301
302
303 CREATE INDEX ticket_time_idx ON master_ticket USING btree (dbuser, "time");
304
305
306 CREATE INDEX wiki_time_idx ON master_wiki USING btree (dbuser, "time");
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322 -- View stuff
323 -- attachment view
324 CREATE VIEW attachment AS
325     SELECT
326         "type",
327         id,
328         filename,
329         size,
330         "time",
331         description,
332         author,
333         ipnr
334     FROM master_attachment
335     WHERE
336         dbuser = session_user;
337
338 CREATE RULE attachment_ins AS ON INSERT TO attachment
339     DO INSTEAD
340     INSERT INTO master_attachment VALUES (
341         session_user,
342         NEW."type",
343         NEW.id,
344         NEW.filename,
345         NEW.size,
346         NEW."time",
347         NEW.description,
348         NEW.author,
349         NEW.ipnr
350     );
351
352 CREATE RULE attachment_upd AS ON UPDATE TO attachment
353     DO INSTEAD
354     UPDATE master_attachment
355     SET
356         "type" = NEW."type",
357         id = NEW.id,
358         filename = NEW.filename,
359         size = NEW.size,
360         "time" = NEW."time",
361         description = NEW.description,
362         author = NEW.author,
363         ipnr = NEW.ipnr
364     WHERE
365         dbuser = session_user AND
366         "type" = OLD."type" AND
367         id = OLD.id AND
368         filename = OLD.filename;
369
370 CREATE RULE attachment_del AS ON DELETE TO attachment
371     DO INSTEAD
372     DELETE FROM master_attachment
373     WHERE
374         dbuser = session_user AND
375         "type" = OLD."type" AND
376         id = OLD.id AND
377         filename = OLD.filename;
378
379
380 -- auth_cookie view
381 -- CREATE VIEW auth_cookie AS
382 --     SELECT
383 --         cookie,
384 --         name,
385 --         ipnr,
386 --         "time"
387 --     FROM master_auth_cookie
388 --     WHERE
389 --         dbuser = session_user;
390 --
391 -- CREATE RULE auth_cookie_ins AS ON INSERT TO auth_cookie
392 --     DO INSTEAD
393 --     INSERT INTO master_auth_cookie VALUES (
394 --         session_user,
395 --         NEW.cookie,
396 --         NEW.name,
397 --         NEW.ipnr,
398 --         NEW."time"
399 --     );
400 --
401 -- CREATE RULE auth_cookie_upd AS ON UPDATE TO auth_cookie
402 --     DO INSTEAD
403 --     UPDATE master_auth_cookie
404 --     SET
405 --         cookie = NEW.cookie,
406 --         name = NEW.name,
407 --         ipnr = NEW.ipnr,
408 --         "time" = NEW."time"
409 --     WHERE
410 --         dbuser = session_user AND
411 --         cookie = OLD.cookie AND
412 --         ipnr = OLD.ipnr AND
413 --         name = OLD.name;
414 --
415 -- CREATE RULE auth_cookie_del AS ON DELETE TO auth_cookie
416 --     DO INSTEAD
417 --     DELETE FROM master_auth_cookie
418 --     WHERE
419 --         dbuser = session_user AND
420 --         cookie = OLD.cookie AND
421 --         ipnr = OLD.ipnr AND
422 --         name = OLD.name;
423 --
424 --
425 -- component view
426 CREATE VIEW component AS
427     SELECT
428         name,
429         "owner",
430         description
431     FROM master_component
432     WHERE
433         dbuser = session_user;
434
435 CREATE RULE component_ins AS ON INSERT TO component
436     DO INSTEAD
437     INSERT INTO master_component VALUES (
438         session_user,
439         NEW.name,
440         NEW."owner",
441         NEW.description
442     );
443
444 CREATE RULE component_upd AS ON UPDATE TO component
445     DO INSTEAD
446     UPDATE master_component
447     SET
448         name = NEW.name,
449         "owner" = NEW."owner",
450         description = NEW.description
451     WHERE
452         dbuser = session_user AND
453         name = OLD.name;
454
455 CREATE RULE component_del AS ON DELETE TO component
456     DO INSTEAD
457     DELETE FROM master_component
458     WHERE
459         dbuser = session_user AND
460         name = OLD.name;
461
462
463 -- enum view
464 CREATE VIEW enum AS
465     SELECT
466         "type",
467         name,
468         value
469     FROM master_enum
470     WHERE
471         dbuser = session_user;
472
473 CREATE RULE enum_ins AS ON INSERT TO enum
474     DO INSTEAD
475     INSERT INTO master_enum VALUES (
476         session_user,
477         NEW."type",
478         NEW.name,
479         NEW.value
480     );
481
482 CREATE RULE enum_upd AS ON UPDATE TO enum
483     DO INSTEAD
484     UPDATE master_enum
485     SET
486         "type" = NEW."type",
487         name = NEW.name,
488         value = NEW.value
489     WHERE
490         dbuser = session_user AND
491         "type" = OLD."type" AND
492         name = OLD.name;
493
494 CREATE RULE enum_del AS ON DELETE TO enum
495     DO INSTEAD
496     DELETE FROM master_enum
497     WHERE
498         dbuser = session_user AND
499         "type" = OLD."type" AND
500         name = OLD.name;
501
502
503 -- milestone view
504 CREATE VIEW milestone AS
505     SELECT
506         name,
507         due,
508         completed,
509         description
510     FROM master_milestone
511     WHERE
512         dbuser = session_user;
513
514 CREATE RULE milestone_ins AS ON INSERT TO milestone
515     DO INSTEAD
516     INSERT INTO master_milestone VALUES (
517         session_user,
518         NEW.name,
519         NEW.due,
520         NEW.completed,
521         NEW.description
522     );
523
524 CREATE RULE milestone_upd AS ON UPDATE TO milestone
525     DO INSTEAD
526     UPDATE master_milestone
527     SET
528         name = NEW.name,
529         due = NEW.due,
530         completed = NEW.completed,
531         description = NEW.description
532     WHERE
533         dbuser = session_user AND
534         name = OLD.name;
535
536 CREATE RULE milestone_del AS ON DELETE TO milestone
537     DO INSTEAD
538     DELETE FROM master_milestone
539     WHERE
540         dbuser = session_user AND
541         name = OLD.name;
542
543        
544 -- node_change view
545 CREATE VIEW node_change AS
546     SELECT
547         rev,
548         path,
549         node_type,
550         change_type,
551         base_path,
552         base_rev
553     FROM master_node_change
554     WHERE
555         dbuser = session_user;
556
557 CREATE RULE node_change_ins AS ON INSERT TO node_change
558     DO INSTEAD
559     INSERT INTO master_node_change VALUES (
560         session_user,
561         NEW.rev,
562         NEW.path,
563         NEW.node_type,
564         NEW.change_type,
565         NEW.base_path,
566         NEW.base_rev
567     );
568
569 CREATE RULE node_change_upd AS ON UPDATE TO node_change
570     DO INSTEAD
571     UPDATE master_node_change
572     SET
573         rev = NEW.rev,
574         path = NEW.path,
575         node_type = NEW.node_type,
576         change_type = NEW.change_type,
577         base_path = NEW.base_path,
578         base_rev = NEW.base_rev
579     WHERE
580         dbuser = session_user AND
581         rev = OLD.rev AND
582         path = OLD.path AND
583         change_type = OLD.change_type;
584
585 CREATE RULE node_change_del AS ON DELETE TO node_change
586     DO INSTEAD
587     DELETE FROM master_node_change
588     WHERE
589         dbuser = session_user AND
590         rev = OLD.rev AND
591         path = OLD.path AND
592         change_type = OLD.change_type;
593
594
595 -- permission view
596 CREATE VIEW permission AS
597     SELECT
598         username,
599         "action"
600     FROM master_permission
601     WHERE
602         dbuser = session_user;
603
604 CREATE RULE permission_ins AS ON INSERT TO permission
605     DO INSTEAD
606     INSERT INTO master_permission VALUES (
607         session_user,
608         NEW.username,
609         NEW."action"
610     );
611
612 CREATE RULE permission_upd AS ON UPDATE TO permission
613     DO INSTEAD
614     UPDATE master_permission
615     SET
616         username = NEW.username,
617         "action" = NEW."action"
618     WHERE
619         dbuser = session_user AND
620         username = OLD.username AND
621         "action" = OLD."action";
622
623 CREATE RULE permission_del AS ON DELETE TO permission
624     DO INSTEAD
625     DELETE FROM master_permission
626     WHERE
627         dbuser = session_user AND
628         username = OLD.username AND
629         "action" = OLD."action";
630
631
632 -- report view
633 CREATE VIEW report AS
634     SELECT
635         id,
636         author,
637         title,
638         query,
639         description
640     FROM master_report
641     WHERE
642         dbuser = session_user;
643
644 CREATE RULE report_ins AS ON INSERT TO report
645     DO INSTEAD
646     INSERT INTO master_report VALUES (
647         session_user,
648         DEFAULT,
649         NEW.author,
650         NEW.title,
651         NEW.query,
652         NEW.description
653     );
654
655 CREATE RULE report_upd AS ON UPDATE TO report
656     DO INSTEAD
657     UPDATE master_report
658     SET
659         id = NEW.id,
660         author = NEW.author,
661         title = NEW.title,
662         query = NEW.query,
663         description = NEW.description
664     WHERE
665         dbuser = session_user AND
666         id = OLD.id;
667
668 CREATE RULE report_del AS ON DELETE TO report
669     DO INSTEAD
670     DELETE FROM master_report
671     WHERE
672         dbuser = session_user AND
673         id = OLD.id;
674
675
676 -- revision view
677 CREATE VIEW revision AS
678     SELECT
679         rev,
680         "time",
681         author,
682         message
683     FROM master_revision
684     WHERE
685         dbuser = session_user;
686
687 CREATE RULE revision_ins AS ON INSERT TO revision
688     DO INSTEAD
689     INSERT INTO master_revision VALUES (
690         session_user,
691         NEW.rev,
692         NEW."time",
693         NEW.author,
694         NEW.message
695     );
696
697 CREATE RULE revision_upd AS ON UPDATE TO revision
698     DO INSTEAD
699     UPDATE master_revision
700     SET
701         rev = NEW.rev,
702         "time" = NEW."time",
703         author = NEW.author,
704         message = NEW.message
705     WHERE
706         dbuser = session_user AND
707         rev = OLD.rev;
708
709 CREATE RULE revision_del AS ON DELETE TO revision
710     DO INSTEAD
711     DELETE FROM master_revision
712     WHERE
713         dbuser = session_user AND
714         rev = OLD.rev;
715
716
717 -- session view
718 CREATE VIEW "session" AS
719     SELECT
720         sid,
721         authenticated,
722         last_visit
723     FROM master_session
724     WHERE
725         dbuser = session_user;
726
727 CREATE RULE session_ins AS ON INSERT TO "session"
728     DO INSTEAD
729     INSERT INTO master_session VALUES (
730         session_user,
731         NEW.sid,
732         NEW.authenticated,
733         NEW.last_visit
734     );
735
736 CREATE RULE session_upd AS ON UPDATE TO "session"
737     DO INSTEAD
738     UPDATE master_session
739     SET
740         sid = NEW.sid,
741         authenticated = NEW.authenticated,
742         last_visit = NEW.last_visit
743     WHERE
744         dbuser = session_user AND
745         sid = OLD.sid AND
746         authenticated = OLD.authenticated AND
747         last_visit = OLD.last_visit;
748
749 CREATE RULE session_del AS ON DELETE TO "session"
750     DO INSTEAD
751     DELETE FROM master_session
752     WHERE
753         dbuser = session_user AND
754         sid = OLD.sid AND
755         authenticated = OLD.authenticated AND
756         last_visit = OLD.last_visit;
757
758
759
760 -- session_attribute view
761 CREATE VIEW session_attribute AS
762     SELECT
763         sid,
764         authenticated,
765         name,
766         value
767     FROM master_session_attribute
768     WHERE
769         dbuser = session_user;
770
771 CREATE RULE session_attribute_ins AS ON INSERT TO "session_attribute"
772     DO INSTEAD
773     INSERT INTO master_session_attribute VALUES (
774         session_user,
775         NEW.sid,
776         NEW.authenticated,
777         NEW.name,
778         NEW.value
779     );
780
781 CREATE RULE session_attribute_upd AS ON UPDATE TO "session_attribute"
782     DO INSTEAD
783     UPDATE master_session_attribute
784     SET
785         sid = NEW.sid,
786         authenticated = NEW.authenticated,
787         name = NEW.name,
788         value = NEW.value
789     WHERE
790         dbuser = session_user AND
791         sid = OLD.sid AND
792         authenticated = OLD.authenticated AND
793         name = OLD.name;
794
795 CREATE RULE session_attribute_del AS ON DELETE TO "session_attribute"
796     DO INSTEAD
797     DELETE FROM master_session_attribute
798     WHERE
799         dbuser = session_user AND
800         sid = OLD.sid AND
801         authenticated = OLD.authenticated AND
802         name = OLD.name;
803
804 -- system view
805 CREATE VIEW "system" AS
806     SELECT
807         name,
808         value
809     FROM master_system
810     WHERE
811         dbuser = session_user;
812
813 CREATE RULE system_ins AS ON INSERT TO "system"
814     DO INSTEAD
815     INSERT INTO master_system VALUES (
816         session_user,
817         NEW.name,
818         NEW.value
819     );
820
821 CREATE RULE system_upd AS ON UPDATE TO "system"
822     DO INSTEAD
823     UPDATE master_system
824     SET
825         name = NEW.name,
826         value = NEW.value
827     WHERE
828         dbuser = session_user AND
829         name = OLD.name;
830
831 CREATE RULE system_del AS ON DELETE TO "system"
832     DO INSTEAD
833     DELETE FROM master_system
834     WHERE
835         dbuser = session_user AND
836         name = OLD.name;
837
838
839 -- ticket view
840 CREATE VIEW ticket AS
841     SELECT
842         id,
843         "type",
844         "time",
845         changetime,
846         component,
847         severity,
848         priority,
849         "owner",
850         reporter,
851         cc,
852         version,
853         milestone,
854         status,
855         resolution,
856         summary,
857         description,
858         keywords
859     FROM master_ticket
860     WHERE
861         dbuser = session_user;
862
863 CREATE RULE ticket_ins AS ON INSERT TO ticket
864     DO INSTEAD
865     INSERT INTO master_ticket VALUES (
866         session_user,
867         DEFAULT,
868         NEW."type",
869         NEW."time",
870         NEW.changetime,
871         NEW.component,
872         NEW.severity,
873         NEW.priority,
874         NEW."owner",
875         NEW.reporter,
876         NEW.cc,
877         NEW.version,
878         NEW.milestone,
879         NEW.status,
880         NEW.resolution,
881         NEW.summary,
882         NEW.description,
883         NEW.keywords
884     );
885
886 CREATE RULE ticket_upd AS ON UPDATE TO ticket
887     DO INSTEAD
888     UPDATE master_ticket
889     SET
890         id = NEW.id,
891         "type" = NEW."type",
892         "time" = NEW."time",
893         changetime = NEW.changetime,
894         component = NEW.component,
895         severity = NEW.severity,
896         priority = NEW.priority,
897         "owner" = NEW."owner",
898         reporter = NEW.reporter,
899         cc = NEW.cc,
900         version = NEW.version,
901         milestone = NEW.milestone,
902         status = NEW.status,
903         resolution = NEW.resolution,
904         summary = NEW.summary,
905         description = NEW.description,
906         keywords = NEW.keywords
907     WHERE
908         dbuser = session_user AND
909         id = OLD.id;
910
911 CREATE RULE ticket_del AS ON DELETE TO ticket
912     DO INSTEAD
913     DELETE FROM master_ticket
914     WHERE
915         dbuser = session_user AND
916         id = OLD.id;
917
918
919 -- ticket_change view
920 CREATE VIEW ticket_change AS
921     SELECT
922         ticket,
923         "time",
924         author,
925         field,
926         oldvalue,
927         newvalue
928     FROM master_ticket_change
929     WHERE
930         dbuser = session_user;
931
932 CREATE RULE ticket_change_ins AS ON INSERT TO ticket_change
933     DO INSTEAD
934     INSERT INTO master_ticket_change VALUES (
935         session_user,
936         NEW.ticket,
937         NEW."time",
938         NEW.author,
939         NEW.field,
940         NEW.oldvalue,
941         NEW.newvalue
942     );
943
944 CREATE RULE ticket_change_upd AS ON UPDATE TO ticket_change
945     DO INSTEAD
946     UPDATE master_ticket_change
947     SET
948         ticket = NEW.ticket,
949         "time" = NEW."time",
950         author = NEW.author,
951         field = NEW.field,
952         oldvalue = NEW.oldvalue,
953         newvalue = NEW.newvalue
954     WHERE
955         dbuser = session_user AND
956         ticket = OLD.ticket AND
957         "time" = OLD."time" AND
958         field = OLD.field;
959
960 CREATE RULE ticket_change_del AS ON DELETE TO ticket_change
961     DO INSTEAD
962     DELETE FROM master_ticket_change
963     WHERE
964         dbuser = session_user AND
965         ticket = OLD.ticket AND
966         "time" = OLD."time" AND
967         field = OLD.field;
968
969
970 -- ticket_custom view
971 CREATE VIEW ticket_custom AS
972     SELECT
973         ticket,
974         name,
975         value
976     FROM master_ticket_custom
977     WHERE
978         dbuser = session_user;
979
980 CREATE RULE ticket_custom_ins AS ON INSERT TO ticket_custom
981     DO INSTEAD
982     INSERT INTO master_ticket_custom VALUES (
983         session_user,
984         NEW.ticket,
985         NEW.name,
986         NEW.value
987     );
988
989 CREATE RULE ticket_custom_upd AS ON UPDATE TO ticket_custom
990     DO INSTEAD
991     UPDATE master_ticket_custom
992     SET
993         ticket = NEW.ticket,
994         name = NEW.name,
995         value = NEW.value
996     WHERE
997         dbuser = session_user AND
998         ticket = OLD.ticket AND
999         name = OLD.name;
1000
1001 CREATE RULE ticket_custom_del AS ON DELETE TO ticket_custom
1002     DO INSTEAD
1003     DELETE FROM master_ticket_custom
1004     WHERE
1005         dbuser = session_user AND
1006         ticket = OLD.ticket AND
1007         name = OLD.name;
1008
1009
1010 -- version view
1011 CREATE VIEW version AS
1012     SELECT
1013         name,
1014         "time",
1015         description
1016     FROM master_version
1017     WHERE
1018         dbuser = session_user;
1019
1020 CREATE RULE version_ins AS ON INSERT TO version
1021     DO INSTEAD
1022     INSERT INTO master_version VALUES (
1023         session_user,
1024         NEW.name,
1025         NEW."time",
1026         NEW.description
1027     );
1028
1029 CREATE RULE version_upd AS ON UPDATE TO version
1030     DO INSTEAD
1031     UPDATE master_version
1032     SET
1033         name = NEW.name,
1034         "time" = NEW."time",
1035         description = NEW.description
1036     WHERE
1037         dbuser = session_user AND
1038         name = OLD.name;
1039
1040 CREATE RULE version_del AS ON DELETE TO version
1041     DO INSTEAD
1042     DELETE FROM master_version
1043     WHERE
1044         dbuser = session_user AND
1045         name = OLD.name;
1046
1047
1048 -- wiki view
1049 CREATE VIEW wiki AS
1050     SELECT
1051         name,
1052         version,
1053         "time",
1054         author,
1055         ipnr,
1056         text,
1057         "comment",
1058         readonly
1059     FROM master_wiki
1060     WHERE
1061         dbuser = session_user;
1062
1063 CREATE RULE wiki_ins AS ON INSERT TO wiki
1064     DO INSTEAD
1065     INSERT INTO master_wiki VALUES (
1066         session_user,
1067         NEW.name,
1068         NEW.version,
1069         NEW."time",
1070         NEW.author,
1071         NEW.ipnr,
1072         NEW.text,
1073         NEW."comment",
1074         NEW.readonly
1075     );
1076
1077 CREATE RULE wiki_upd AS ON UPDATE TO wiki
1078     DO INSTEAD
1079     UPDATE master_wiki
1080     SET
1081         name = NEW.name,
1082         version = NEW.version,
1083         "time" = NEW."time",
1084         author = NEW.author,
1085         ipnr = NEW.ipnr,
1086         text = NEW.text,
1087         "comment" = NEW."comment",
1088         readonly = NEW.readonly
1089     WHERE
1090         dbuser = session_user AND
1091         name = OLD.name AND
1092         version = OLD.version;
1093
1094 CREATE RULE wiki_del AS ON DELETE TO wiki
1095     DO INSTEAD
1096     DELETE FROM master_wiki
1097     WHERE
1098         dbuser = session_user AND
1099         name = OLD.name AND
1100         version = OLD.version;
1101
1102
1103
Note: See TracBrowser for help on using the browser.