Table defining tag names for IDs. Also stores hit counts to avoid expensive queries on change_tag
See T185355 for more information
Bug: T193867
Bug: T185355
Change-Id: I4fd943589b3ed304471304c8beda15327a8edbcf
[ 'modifyField', 'recentchanges', 'rc_patrolled', 'patch-rc_patrolled_type.sql' ],
[ 'addIndex', 'recentchanges', 'rc_namespace_title_timestamp',
'patch-recentchanges-nttindex.sql' ],
+
+ // 1.32
+ [ 'addTable', 'change_tag_def', 'patch-change_tag_def.sql' ],
];
}
[ 'populateArchiveRevId' ],
[ 'addIndex', 'recentchanges', 'rc_namespace_title_timestamp',
'patch-recentchanges-nttindex.sql' ],
+
+ // 1.32
+ [ 'addTable', 'change_tag_def', 'patch-change_tag_def.sql' ],
];
}
[ 'addIndex', 'recentchanges', 'rc_namespace_title_timestamp',
'patch-recentchanges-nttindex.sql' ],
+ // 1.32
+ [ 'addTable', 'change_tag_def', 'patch-change_tag_def.sql' ],
+
// KEEP THIS AT THE BOTTOM!!
[ 'doRebuildDuplicateFunction' ],
[ 'setSequenceOwner', 'change_tag', 'ct_id', 'change_tag_ct_id_seq' ],
[ 'setSequenceOwner', 'tag_summary', 'ts_id', 'tag_summary_ts_id_seq' ],
[ 'setSequenceOwner', 'sites', 'site_id', 'sites_site_id_seq' ],
+
+ // 1.32
+ [ 'addTable', 'change_tag_def', 'patch-change_tag_def.sql' ],
];
}
[ 'populateArchiveRevId' ],
[ 'addIndex', 'recentchanges', 'rc_namespace_title_timestamp',
'patch-recentchanges-nttindex.sql' ],
+
+ // 1.32
+ [ 'addTable', 'change_tag_def', 'patch-change_tag_def.sql' ],
];
}
--- /dev/null
+-- Table defining tag names for IDs. Also stores hit counts to avoid expensive queries on change_tag
+
+CREATE TABLE /*_*/change_tag_def (
+ -- Numerical ID of the tag (ct_tag_id refers to this)
+ ctd_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ -- Symbolic name of the tag (what would previously be put in ct_tag)
+ ctd_name varbinary(255) NOT NULL,
+ -- Whether this tag was defined manually by a privileged user using Special:Tags
+ ctd_user_defined tinyint(1) NOT NULL,
+ -- Number of times this tag was used
+ ctd_count bigint unsigned NOT NULL default 0
+) /*$wgDBTableOptions*/;
+
+CREATE UNIQUE INDEX /*i*/ctd_name ON /*_*/change_tag_def (ctd_name);
+CREATE INDEX /*i*/ctd_count ON /*_*/change_tag_def (ctd_count);
+CREATE INDEX /*i*/ctd_user_defined ON /*_*/change_tag_def (ctd_user_defined);
\ No newline at end of file
--- /dev/null
+-- Table defining tag names for IDs. Also stores hit counts to avoid expensive queries on change_tag
+
+CREATE TABLE /*_*/change_tag_def (
+ -- Numerical ID of the tag (ct_tag_id refers to this)
+ ctd_id int NOT NULL CONSTRAINT PK_change_tag_def PRIMARY KEY IDENTITY,
+ -- Symbolic name of the tag (what would previously be put in ct_tag)
+ ctd_name nvarchar(255) NOT NULL,
+ -- Whether this tag was defined manually by a privileged user using Special:Tags
+ ctd_user_defined tinyint NOT NULL CONSTRAINT DF_ctd_user_defined DEFAULT 0,
+ -- Number of times this tag was used
+ ctd_count int NOT NULL CONSTRAINT DF_ctd_count DEFAULT 0
+) /*$wgDBTableOptions*/;
+
+CREATE UNIQUE INDEX /*i*/ctd_name ON /*_*/change_tag_def (ctd_name);
+CREATE INDEX /*i*/ctd_count ON /*_*/change_tag_def (ctd_count);
+CREATE INDEX /*i*/ctd_user_defined ON /*_*/change_tag_def (ctd_user_defined);
CREATE INDEX /*i*/cat_pages ON /*_*/category (cat_pages);
+--
+-- Table defining tag names for IDs. Also stores hit counts to avoid expensive queries on change_tag
+--
+CREATE TABLE /*_*/change_tag_def (
+ -- Numerical ID of the tag (ct_tag_id refers to this)
+ ctd_id int NOT NULL CONSTRAINT PK_change_tag_def PRIMARY KEY IDENTITY,
+ -- Symbolic name of the tag (what would previously be put in ct_tag)
+ ctd_name nvarchar(255) NOT NULL,
+ -- Whether this tag was defined manually by a privileged user using Special:Tags
+ ctd_user_defined tinyint NOT NULL CONSTRAINT DF_ctd_user_defined DEFAULT 0,
+ -- Number of times this tag was used
+ ctd_count int NOT NULL CONSTRAINT DF_ctd_count DEFAULT 0
+) /*$wgDBTableOptions*/;
+
+CREATE UNIQUE INDEX /*i*/ctd_name ON /*_*/change_tag_def (ctd_name);
+CREATE INDEX /*i*/ctd_count ON /*_*/change_tag_def (ctd_count);
+CREATE INDEX /*i*/ctd_user_defined ON /*_*/change_tag_def (ctd_user_defined);
+
--
-- Track links to external URLs
--
--- /dev/null
+-- 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$*/
\ No newline at end of file
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),
--- /dev/null
+-- 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 change_tag_def (
+ ctd_id int NOT NULL PRIMARY KEY DEFAULT nextval('change_tag_def_ctd_id_seq'),
+ ctd_name TEXT NOT NULL,
+ ctd_user_defined SMALLINT NOT NULL DEFAULT 0,
+ ctd_count INTEGER NOT NULL DEFAULT 0
+);
+ALTER SEQUENCE change_tag_def_ctd_id_seq OWNED BY change_tag_def.ctd_id;
+
+CREATE UNIQUE INDEX ctd_name ON change_tag_def (ctd_name);
+CREATE INDEX ctd_count ON change_tag_def (ctd_count);
+CREATE INDEX ctd_user_defined ON change_tag_def (ctd_user_defined);
\ No newline at end of file
CREATE UNIQUE INDEX cl_from ON categorylinks (cl_from, cl_to);
CREATE INDEX cl_sortkey ON categorylinks (cl_to, cl_sortkey, cl_from);
+CREATE SEQUENCE change_tag_def_ctd_id_seq;
+CREATE TABLE change_tag_def (
+ ctd_id int NOT NULL PRIMARY KEY DEFAULT nextval('change_tag_def_ctd_id_seq'),
+ ctd_name TEXT NOT NULL,
+ ctd_user_defined SMALLINT NOT NULL DEFAULT 0,
+ ctd_count INTEGER NOT NULL DEFAULT 0
+);
+ALTER SEQUENCE change_tag_def_ctd_id_seq OWNED BY change_tag_def.ctd_id;
+
+CREATE UNIQUE INDEX ctd_name ON change_tag_def (ctd_name);
+CREATE INDEX ctd_count ON change_tag_def (ctd_count);
+CREATE INDEX ctd_user_defined ON change_tag_def (ctd_user_defined);
+
CREATE SEQUENCE externallinks_el_id_seq;
CREATE TABLE externallinks (
el_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('externallinks_el_id_seq'),
CREATE INDEX /*i*/site_ids_site ON /*_*/site_identifiers (si_site);
CREATE INDEX /*i*/site_ids_key ON /*_*/site_identifiers (si_key);
+-- Table defining tag names for IDs. Also stores hit counts to avoid expensive queries on change_tag
+CREATE TABLE /*_*/change_tag_def (
+ -- Numerical ID of the tag (ct_tag_id refers to this)
+ ctd_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ -- Symbolic name of the tag (what would previously be put in ct_tag)
+ ctd_name varbinary(255) NOT NULL,
+ -- Whether this tag was defined manually by a privileged user using Special:Tags
+ ctd_user_defined tinyint(1) NOT NULL,
+ -- Number of times this tag was used
+ ctd_count bigint unsigned NOT NULL default 0
+) /*$wgDBTableOptions*/;
+
+CREATE UNIQUE INDEX /*i*/ctd_name ON /*_*/change_tag_def (ctd_name);
+CREATE INDEX /*i*/ctd_count ON /*_*/change_tag_def (ctd_count);
+CREATE INDEX /*i*/ctd_user_defined ON /*_*/change_tag_def (ctd_user_defined);
+
-- vim: sw=2 sts=2 et