Manuel:table revision
↑ Manuel:Contenu | Schéma de base de données MédiaWiki | table revision |
Version de MediaWiki : | ≥ 1.5 |
La table revision contient les métadonnées de chaque modification apportée aux pages du wiki. Chacune des modifications de page crée une ligne de version, qui contient des informations telles que l'utilisateur ayant modifié, l'heure à laquelle la modification a été faite, un lien vers le commentaire de la révision dans la table comment , et d'autres métadonnées. Les emplacements modifiés et la révision correspondante sont spécifiées dans la table slots .
Importer la dernière version d'une page d'un autre wiki génère deux entrées dans la table revision
, l'une avec la date et le texte wiki de la version importée, et l'autre avec la date de l'import.
Le texte wiki de cette dernière (qui devient celui de la page actuelle) est - lorsqu'une page avec le même nom existe déjà - celui de la page la plus récente des deux.
La table revision
est très similaire à la table recentchanges .
La table revision
est utilisée pour les pages du listing de l'historique et celui des contributions de l'utilisateur .
La table recentchanges est utilisée pour les modifications récentes , les modifications liées , les listes de suivi , et, dans le cas de création de page, pour la liste des nouvelles pages .
Différences :
- la table
recentchanges
enregistre aussi les événements du journal tels que les déplacements de pages et les suppressions. - les éléments de la table
recentchanges
sont purgés périodiquement; ceux de la tablerevision
restent en permanence, sauf si la page est supprimée ou que le propriétaire du site exécute le script de maintenance deleteOldRevisions.php . - comme dit précédemment, l'import de la révision d'une page n'ajoute pas simplement une entrée à la table
revision
avec la date de l'import, mais aussi une autre avec la date d'origine.
Les versions supprimées sont déplacées vers la table archive .
La table revision
et la table text
ont été introduites dans MediaWiki 1.5 pour remplacer la table cur .
Les champs
rev_id
Version de MediaWiki : | ≥ 1.5 |
Ce champ comporte la clé primaire de chaque révision.
page_latest est une clé étrangère pour ce champ.
Les rev_id
nombre sont protégés contre la supression/restauration depuis les débuts de la table dans MediaWiki 1.5, lorsque rev_id
et text_id
ont remplacé l'ancien cur_id
.
Note : Alors que rev_id
incrémente presque toujours les révisions successives des pages de manière monotone, cela n'est pas toujours strictement garanti lorsque vous importez d'un autre wiki car les révisions peuvent être créées hors séquence.
rev_page
Version de MediaWiki : | ≥ 1.5 |
Ce champ comporte une référence vers la page à laquelle cette révision appartient.
Le numéro dans ce champ est égal au champ page_id de la page nommée.
Ceci ne doit jamais être non valide; si c'est le cas, cette révision n'apparaîtra pas dans la page de l'historique.
Si page.page_latest pointe sur une revision avec un rev_page
non valide, cela provoquera l'erreur "La révision numéro 0 de la page nommée 'Foo' n'existe pas".
(un problème identique peut apparaître quand les emplacements et le contenu n'existent pas dans la révision)
rev_text_id
Versions de MediaWiki : | 1.5 – 1.34 |
Ceci est une clé étrangère pour old_id dans la table text .
(la table text
est l'endroit où est stocké l'ensemble du texte actuel).
Il est possible que des révisions aient le même texte. C'est le cas des révisions pour lesquelles seulement les métadonnées ont été modifiées, ou celles pour lesquelles un rollback a été effectué sur une précédente version.
(obsolète depuis v. 1.31)
S'il existe des rangées dans la table slots avec slots.slot_revision_id = rev_id, ce champ doit être ignoré (et peut être à 0) en faveur des données correspondantes des tables slots
et content
.
(supprimé en 1.35)
Cette colonne a été remplacée par content.content_address qui peut être récupéré en obtenant le slot_content_id de la révision correspondante dans la table slots
.
rev_comment
Versions de MediaWiki : | 1.5 – 1.34 |
Ce champ contient un résumé des modifications de l'éditeur (commentaire du contributeur sur la révision). Ce texte est affiché dans l'historique et les contributions. (La table des recentchanges contient une copie utilisée pour les modifications récentes , les modifications liées , les listes de suivi , et dans le cas des créations de page, pour la liste des nouvelles pages .) Il est rendu dans un sous-ensemble épuré de balises wiki.
(obsolète)
revcomment_comment_id des tables revision_comment_temp
et comment doit être utilisé à la place !
(supprimé en 1.35) Cette colonne a été remplacée par revision.rev_comment_id, qui référence comment.comment_id.
rev_comment_id
Version de MediaWiki : | ≥ 1.35 |
Ceci est une clé externe vers comment_id dans la table comment .
Dans MediaWiki 1.38 et plus ancien, si ce champ contient zéro dans chaque enregistrement, l'ID du commentaire doit être récupéré de la table revision_comment_temp . Voir Migration d'acteur .
rev_user
Versions de MediaWiki : | 1.5 – 1.34 |
Ceci est égal au user_id de l'utilisateur qui a fait cette modification. La valeur de ce champ est de 0 pour les utilisateurs anonymes, les scripts d'initialisation, et pour certaines importations de masse.
Notez, il y a des bogues : T112384.
(obsolète depuis v. 1.31)
Pendant la migration des acteurs, et en fonction de la valeur du paramètre de configuration $wgActorTableSchemaMigrationStage
, ce champ peut être vide et l'acteur qui réalise la modification peut être à la place, enregistré dans le champ rev_actor ou dans la table revision_actor_temp .
(supprimé en 1.35) Cette colonne a été supprimée avec revision.rev_user_text. Cette colonne a été remplacée par revision.rev_actor, qui référence actor.actor_id.
rev_user_text
Versions de MediaWiki : | 1.5 – 1.34 |
Ce champ contient le texte du nom d'utilisateur de l'éditeur, ou l'adresse IP de l'éditeur si la révision a été faite par un utilisatuer non enregistré.
Dans les révisions importées de UseModWiki ou les incarnations plus anciennes du logiciel de la phase II, ce champ peut contenir une adresse IP dont le dernier octet est grisé (par exemple \d{1,3}\.\d{1,3}\.\d{1,3}\.xxx
qui devient 24.150.61.xxx; voir T5631).
Certaines modifications importées de UseModWiki peuvent contenir un nom d'hôte de recherche DNS inversée comme ppfree165-153-bz.aknet.it
or office.bomis.com
.
(obsolète depuis v. 1.31) Pendant la migration des acteurs, et en fonction de la valeur du paramètre de configuration $wgActorTableSchemaMigrationStage
, ce champ peut être vide et l'acteur qui réalise la modification peut être à la place, enregistré dans le champ rev_actor ou dans la table revision_actor_temp .
(supprimé en 1.35) Cette colonne a été supprimée avec revision.rev_user. Cette colonne a été remplacée par revision.rev_actor, qui référence actor.actor_id.
rev_actor
Version de MediaWiki : | ≥ 1.35 |
Ceci est une clé externe vers actor_id dans la table actor . Dans MediaWiki 1.38 et plus ancien, si ce champ contient zéro dans chaque enregistrement, l'ID de l'acteur doit être récupéré de la table revision_actor_temp . Voir Migration d'acteur .
rev_timestamp
Version de MediaWiki : | ≥ 1.5 |
Contient le timestamp de l'édition.
Ressemble par exemple à 20080326231614
(format temporel MW_TS).
Correspond à recentchanges.rc_timestamp (et logging.log_timestamp pour les créations de pages).
A la différence de image.img_timestamp, cette valeur n'est pas modifiée pour devenir unique pour une page donnée, ainsi un flot de modifications trop rapprochées peut avoir le même horodatage.
rev_minor_edit
Version de MediaWiki : | ≥ 1.5 |
Enregistre le fait que l'utilisateur a coché l'élément 'édition mineure'. Si la valeur de ce champ est 1, alors la modification a été déclarée 'mineure'; sinon il est à 0. Beaucoup de modifications automatiques sont marquées comme mineures.
rev_deleted
Version de MediaWiki : | ≥ 1.5 |
Ce champ est réservé pour le système Suppression des révisions .
C'est un champ de bits qui peut prendre les valeurs suivantes : DELETED_TEXT = 1; DELETED_COMMENT = 2; DELETED_USER = 4; and DELETED_RESTRICTED = 8.
Donc si par exemple rien n'a été supprimé de cette version, alors la valeur est 0; si à la fois le commentaire et l'utilisateur ont été supprimés, la valeur est 6.
DELETED_RESTRICTED
indique suppression; lorsque ce drapeau est défini, le contenu masqué par les autres drapeaux DELETED_*
est visible uniquement aux suppresseurs (c'est à dire les superviseurs) au lieu des administrateurs.
rev_len
Version de MediaWiki : | ≥ 1.10 |
Ce champ contient la longueur de l'article après la révision, en octets. Utilisé dans les pages de l'historique. Correspond à rc_new_len .
rev_parent_id
Version de MediaWiki : | ≥ 1.10 |
Le rev_id de la version précédente de la page.
Correspond à rc_last_oldid .
Pour les modifications qui sont des créations de nouvelles pages, rev_parent_id
= 0.
Utilisation
Ce champ est utilisé pour ajouter la prise en charge d'une structure arborescente. Ce champ est par exemple utilisé pour calculer la différence de taille d'une certaine révision et la révision précédente dans la vue de la page historique. Si l'ID d'un parent pointe vers une révision qui est associée à une page différente, MediaWiki continue d'utiliser la révision parente comme base de comparaison pour le calcul de la différence de taille. Si une révision est supprimée de la base de données, et que l'ID du parent d'une autre révision pointe encore dessus, alors MediaWiki se comportera de la même manière que s'il n'y avait pas eu de révision parent; par exemple il va supposer que la taille précédente était de 0.
Versions transférées
Lorsque les révisions sont importées depuis un autre wiki, la structure arborescente des ID parent des révisions importées à partir du wiki source est conservée (elle est implémentée par chaque révision, à l'exception de la révision finale, avec un élément XML <parentid>
qui est utilisé pour renseigner rev_parent_id), et les ID parents des révisions du wiki de destination ne sont pas mis à jour.
De manière équivalente, si les pages historiques sont fusionnées, les IDs parents des révisions des pages source et destination ne sont pas mis à jour.
populateParentId.php peut être utilisé pour populer rev_parent_id
en se basant sur l'heure de la révision et son ID.
Dans le cas d'un conflit d'édition, l'ID de revision de la modification enregistrée en premier (et qui cause le conflit) sera utilisé comme l'ID du parent de la modification enregistrée en second (après résolution du conflit).
rev_sha1
Version de MediaWiki : | ≥ 1.19 |
Ce champ est utilisé pour ajouter le contenu texte du hachage du SHA-1 en base 36 (généré par Wikimedia\base_convert()
).
Depuis la version 1.32, c'est le résultat imbriqué de hashs de hashs de content_sha1 à travers tous les emplacements de la version.
Si la révision ne comporte qu'un emplacement, les valeurs des champs rev_sha1
et content_sha1
sont identiques.
L'algorithme des hashs imbriqués est implémenté dans RevisionSlots::computeSha1()
.
Il peut être représenté ainsi :
rev_sha1 = hash_n; hash_n = sha1( hash_n-1, content_sha1_n ); hash_1 = content_sha1_1;
rev_content_model
Versions de MediaWiki : | 1.21 – 1.34 |
Modèle de contenu, voir les constantes CONTENT_MODEL_XXX
dans Defines.php .
Ces ID seront exposés dans l'API et les vidages XML.
Le extensions qui définissent leurs propres IDs de modèle de contenu doivent veiller à éviter les conflits.
Il est recommandé d'utiliser le nom de l'extension comme préfixe, par exemple 'myextension-somecontent'.
Les valeurs possibles sont par exemple : 'wikitext', 'javascript', 'css', 'text', and 'json'
(obsolète depuis v. 1.31)
S'il existe des lignes de la table slots
avec slot_revision_id = rev_id, ce champ doit être ignoré (et peut être à NULL) en faveur des données correspondantes des tables slots
et content
.
(supprimé en 1.35) Cette colonne a été remplacée par content.content_model, qui référence content_models.model_id.
rev_content_format
Versions de MediaWiki : | 1.21 – 1.34 |
Format du contenu, voir les constantes CONTENT_FORMAT_XXX
dans Defines.php .
Ceux-ci doivent être des types de MIME, et seront présentés dans l'API et les vidages XML.
Les extensions sont libres d'utiliser les formats ci-dessous, ou de définir les leurs propres.
Il est recommandé de coller aux conventions concernant les types de MIME.
Les valeurs possibles sont par exemple : 'text/x-wiki', 'text/javascript', 'text/css', 'text/plain', 'text/html', 'application/vnd.php.serialized', 'application/json', 'application/xml'
(obsolète depuis v. 1.31)
S'il existe des lignes avec slot_revision_id = rev_id dans la table slots
, ce champ doit être ignoré (et peut être NULL).
(supprimé en 1.35) Cette colonne a été supprimée. La classe ContentHandler peut détecter le format du contenu automatiquement, et remplace cette colonne.
Résumé du schéma
Version de MediaWiki : | ≥ 1.43 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_comment_id | bigint(20) unsigned | NO | | NULL | | | rev_actor | bigint(20) unsigned | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | bigint(20) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | +----------------+---------------------+------+-----+---------+----------------+
Versions de MediaWiki : | 1.37 – 1.42 Gerrit change 5954 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_comment_id | bigint(20) unsigned | NO | | 0 | | | rev_actor | bigint(20) unsigned | NO | MUL | 0 | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | +----------------+---------------------+------+-----+---------+----------------+
Versions de MediaWiki : | 1.35 – 1.36 |
DESCRIBE revision;
+----------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_comment_id | bigint(20) unsigned | NO | | 0 | | | rev_actor | bigint(20) unsigned | NO | MUL | 0 | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | +----------------+---------------------+------+-----+----------------+----------------+
Versions de MediaWiki : | 1.31 – 1.34 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_text_id | int(10) unsigned | NO | | 0 | | | rev_comment | varbinary(767) | NO | | | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varbinary(255) | NO | MUL | | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+----------------+----------------+
Version de MediaWiki : | 1.30 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | varbinary(767) | NO | | | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varbinary(255) | NO | MUL | | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+----------------+----------------+
Versions de MediaWiki : | 1.25 – 1.29 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+----------------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(10) unsigned | NO | MUL | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | varbinary(767) | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varbinary(255) | NO | MUL | | | | rev_timestamp | binary(14) | NO | MUL | | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+----------------+----------------+
Versions de MediaWiki : | 1.21 – 1.24 |
DESCRIBE revision;
+--------------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(10) unsigned | NO | PRI | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | NULL | | | rev_content_model | varbinary(32) | YES | | NULL | | | rev_content_format | varbinary(64) | YES | | NULL | | +--------------------+---------------------+------+-----+---------+----------------+
Versions de MediaWiki : | 1.19 – 1.20 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(10) unsigned | NO | PRI | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | | rev_sha1 | varbinary(32) | NO | | NULL | | +----------------+---------------------+------+-----+---------+----------------+
Versions de MediaWiki : | 1.9 – 1.18 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(10) unsigned | NO | PRI | NULL | | | rev_text_id | int(10) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(10) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | binary(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(3) unsigned | NO | | 0 | | | rev_deleted | tinyint(3) unsigned | NO | | 0 | | | rev_len | int(10) unsigned | YES | | NULL | | | rev_parent_id | int(10) unsigned | YES | | NULL | | +----------------+---------------------+------+-----+---------+----------------+
Versions de MediaWiki : | 1.5 – 1.8 |
DESCRIBE revision;
+----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(8) unsigned | NO | PRI | NULL | AUTO_INCREMENT | | rev_page | int(8) unsigned | NO | PRI | NULL | | | rev_text_id | int(8) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(5) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) binary | NO | MUL | NULL | | | rev_timestamp | char(14) binary | NO | MUL | NULL | | | rev_minor_edit | tinyint(1) unsigned | NO | | 0 | | | rev_deleted | tinyint(1) unsigned | NO | | 0 | | +----------------+---------------------+------+-----+---------+----------------+
Les index
Version de MediaWiki : | ≥ 1.38 |
SHOW INDEX IN revision;
+----------+------------+--------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +----------+------------+--------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | revision | 0 | PRIMARY | 1 | rev_id | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_timestamp | 1 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_timestamp | 1 | rev_page | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_timestamp | 2 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_actor_timestamp | 1 | rev_actor | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_actor_timestamp | 2 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_actor_timestamp | 3 | rev_id | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_actor_timestamp | 1 | rev_page | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_actor_timestamp | 2 | rev_actor | A | 0 | NULL | NULL | | BTREE | | | | revision | 1 | rev_page_actor_timestamp | 3 | rev_timestamp | A | 0 | NULL | NULL | | BTREE | | | +----------+------------+--------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+