1 define mw_prefix='{$wgDBprefix}';
3 -- Package to help with making Oracle more like other DBs with respect to
4 -- auto-incrementing columns.
6 CREATE PACKAGE &mw_prefix.lastval_pkg IS
8 PROCEDURE setLastval(val IN NUMBER, field OUT NUMBER);
9 FUNCTION getLastval RETURN NUMBER;
14 CREATE PACKAGE BODY &mw_prefix.lastval_pkg IS
15 PROCEDURE setLastval(val IN NUMBER, field OUT NUMBER) IS BEGIN
20 FUNCTION getLastval RETURN NUMBER IS BEGIN
27 CREATE TRIGGER &mw_prefix.mwuser_default_user_id BEFORE INSERT ON &mw_prefix.mwuser
28 FOR EACH ROW WHEN (new.user_id IS NULL)
30 &mw_prefix.lastval_pkg.setLastval(user_user_id_seq.nextval, :new.user_id);
35 CREATE TRIGGER &mw_prefix.page_default_page_id BEFORE INSERT ON &mw_prefix.page
36 FOR EACH ROW WHEN (new.page_id IS NULL)
38 &mw_prefix.lastval_pkg.setLastval(page_page_id_seq.nextval, :new.page_id);
43 CREATE TRIGGER &mw_prefix.revision_default_rev_id BEFORE INSERT ON &mw_prefix.revision
44 FOR EACH ROW WHEN (new.rev_id IS NULL)
46 &mw_prefix.lastval_pkg.setLastval(revision_rev_id_seq.nextval, :new.rev_id);
51 CREATE TRIGGER &mw_prefix.text_default_old_id BEFORE INSERT ON &mw_prefix.text
52 FOR EACH ROW WHEN (new.old_id IS NULL)
54 &mw_prefix.lastval_pkg.setLastval(text_old_id_seq.nextval, :new.old_id);
59 CREATE TRIGGER &mw_prefix.archive_default_ar_id BEFORE INSERT ON &mw_prefix.archive
60 FOR EACH ROW WHEN (new.ar_id IS NULL)
62 &mw_prefix.lastval_pkg.setLastval(archive_ar_id_seq.nextval, :new.ar_id);
67 CREATE TRIGGER &mw_prefix.category_default_cat_id BEFORE INSERT ON &mw_prefix.category
68 FOR EACH ROW WHEN (new.cat_id IS NULL)
70 &mw_prefix.lastval_pkg.setLastval(category_cat_id_seq.nextval, :new.cat_id);
75 CREATE TRIGGER &mw_prefix.externallinks_default_el_id BEFORE INSERT ON &mw_prefix.externallinks
76 FOR EACH ROW WHEN (new.el_id IS NULL)
78 &mw_prefix.lastval_pkg.setLastval(externallinks_el_id_seq.nextval, :new.el_id);
83 CREATE TRIGGER &mw_prefix.ipblocks_default_ipb_id BEFORE INSERT ON &mw_prefix.ipblocks
84 FOR EACH ROW WHEN (new.ipb_id IS NULL)
86 &mw_prefix.lastval_pkg.setLastval(ipblocks_ipb_id_seq.nextval, :new.ipb_id);
91 CREATE TRIGGER &mw_prefix.filearchive_default_fa_id BEFORE INSERT ON &mw_prefix.filearchive
92 FOR EACH ROW WHEN (new.fa_id IS NULL)
94 &mw_prefix.lastval_pkg.setLastval(filearchive_fa_id_seq.nextval, :new.fa_id);
99 CREATE TRIGGER &mw_prefix.uploadstash_default_us_id BEFORE INSERT ON &mw_prefix.uploadstash
100 FOR EACH ROW WHEN (new.us_id IS NULL)
102 &mw_prefix.lastval_pkg.setLastval(uploadstash_us_id_seq.nextval, :new.us_id);
107 CREATE TRIGGER &mw_prefix.recentchanges_default_rc_id BEFORE INSERT ON &mw_prefix.recentchanges
108 FOR EACH ROW WHEN (new.rc_id IS NULL)
110 &mw_prefix.lastval_pkg.setLastval(recentchanges_rc_id_seq.nextval, :new.rc_id);
115 CREATE TRIGGER &mw_prefix.logging_default_log_id BEFORE INSERT ON &mw_prefix.logging
116 FOR EACH ROW WHEN (new.log_id IS NULL)
118 &mw_prefix.lastval_pkg.setLastval(logging_log_id_seq.nextval, :new.log_id);
123 CREATE TRIGGER &mw_prefix.job_default_job_id BEFORE INSERT ON &mw_prefix.job
124 FOR EACH ROW WHEN (new.job_id IS NULL)
126 &mw_prefix.lastval_pkg.setLastval(job_job_id_seq.nextval, :new.job_id);
131 CREATE TRIGGER &mw_prefix.page_restrictions_default_pr_id BEFORE INSERT ON &mw_prefix.page_restrictions
132 FOR EACH ROW WHEN (new.pr_id IS NULL)
134 &mw_prefix.lastval_pkg.setLastval(page_restrictions_pr_id_seq.nextval, :new.pr_id);
139 CREATE TRIGGER &mw_prefix.sites_default_site_id BEFORE INSERT ON &mw_prefix.sites
140 FOR EACH ROW WHEN (new.site_id IS NULL)
142 &mw_prefix.lastval_pkg.setLastval(sites_site_id_seq.nextval, :new.site_id);