Manual:Recentchanges table

The recentchanges table contains information about the latest modifications done to the wiki (not older than ; see also below).

The contents of this table are generated out of the tables  and ; they can be regenerated using the maintenance script .

The recentchanges table itself is used to generate the recent>Special:MyLanguage/Help:Recent changes|recent changes pages, related>Special:MyLanguage/Help:Related changes|related changes pages, watchlists, and the new>Special:MyLanguage/Help:New pages|list of new pages, and contains information such as editors' IP addresses (depending on the wiki's configuration) not found on other tables.

The recentchanges table is very similar to the  table, which is used for page history and user contributions listings.

Differences include:


 * The recentchanges table also references the previous revision of the page


 * The recentchanges table also records logged events such as page moves and deletions


 * Items in the recentchanges table are periodically purged; those in the revision table are typically kept longer or indefinitely.


 * as said, import of a page revision not only adds an entry to the revision table with the import date, but also one with the original date.

When pages are moved, their RC entries (specifically,  and </>) do not change.

rc_id
This is the primary key for the table.

(Introduced in MediaWiki 1.5)

rc_timestamp
Holds the man>Special:MyLanguage/Manual:Timestamp</>|timestamp of the change.

Corresponds to <tvar|rev></> (and <tvar|log></>, in the case of log actions).

rc_cur_time
Had been deprecated, but was first held for backwards compatibility

Removed in 1.24wmf6.

rc_user
This is equal to the user_id of the user who made this change. The value for this field is 0 for anonymous edits, initialization scripts, and for some mass imports. Corresponds to rev_user (and log_user, in the case of log actions).

If you use  to select anonymous edits, remember to set at least   as well! On wikis using Wikibase the results will otherwise be meaningless. On other wikis, bots or imports may be more relevant than you expect.

rc_user_text
This fields holds the text of the username for the user that made the change, or the IP address if the change was made by an unregistered user. Corresponds to rev_user_text (and log_user_text, in the case of log actions).

rc_namespace
The namespace number of the page that was subject to change. Corresponds to log_namespace, in the case of log actions.

If this row describes a logged action, this field has a value of -1 (NS_SPECIAL), as it records an entry for a Special:Log subpage. This is the only place in which Special: pages are directly recorded in database namespace/title pairs at present. (Incorrect. redirect table records redirects to special pages in this way as well.)

rc_title
The name of the page that was subject to change, with the namespace stripped. This field stores information in text form. Corresponds to log_title, in the case of log actions.

