ar_id NUMBER NOT NULL,
ar_namespace NUMBER DEFAULT 0 NOT NULL,
ar_title VARCHAR2(255) NOT NULL,
- ar_text CLOB,
ar_comment VARCHAR2(255),
ar_comment_id NUMBER DEFAULT 0 NOT NULL,
ar_user NUMBER DEFAULT 0 NOT NULL,
ar_actor NUMBER DEFAULT 0 NOT NULL,
ar_timestamp TIMESTAMP(6) WITH TIME ZONE NOT NULL,
ar_minor_edit CHAR(1) DEFAULT '0' NOT NULL,
- ar_flags VARCHAR2(255),
ar_rev_id NUMBER NOT NULL,
- ar_text_id NUMBER,
+ ar_text_id NUMBER DEFAULT 0 NOT NULL,
ar_deleted CHAR(1) DEFAULT '0' NOT NULL,
ar_len NUMBER,
ar_page_id NUMBER,
END;
/*$mw$*/
+-- Table defining tag names for IDs. Also stores hit counts to avoid expensive queries on change_tag
+CREATE SEQUENCE change_tag_def_ctd_id_seq;
+CREATE TABLE &mw_prefix.change_tag_def (
+ -- Numerical ID of the tag (ct_tag_id refers to this)
+ ctd_id NUMBER NOT NULL,
+ -- Symbolic name of the tag (what would previously be put in ct_tag)
+ ctd_name VARCHAR2(255) NOT NULL,
+ -- Whether this tag was defined manually by a privileged user using Special:Tags
+ ctd_user_defined CHAR(1) DEFAULT '0' NOT NULL,
+ -- Number of times this tag was used
+ ctd_count NUMBER NOT NULL DEFAULT 0
+);
+
+ALTER TABLE &mw_prefix.change_tag_def ADD CONSTRAINT &mw_prefix.change_tag_def_pk PRIMARY KEY (ctd_id);
+CREATE UNIQUE INDEX &mw_prefix.ctd_name ON &mw_prefix.change_tag_def (ctd_name);
+CREATE INDEX &mw_prefix.ctd_count ON &mw_prefix.change_tag_def (ctd_count);
+CREATE INDEX &mw_prefix.ctd_user_defined ON &mw_prefix.change_tag_def (ctd_user_defined);
+
+/*$mw$*/
+CREATE TRIGGER &mw_prefix.change_tag_def_seq_trg BEFORE INSERT ON &mw_prefix.change_tag_def
+ FOR EACH ROW WHEN (new.ctd_id IS NULL)
+BEGIN
+ &mw_prefix.lastval_pkg.setLastval(change_tag_def_ctd_id_seq.nextval, :new.ctd_id);
+END;
+/*$mw$*/
+
CREATE TABLE &mw_prefix.langlinks (
ll_from NUMBER NOT NULL,
ll_lang VARCHAR2(20),
ALTER TABLE &mw_prefix.recentchanges ADD CONSTRAINT &mw_prefix.recentchanges_fk2 FOREIGN KEY (rc_cur_id) REFERENCES &mw_prefix.page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
ALTER TABLE &mw_prefix.recentchanges ADD CONSTRAINT &mw_prefix.recentchanges_fk3 FOREIGN KEY (rc_comment_id) REFERENCES &mw_prefix."COMMENT"(comment_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
CREATE INDEX &mw_prefix.recentchanges_i01 ON &mw_prefix.recentchanges (rc_timestamp);
-CREATE INDEX &mw_prefix.recentchanges_i02 ON &mw_prefix.recentchanges (rc_namespace, rc_title);
+CREATE INDEX &mw_prefix.recentchanges_i09 ON &mw_prefix.recentchanges (rc_namespace, rc_title, rc_timestamp);
CREATE INDEX &mw_prefix.recentchanges_i03 ON &mw_prefix.recentchanges (rc_cur_id);
CREATE INDEX &mw_prefix.recentchanges_i04 ON &mw_prefix.recentchanges (rc_new,rc_namespace,rc_timestamp);
CREATE INDEX &mw_prefix.recentchanges_i05 ON &mw_prefix.recentchanges (rc_ip);