summaryrefslogtreecommitdiff
path: root/maintenance/archives/patch-ipb_range_start.sql
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/archives/patch-ipb_range_start.sql')
-rw-r--r--maintenance/archives/patch-ipb_range_start.sql10
1 files changed, 5 insertions, 5 deletions
diff --git a/maintenance/archives/patch-ipb_range_start.sql b/maintenance/archives/patch-ipb_range_start.sql
index 64a906d4..84cba8f6 100644
--- a/maintenance/archives/patch-ipb_range_start.sql
+++ b/maintenance/archives/patch-ipb_range_start.sql
@@ -1,5 +1,5 @@
-- Add the range handling fields
-ALTER TABLE /*$wgDBprefix*/ipblocks
+ALTER TABLE /*$wgDBprefix*/ipblocks
ADD ipb_range_start tinyblob NOT NULL default '',
ADD ipb_range_end tinyblob NOT NULL default '',
ADD INDEX ipb_range (ipb_range_start(8), ipb_range_end(8));
@@ -7,15 +7,15 @@ ALTER TABLE /*$wgDBprefix*/ipblocks
-- Initialise fields
-- Only range blocks match ipb_address LIKE '%/%', this fact is used in the code already
-UPDATE /*$wgDBprefix*/ipblocks
- SET
- ipb_range_start = LPAD(HEX(
+UPDATE /*$wgDBprefix*/ipblocks
+ SET
+ ipb_range_start = LPAD(HEX(
(SUBSTRING_INDEX(ipb_address, '.', 1) << 24)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 2), '.', -1) << 16)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 3), '.', -1) << 24)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '/', 1), '.', -1)) ), 8, '0' ),
- ipb_range_end = LPAD(HEX(
+ ipb_range_end = LPAD(HEX(
(SUBSTRING_INDEX(ipb_address, '.', 1) << 24)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 2), '.', -1) << 16)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 3), '.', -1) << 24)