Introduce change_tag_def table
[lhc/web/wiklou.git] / maintenance / tables.sql
index 1da651a..2f1e44c 100644 (file)
@@ -592,14 +592,6 @@ CREATE TABLE /*_*/archive (
   -- Copied from page_title
   ar_title varchar(255) binary NOT NULL default '',
 
-  -- Copied from text.old_text, for pages deleted before MediaWiki 1.5.
-  -- This row may contain the raw revision text, possibly compressed.
-  -- Newer MediaWiki versions use ar_text_id instead.
-  -- This field is retained for backwards compatibility, so that
-  -- old archived pages will remain accessible.
-  -- See migrateArchiveText.php for migrating values to text storage.
-  ar_text mediumblob NOT NULL,
-
   -- Basic revision stuff...
   ar_comment varbinary(767) NOT NULL default '', -- Deprecated in favor of ar_comment_id
   ar_comment_id bigint unsigned NOT NULL DEFAULT 0, -- ("DEFAULT 0" is temporary, signaling that ar_comment should be used)
@@ -609,11 +601,6 @@ CREATE TABLE /*_*/archive (
   ar_timestamp binary(14) NOT NULL default '',
   ar_minor_edit tinyint NOT NULL default 0,
 
-  -- Copied from text.old_flags, for pages deleted before MediaWiki 1.5.
-  -- Otherwise empty string.
-  -- See also note for ar_text.
-  ar_flags tinyblob NOT NULL,
-
   -- Copied from rev_id.
   --
   -- @since 1.5 Entries from 1.4 will be NULL here. When restoring
@@ -626,12 +613,10 @@ CREATE TABLE /*_*/archive (
   -- text storage. Instead, it is merely hidden from public view, by removal
   -- of the page and revision entries.
   --
-  -- @since 1.5 Entries from 1.2-1.4 will have NULL here. When restoring
-  -- archive rows without this, ar_text and ar_flags are used instead.
   -- @deprecated since 1.31. If rows in the slots table with slot_revision_id = ar_rev_id
-  -- exist, this field should be ignored (and may be NULL or 0) in favor of the
+  -- exist, this field should be ignored (and may be 0) in favor of the
   -- corresponding data from the slots and content tables
-  ar_text_id int unsigned,
+  ar_text_id int unsigned NOT NULL DEFAULT 0,
 
   -- Copied from rev_deleted. Although this may be raised during deletion.
   -- Users with the "suppressrevision" right may "archive" and "suppress"
@@ -1983,4 +1968,20 @@ CREATE UNIQUE INDEX /*i*/site_ids_type ON /*_*/site_identifiers (si_type, si_key
 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