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
);