Merge "Improve sorting on SpecialWanted*-Pages"
[mediawiki.git] / maintenance / archives / patch-ipb_anon_only.sql
blobbb39c1d9d6c7f41f8684ef3203db19adc4068b83
1 -- Add extra option fields to the ipblocks table, add some extra indexes,
2 -- convert infinity values in ipb_expiry to something that sorts better,
3 -- extend ipb_address and range fields, add a unique index for block conflict
4 -- detection.
6 -- Conflicts in the new unique index can be handled by creating a new
7 -- table and inserting into it instead of doing an ALTER TABLE.
10 DROP TABLE IF EXISTS /*$wgDBprefix*/ipblocks_newunique;
12 CREATE TABLE /*$wgDBprefix*/ipblocks_newunique (
13   ipb_id int NOT NULL auto_increment,
14   ipb_address tinyblob NOT NULL,
15   ipb_user int unsigned NOT NULL default '0',
16   ipb_by int unsigned NOT NULL default '0',
17   ipb_reason tinyblob NOT NULL,
18   ipb_timestamp binary(14) NOT NULL default '',
19   ipb_auto bool NOT NULL default 0,
20   ipb_anon_only bool NOT NULL default 0,
21   ipb_create_account bool NOT NULL default 1,
22   ipb_expiry varbinary(14) NOT NULL default '',
23   ipb_range_start tinyblob NOT NULL,
24   ipb_range_end tinyblob NOT NULL,
26   PRIMARY KEY ipb_id (ipb_id),
27   UNIQUE INDEX ipb_address_unique (ipb_address(255), ipb_user, ipb_auto),
28   INDEX ipb_user (ipb_user),
29   INDEX ipb_range (ipb_range_start(8), ipb_range_end(8)),
30   INDEX ipb_timestamp (ipb_timestamp),
31   INDEX ipb_expiry (ipb_expiry)
33 ) /*$wgDBTableOptions*/;
35 INSERT IGNORE INTO /*$wgDBprefix*/ipblocks_newunique
36         (ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, ipb_anon_only, ipb_create_account)
37   SELECT ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, 0            , ipb_user=0
38   FROM /*$wgDBprefix*/ipblocks;
40 DROP TABLE IF EXISTS /*$wgDBprefix*/ipblocks_old;
41 RENAME TABLE /*$wgDBprefix*/ipblocks TO /*$wgDBprefix*/ipblocks_old;
42 RENAME TABLE /*$wgDBprefix*/ipblocks_newunique TO /*$wgDBprefix*/ipblocks;
44 UPDATE /*$wgDBprefix*/ipblocks SET ipb_expiry='infinity' WHERE ipb_expiry='';