X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=maintenance%2Ftables.sql;h=b503bba73c08a2a5131f48dd7b1acdca4465f7a1;hp=ed3bd43991cc5739d5db544c109084df48c9131c;hb=267d99fa85434c3f26b7c5223cd46c29dedff4e5;hpb=c004cfc116eb8c677c346f3db561fc3593a8fd99 diff --git a/maintenance/tables.sql b/maintenance/tables.sql index ed3bd43991..b503bba73c 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -667,7 +667,7 @@ CREATE INDEX /*i*/ar_actor_timestamp ON /*_*/archive (ar_actor,ar_timestamp); -- Index for linking archive rows with tables that normally link with revision -- rows, such as change_tag. -CREATE INDEX /*i*/ar_revid ON /*_*/archive (ar_rev_id); +CREATE UNIQUE INDEX /*i*/ar_revid_uniq ON /*_*/archive (ar_rev_id); -- -- Slots represent an n:m relation between revisions and content objects. @@ -1529,7 +1529,7 @@ CREATE FULLTEXT INDEX /*i*/si_text ON /*_*/searchindex (si_text); -- CREATE TABLE /*_*/interwiki ( -- The interwiki prefix, (e.g. "Meatball", or the language prefix "de") - iw_prefix varchar(32) NOT NULL, + iw_prefix varchar(32) NOT NULL PRIMARY KEY, -- The URL of the wiki, with "$1" as a placeholder for an article name. -- Any spaces in the name will be transformed to underscores before @@ -1550,8 +1550,6 @@ CREATE TABLE /*_*/interwiki ( iw_trans tinyint NOT NULL default 0 ) /*$wgDBTableOptions*/; -CREATE UNIQUE INDEX /*i*/iw_prefix ON /*_*/interwiki (iw_prefix); - -- -- Used for caching expensive grouped queries @@ -1658,7 +1656,7 @@ CREATE INDEX /*i*/log_actor_type_time ON /*_*/logging (log_actor, log_type, log_ CREATE INDEX /*i*/log_page_id_time ON /*_*/logging (log_page,log_timestamp); -- Special:Log action filter -CREATE INDEX /*i*/type_action ON /*_*/logging (log_type, log_action, log_timestamp); +CREATE INDEX /*i*/log_type_action ON /*_*/logging (log_type, log_action, log_timestamp); -- Special:Log filter by type and anonymous performer CREATE INDEX /*i*/log_user_text_type_time ON /*_*/logging (log_user_text, log_type, log_timestamp); @@ -1807,10 +1805,11 @@ CREATE TABLE /*_*/protected_titles ( pt_reason_id bigint unsigned NOT NULL DEFAULT 0, -- ("DEFAULT 0" is temporary, signaling that pt_reason should be used) pt_timestamp binary(14) NOT NULL, pt_expiry varbinary(14) NOT NULL default '', - pt_create_perm varbinary(60) NOT NULL + pt_create_perm varbinary(60) NOT NULL, + + PRIMARY KEY (pt_namespace,pt_title) ) /*$wgDBTableOptions*/; -CREATE UNIQUE INDEX /*i*/pt_namespace_title ON /*_*/protected_titles (pt_namespace,pt_title); CREATE INDEX /*i*/pt_timestamp ON /*_*/protected_titles (pt_timestamp); @@ -1819,10 +1818,11 @@ CREATE TABLE /*_*/page_props ( pp_page int NOT NULL, pp_propname varbinary(60) NOT NULL, pp_value blob NOT NULL, - pp_sortkey float DEFAULT NULL + pp_sortkey float DEFAULT NULL, + + PRIMARY KEY (pp_page,pp_propname) ) /*$wgDBTableOptions*/; -CREATE UNIQUE INDEX /*i*/pp_page_propname ON /*_*/page_props (pp_page,pp_propname); CREATE UNIQUE INDEX /*i*/pp_propname_page ON /*_*/page_props (pp_propname,pp_page); CREATE UNIQUE INDEX /*i*/pp_propname_sortkey_page ON /*_*/page_props (pp_propname,pp_sortkey,pp_page); @@ -1842,10 +1842,12 @@ CREATE TABLE /*_*/change_tag ( ct_log_id int unsigned NULL, -- REVID for the change ct_rev_id int unsigned NULL, - -- Tag applied + -- Tag applied, this will go away and be replaced with ct_tag_id ct_tag varchar(255) NOT NULL, -- Parameters for the tag; used by some extensions - ct_params blob NULL + ct_params blob NULL, + -- Foreign key to change_tag_def row, this will be "NOT NULL" once populated + ct_tag_id int unsigned NULL ) /*$wgDBTableOptions*/; CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag); @@ -1853,7 +1855,7 @@ CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag); -- Covering index, so we can pull all the info only out of the index. CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id); - +CREATE INDEX /*i*/change_tag_tag_id_id ON /*_*/change_tag (ct_tag_id,ct_rc_id,ct_rev_id,ct_log_id); -- Rollup table to pull a LIST of tags simply without ugly GROUP_CONCAT -- that only works on MySQL 4.1+ @@ -1960,10 +1962,11 @@ CREATE TABLE /*_*/site_identifiers ( si_type varbinary(32) NOT NULL, -- local key value, ie 'en' or 'wiktionary' - si_key varbinary(32) NOT NULL + si_key varbinary(32) NOT NULL, + + PRIMARY KEY (si_type, si_key) ) /*$wgDBTableOptions*/; -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);