Manual:ip_changes table
↑ Manual:Contents | MediaWiki database layout | ip_changes table |
MediaWiki version: | ≥ 1.30 |
Every time an edit by a logged out user is saved, a row is created in the ip_changes table. This stores the IP as a hex representation so that we can more easily find edits within an IP range. One of the primary purposes of the table is to support IP range queries at Special:Contributions. This table was introduced in Gerrit change 370946.
Fields
editipc_rev_id
editForeign key to the revision table, also serves as the unique primary key.
ipc_rev_timestamp
editThe timestamp of the revision.
ipc_hex
editHex representation of the IP address, as returned by IP::toHex()
.
BETWEEN
is then used to identify revisions within a given range.
Schema summary
editMediaWiki version: | ≥ 1.36 |
DESCRIBE ip_changes;
+-------------------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+------------------+------+-----+---------+-------+ | ipc_rev_id | int(10) unsigned | NO | PRI | 0 | | | ipc_rev_timestamp | binary(14) | NO | MUL | NULL | | | ipc_hex | varbinary(35) | NO | MUL | | | +-------------------+------------------+------+-----+---------+-------+
MediaWiki versions: | 1.30 – 1.35 |
DESCRIBE ip_changes;
+-------------------+------------------+------+-----+----------------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+------------------+------+-----+----------------+-------+ | ipc_rev_id | int(10) unsigned | NO | PRI | 0 | | | ipc_rev_timestamp | binary(14) | NO | MUL | | | | ipc_hex | varbinary(35) | NO | MUL | | | +-------------------+------------------+------+-----+----------------+-------+
Indexes
editMediaWiki version: | ≥ 1.30 |
SHOW INDEX IN ip_changes;
+------------+------------+-------------------+--------------+-------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +------------+------------+-------------------+--------------+-------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | ip_changes | 0 | PRIMARY | 1 | ipc_rev_id | A | 0 | NULL | NULL | | BTREE | | | | ip_changes | 1 | ipc_rev_timestamp | 1 | ipc_rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | ip_changes | 1 | ipc_hex_time | 1 | ipc_hex | A | 0 | NULL | NULL | | BTREE | | | | ip_changes | 1 | ipc_hex_time | 2 | ipc_rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | +------------+------------+-------------------+--------------+-------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+