rc_comment
This field holds a summary of the change (editor's comment on revision). This text is shown in the recent changes, related changes, watchlists, and, in the case of page creation, the list of new pages. (The revision table contains a copy (rev_comment) used for the history and user contributions pages. In the case of log actions, a copy is also in log_comment.) It is rendered in a subset of wiki markup.

rc_minor
Records whether the user marked the change as 'minor'. If the value for this field is 1, then the change was declared as 'minor'; it is 0 otherwise. Many automated change are marked as minor. Corresponds to rev_minor_edit.

rc_bot
Records whether the change was made by a 'bot account'. If the value for this field is 1, then the change was made by a 'bot' (i.e. a user with the 'bot' permission); it is 0 otherwise. It is possible for bots to avoid setting this flag on their change by including the parameter "bot=0" in the form submission. Also, users with the 'rollback' and 'markbotedits' permissions may retroactively mark their rollbacks and the edits being rolled back as bot edits by including the parameter "bot=1" in the rollback link.

rc_new
If the value for this field is 1, then this edit created a page; it is 0 otherwise.

rc_cur_id
This field links to the page_id key in the page table, which stores the metadata of the page. Corresponds to log_page, in the case of log actions.

rc_this_oldid
Links to the rev_id key of the new page revision (after the edit occurs) in the revision table.

rc_last_oldid
Links to rev_parent_id, i.e. the rev_id of the revision prior to this edit, which included the previous content of the page.

rc_type
This field stores the type of modification that was made to a page:
 * 0 (RC_EDIT) — edit of existing page
 * 1 (RC_NEW) — new page
 * 2 (RC_MOVE) — move (obsolete)
 * 3 (RC_LOG) — log action (added in MediaWiki 1.2)
 * 4 (RC_MOVE_OVER_REDIRECT) — move over redirect (obsolete)
 * 5 (RC_EXTERNAL) — An external recent change. Primarily used by Wikidata
 * 6 (RC_CATEGORIZE) — category membership change, see (added in MediaWiki 1.27, )

rc_source
The source of the change entry (replaces rc_type).

Allows specifying the type of change and for more flexible for specifying different types of RecentChange entries. For example, 'mw.edit', 'mw.log', 'mw.new' for core RecentChange types and 'wb' and 'flow' provided by extensions.

rc_moved_to_ns
This field stored the namespace of a page whenever it was moved. As of MediaWiki 1.8, it remained on the table for backwards compatibility only, and always has the value 0. It was removed entirely in MediaWiki 1.21.

rc_moved_to_title
This field stored the new page title of a page whenever it was moved. As of MediaWiki 1.8, it remained on the table for backwards compatibility only, and is always a null string. It was removed entirely in MediaWiki 1.21.

rc_patrolled
If the Recent Changes Patrol option is enabled, users may mark changes as having been reviewed to remove a warning flag on the RC list. A value of 1 indicates the change has been reviewed. (Introduced in MediaWiki 1.4)

rc_ip
This field stores the IP address of the user specified on rc_user if is enabled. If $wgPutIPinRC is false, then the field will contain an empty string.

In some old MediaWiki versions this field was used to generate CheckUser reports, but it is now considered obsolete as CheckUser stores data in a separate  table. When the extension is set up, data from this field may be copied over a single time.

(Introduced in MediaWiki 1.3)

rc_old_len
This field stores the size, in bytes, of previous revision's text. This field is used to generate the added and removed characters feature in recent changes, related changes and watchlists.

rc_new_len
This field stores the size, in bytes, of the current revision's text. This field is used to generate the added and removed characters feature in recent changes, related changes and watchlists. Corresponds to.

rc_deleted
This field stores a value for this particular revision's visibility within the wiki. It was created to accommodate upcoming revisions to the deletion system. The field is analogous to or.

rc_logid
This field is a foreign key to the table, which links to  if this row corresponds to a log entry. The field was introduced in MediaWiki 1.10.

rc_log_type
If a log action is referenced in this row, this field stores the type of log action that was performed, and which is referenced in this row. Typical values are. This field is comparable to.

rc_log_action
If a log action is referenced in this row, this field stores the type of log action that was performed, and which is referenced in this row. This field is comparable to.

rc_params
This field will be a mirror of, following the log_params text rewrite. Introduced in MediaWiki 1.10.

Schema summary
mysql> describe recentchanges; +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++ 24 rows in set (0.06 sec)
 * Field        | Type                | Null | Key | Default | Extra          |
 * rc_id        | int(11)             | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp | varbinary(14)       | NO   | MUL |         |                |
 * rc_user      | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text | varbinary(255)      | NO   | MUL | NULL    |                |
 * rc_namespace | int(11)             | NO   | MUL | 0       |                |
 * rc_title     | varbinary(255)      | NO   |     |         |                |
 * rc_comment   | varbinary(255)      | NO   |     |         |                |
 * rc_minor     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot       | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new       | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id    | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid | int(10) unsigned   | NO   |     | 0       |                |
 * rc_last_oldid | int(10) unsigned   | NO   |     | 0       |                |
 * rc_type      | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_source    | varbinary(16)       | NO   |     |         |                |
 * rc_patrolled | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip        | varbinary(40)       | NO   | MUL |         |                |
 * rc_old_len   | int(11)             | YES  |     | NULL    |                |
 * rc_new_len   | int(11)             | YES  |     | NULL    |                |
 * rc_deleted   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_logid     | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type  | varbinary(255)      | YES  |     | NULL    |                |
 * rc_log_action | varbinary(255)     | YES  |     | NULL    |                |
 * rc_params    | blob                | YES  |     | NULL    |                |

mysql> describe recentchanges; +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++ 24 rows in set (0.00 sec)
 * Field        | Type                | Null | Key | Default | Extra          |
 * rc_id        | int(11)             | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp | varbinary(14)       | NO   | MUL |         |                |
 * rc_cur_time  | varbinary(14)       | NO   |     |         |                |
 * rc_user      | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text | varbinary(255)      | NO   | MUL | NULL    |                |
 * rc_namespace | int(11)             | NO   | MUL | 0       |                |
 * rc_title     | varbinary(255)      | NO   |     |         |                |
 * rc_comment   | varbinary(255)      | NO   |     |         |                |
 * rc_minor     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot       | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new       | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id    | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid | int(10) unsigned   | NO   |     | 0       |                |
 * rc_last_oldid | int(10) unsigned   | NO   |     | 0       |                |
 * rc_type      | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_patrolled | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip        | varbinary(40)       | NO   | MUL |         |                |
 * rc_old_len   | int(11)             | YES  |     | NULL    |                |
 * rc_new_len   | int(11)             | YES  |     | NULL    |                |
 * rc_deleted   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_logid     | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type  | varbinary(255)      | YES  |     | NULL    |                |
 * rc_log_action | varbinary(255)     | YES  |     | NULL    |                |
 * rc_params    | blob                | YES  |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.19 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(11)             | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varbinary(14)       | NO   | MUL |         |                |
 * rc_cur_time      | varbinary(14)       | NO   |     |         |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varbinary(255)      | NO   | MUL | NULL    |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varbinary(255)      | NO   |     |         |                |
 * rc_comment       | varbinary(255)      | NO   |     |         |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varbinary(255)     | NO   |     |         |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | varbinary(40)       | NO   | MUL |         |                |
 * rc_old_len       | int(11)             | YES  |     | NULL    |                |
 * rc_new_len       | int(11)             | YES  |     | NULL    |                |
 * rc_deleted       | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_logid         | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type      | varbinary(255)      | YES  |     | NULL    |                |
 * rc_log_action    | varbinary(255)      | YES  |     | NULL    |                |
 * rc_params        | blob                | YES  |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.18 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(8)              | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varbinary(14)       | NO   | MUL | NULL    |                |
 * rc_cur_time      | varbinary(14)       | NO   |     | NULL    |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varbinary(255)      | NO   | MUL | NULL    |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varbinary(255)      | NO   |     | NULL    |                |
 * rc_comment       | varbinary(255)      | NO   |     | NULL    |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varbinary(255)     | NO   |     | NULL    |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | binary(15)          | NO   | MUL | NULL    |                |
 * rc_old_len       | int(11)             | YES  |     | NULL    |                |
 * rc_new_len       | int(11)             | YES  |     | NULL    |                |
 * rc_deleted       | tinyint(1) unsigned | NO   |     | 0       |                |
 * rc_logid         | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type      | varchar(255)        | YES  |     | NULL    |                |
 * rc_log_action    | varchar(255)        | YES  |     | NULL    |                |
 * rc_params        | blob                | YES  |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.12 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(8)              | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varchar(14)         | NO   | MUL | NULL    |                |
 * rc_cur_time      | varchar(14)         | NO   |     | NULL    |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varchar(255)        | NO   | MUL | NULL    |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varchar(255)        | NO   |     | NULL    |                |
 * rc_comment       | varchar(255)        | NO   |     | NULL    |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varchar(255)       | NO   |     | NULL    |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | char(15)            | NO   | MUL | NULL    |                |
 * rc_old_len       | int(11)             | YES  |     | NULL    |                |
 * rc_new_len       | int(11)             | YES  |     | NULL    |                |
 * rc_deleted       | tinyint(1) unsigned | NO   |     | 0       |                |
 * rc_logid         | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type      | varchar(255)        | YES  |     | NULL    |                |
 * rc_log_action    | varchar(255)        | YES  |     | NULL    |                |
 * rc_params        | blob                | YES  |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.11 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(11)             | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varbinary(14)       | NO   | MUL | NULL    |                |
 * rc_cur_time      | varbinary(14)       | NO   |     | NULL    |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varchar(255)        | NO   | MUL | NULL    |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varchar(255)        | NO   |     | NULL    |                |
 * rc_comment       | varchar(255)        | NO   |     | NULL    |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varchar(255)       | NO   |     | NULL    |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | varbinary(40)       | NO   | MUL | NULL    |                |
 * rc_old_len       | int(11)             | YES  |     | NULL    |                |
 * rc_new_len       | int(11)             | YES  |     | NULL    |                |
 * rc_deleted       | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_logid         | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type      | varchar(255)        | YES  |     | NULL    |                |
 * rc_log_action    | varchar(255)        | YES  |     | NULL    |                |
 * rc_params        | blob                | YES  |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.10 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(8)              | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varchar(14)         | NO   | MUL | NULL    |                |
 * rc_cur_time      | varchar(14)         | NO   |     | NULL    |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varchar(255)        | NO   | MUL | NULL    |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varchar(255)        | NO   |     | NULL    |                |
 * rc_comment       | varchar(255)        | NO   |     | NULL    |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varchar(255)       | NO   |     | NULL    |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | char(15)            | NO   | MUL | NULL    |                |
 * rc_old_len       | int(10)             | YES  |     | NULL    |                |
 * rc_new_len       | int(10)             | YES  |     | NULL    |                |
 * rc_deleted       | tinyint(1) unsigned | NO   |     | 0       |                |
 * rc_logid         | int(10) unsigned    | NO   |     | 0       |                |
 * rc_log_type      | varchar(255)        | YES  |     | NULL    |                |
 * rc_params        | blob                | NO   |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.9 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(8)              | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varchar(14)         | NO   | MUL | NULL    |                |
 * rc_cur_time      | varchar(14)         | NO   |     | NULL    |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varchar(255)        | NO   | MUL | NULL    |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varchar(255)        | NO   |     | NULL    |                |
 * rc_comment       | varchar(255)        | NO   |     | NULL    |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varchar(255)       | NO   |     | NULL    |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | char(15)            | NO   | MUL | NULL    |                |
 * rc_old_len       | int(10)             | YES  |     | NULL    |                |
 * rc_new_len       | int(10)             | YES  |     | NULL    |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.5 through 1.8 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_id            | int(8)              | NO   | PRI | NULL    | auto_increment |
 * rc_timestamp     | varchar(14)         | NO   | MUL |         |                |
 * rc_cur_time      | varchar(14)         | NO   |     |         |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varchar(255)        | NO   |     |         |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varchar(255)        | NO   |     |         |                |
 * rc_comment       | varchar(255)        | NO   |     |         |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varchar(255)       | NO   |     |         |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | char(15)            | NO   | MUL |         |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.4 gives the following: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * rc_timestamp     | varchar(14)         | NO   | MUL |         |                |
 * rc_cur_time      | varchar(14)         | NO   |     |         |                |
 * rc_user          | int(10) unsigned    | NO   |     | 0       |                |
 * rc_user_text     | varchar(255)        | NO   |     |         |                |
 * rc_namespace     | int(11)             | NO   | MUL | 0       |                |
 * rc_title         | varchar(255)        | NO   |     |         |                |
 * rc_comment       | varchar(255)        | NO   |     |         |                |
 * rc_minor         | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_bot           | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_new           | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * rc_cur_id        | int(10) unsigned    | NO   | MUL | 0       |                |
 * rc_this_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_last_oldid    | int(10) unsigned    | NO   |     | 0       |                |
 * rc_type          | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_ns   | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_moved_to_title | varchar(255)       | NO   |     |         |                |
 * rc_patrolled     | tinyint(3) unsigned | NO   |     | 0       |                |
 * rc_ip            | char(15)            | NO   | MUL |         |                |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.3 gives the following: +---+-+--+-+-+---+ +---+-+--+-+-+---+ +---+-+--+-+-+---+
 * Field            | Type                | Null | Key | Default | Extra |
 * rc_timestamp     | varchar(14) binary  |      | MUL |         |       |
 * rc_cur_time      | varchar(14) binary  |      |     |         |       |
 * rc_user          | int(10) unsigned    |      |     | 0       |       |
 * rc_user_text     | varchar(255) binary |      |     |         |       |
 * rc_namespace     | tinyint(3) unsigned |      | MUL | 0       |       |
 * rc_title         | varchar(255) binary |      |     |         |       |
 * rc_comment       | varchar(255) binary |      |     |         |       |
 * rc_minor         | tinyint(3) unsigned |      |     | 0       |       |
 * rc_bot           | tinyint(3) unsigned |      |     | 0       |       |
 * rc_new           | tinyint(3) unsigned |      | MUL | 0       |       |
 * rc_cur_id        | int(10) unsigned    |      | MUL | 0       |       |
 * rc_this_oldid    | int(10) unsigned    |      |     | 0       |       |
 * rc_last_oldid    | int(10) unsigned    |      |     | 0       |       |
 * rc_type          | tinyint(3) unsigned |      |     | 0       |       |
 * rc_moved_to_ns   | tinyint(3) unsigned |      |     | 0       |       |
 * rc_moved_to_title | varchar(255) binary |     |     |         |       |
 * rc_ip            | varchar(15)         |      | MUL |         |       |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.2 gives the following: +---+-+--+-+-+---+ +---+-+--+-+-+---+ +---+-+--+-+-+---+
 * Field            | Type                | Null | Key | Default | Extra |
 * rc_timestamp     | varchar(14) binary  |      | MUL |         |       |
 * rc_cur_time      | varchar(14) binary  |      |     |         |       |
 * rc_user          | int(10) unsigned    |      |     | 0       |       |
 * rc_user_text     | varchar(255) binary |      |     |         |       |
 * rc_namespace     | tinyint(3) unsigned |      | MUL | 0       |       |
 * rc_title         | varchar(255) binary |      |     |         |       |
 * rc_comment       | varchar(255) binary |      |     |         |       |
 * rc_minor         | tinyint(3) unsigned |      |     | 0       |       |
 * rc_bot           | tinyint(3) unsigned |      |     | 0       |       |
 * rc_new           | tinyint(3) unsigned |      | MUL | 0       |       |
 * rc_cur_id        | int(10) unsigned    |      | MUL | 0       |       |
 * rc_this_oldid    | int(10) unsigned    |      |     | 0       |       |
 * rc_last_oldid    | int(10) unsigned    |      |     | 0       |       |
 * rc_type          | tinyint(3) unsigned |      |     | 0       |       |
 * rc_moved_to_ns   | tinyint(3) unsigned |      |     | 0       |       |
 * rc_moved_to_title | varchar(255) binary |     |     |         |       |

<tt>DESCRIBE recentchanges;</tt> in MediaWiki 1.1 gives the following: +---+-+--+-+-+---+ +---+-+--+-+-+---+ +---+-+--+-+-+---+
 * Field            | Type                | Null | Key | Default | Extra |
 * rc_timestamp     | varchar(14) binary  |      | MUL |         |       |
 * rc_cur_time      | varchar(14) binary  |      |     |         |       |
 * rc_user          | int(10) unsigned    |      |     | 0       |       |
 * rc_user_text     | varchar(255) binary |      |     |         |       |
 * rc_namespace     | tinyint(3) unsigned |      | MUL | 0       |       |
 * rc_title         | varchar(255) binary |      |     |         |       |
 * rc_comment       | varchar(255) binary |      |     |         |       |
 * rc_minor         | tinyint(3) unsigned |      |     | 0       |       |
 * rc_bot           | tinyint(3) unsigned |      |     | 0       |       |
 * rc_new           | tinyint(3) unsigned |      | MUL | 0       |       |
 * rc_cur_id        | int(10) unsigned    |      | MUL | 0       |       |
 * rc_this_oldid    | int(10) unsigned    |      |     | 0       |       |
 * rc_last_oldid    | int(10) unsigned    |      |     | 0       |       |

Indices
TODO: Update for MW 1.28

mysql> show index in recentchanges; +---+++--+--+---+-+--++--++-+---+ +---+++--+--+---+-+--++--++-+---+ +---+++--+--+---+-+--++--++-+---+ 13 rows in set (0.00 sec)
 * Table        | Non_unique | Key_name           | Seq_in_index | Column_name  | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * recentchanges |         0 | PRIMARY            |            1 | rc_id        | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_timestamp       |            1 | rc_timestamp | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_namespace_title |            1 | rc_namespace | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_namespace_title |            2 | rc_title     | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_cur_id          |            1 | rc_cur_id    | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | new_name_timestamp |            1 | rc_new       | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | new_name_timestamp |            2 | rc_namespace | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | new_name_timestamp |            3 | rc_timestamp | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_ip              |            1 | rc_ip        | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_ns_usertext     |            1 | rc_namespace | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_ns_usertext     |            2 | rc_user_text | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_user_text       |            1 | rc_user_text | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * recentchanges |         1 | rc_user_text       |            2 | rc_timestamp | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |