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
--
-- This is el_index truncated to 60 bytes to allow for sortable queries that
-- aren't supported by a partial index.
- -- @todo Drop the default once this is deployed everywhere and code is populating it.
- el_index_60 varbinary(60) NOT NULL default ''
+ el_index_60 varbinary(60) NOT NULL
);
CREATE INDEX /*i*/el_from ON /*_*/externallinks (el_from);