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_seq_trg
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_seq_trg
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_seq_trg
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.pagecontent_seq_trg
BEFORE INSERT ON &mw_prefix.pagecontent
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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_seq_trg
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
);