wikimedia/mediawiki-core

View on GitHub
maintenance/abstractSchemaChanges/patch-revision-rename-index.json

Summary

Maintainability
Test Coverage
{
    "comment": "Rename page_timestamp index to have 'rev_' prefix (T270033)",
    "before": {
        "name": "revision",
        "comment": "Every edit of a page creates also a revision row. This stores metadata about the revision, and a reference to the text storage backend.",
        "columns": [
            {
                "name": "rev_id",
                "comment": "Unique ID to identify each revision",
                "type": "integer",
                "options": { "unsigned": true, "notnull": true, "autoincrement": true }
            },
            {
                "name": "rev_page",
                "comment": "Key to page_id. This should never be invalid",
                "type": "integer",
                "options": { "unsigned": true, "notnull": true }
            },
            {
                "name": "rev_comment_id",
                "comment": "Key to comment.comment_id. Comment summarizing the change",
                "type": "bigint",
                "options": { "unsigned": true, "notnull": true, "default": 0 }
            },
            {
                "name": "rev_actor",
                "comment": "Key to actor.actor_id of the user or IP who made this edit",
                "type": "bigint",
                "options": { "unsigned": true, "notnull": true, "default": 0 }
            },
            {
                "name": "rev_timestamp",
                "comment": "Timestamp of when revision was created",
                "type": "mwtimestamp",
                "options": { "notnull": true, "default": "" }
            },
            {
                "name": "rev_minor_edit",
                "comment": "Records whether the user marked the 'minor edit' checkbox. Many automated edits are marked as minor",
                "type": "mwtinyint",
                "options": { "notnull": true, "unsigned": true, "default": 0 }
            },
            {
                "name": "rev_deleted",
                "comment": "Restrictions on who can access this revision",
                "type": "mwtinyint",
                "options": { "notnull": true, "unsigned": true, "default": 0 }
            },
            {
                "name": "rev_len",
                "comment": "Length of this revision in bytes",
                "type": "integer",
                "options": { "unsigned": true, "notnull": false }
            },
            {
                "name": "rev_parent_id",
                "comment": "Key to revision.rev_id. This field is used to add support for a tree structure (The Adjacency List Model)",
                "type": "integer",
                "options": { "unsigned": true, "notnull": false }
            },
            {
                "name": "rev_sha1",
                "comment": "SHA-1 text content hash in base-36",
                "type": "binary",
                "options": { "length": 32, "notnull": true, "default": "" }
            }
        ],
        "indexes": [
            {
                "name": "rev_page_id",
                "columns": [ "rev_page", "rev_id" ],
                "comment": "The index is proposed for removal, do not use it in new code: T163532. Used for ordering revisions within a page by rev_id, which is usually incorrect, since rev_timestamp is normally the correct order. It can also be used by dumpBackup.php, if a page and rev_id range is specified.",
                "unique": false
            },
            {
                "name": "rev_timestamp",
                "columns": [ "rev_timestamp" ],
                "comment": "Used by ApiQueryAllRevisions",
                "unique": false
            },
            {
                "name": "page_timestamp",
                "columns": [ "rev_page", "rev_timestamp" ],
                "comment": "History index",
                "unique": false
            },
            {
                "name": "rev_actor_timestamp",
                "columns": [ "rev_actor", "rev_timestamp", "rev_id" ],
                "comment": "User contributions index",
                "unique": false
            },
            {
                "name": "rev_page_actor_timestamp",
                "columns": [ "rev_page", "rev_actor", "rev_timestamp" ],
                "comment": "Credits index. This is scanned in order to compile credits lists for pages, in ApiQueryContributors. Also for ApiQueryRevisions if rvuser is specified",
                "unique": false
            }
        ],
        "table_options": [ "/*$wgDBTableOptions*/", "MAX_ROWS=10000000", "AVG_ROW_LENGTH=1024" ],
        "pk": [ "rev_id" ]
    },
    "after": {
        "name": "revision",
        "comment": "Every edit of a page creates also a revision row. This stores metadata about the revision, and a reference to the text storage backend.",
        "columns": [
            {
                "name": "rev_id",
                "comment": "Unique ID to identify each revision",
                "type": "integer",
                "options": { "unsigned": true, "notnull": true, "autoincrement": true }
            },
            {
                "name": "rev_page",
                "comment": "Key to page_id. This should never be invalid",
                "type": "integer",
                "options": { "unsigned": true, "notnull": true }
            },
            {
                "name": "rev_comment_id",
                "comment": "Key to comment.comment_id. Comment summarizing the change",
                "type": "bigint",
                "options": { "unsigned": true, "notnull": true, "default": 0 }
            },
            {
                "name": "rev_actor",
                "comment": "Key to actor.actor_id of the user or IP who made this edit",
                "type": "bigint",
                "options": { "unsigned": true, "notnull": true, "default": 0 }
            },
            {
                "name": "rev_timestamp",
                "comment": "Timestamp of when revision was created",
                "type": "mwtimestamp",
                "options": { "notnull": true, "default": "" }
            },
            {
                "name": "rev_minor_edit",
                "comment": "Records whether the user marked the 'minor edit' checkbox. Many automated edits are marked as minor",
                "type": "mwtinyint",
                "options": { "notnull": true, "unsigned": true, "default": 0 }
            },
            {
                "name": "rev_deleted",
                "comment": "Restrictions on who can access this revision",
                "type": "mwtinyint",
                "options": { "notnull": true, "unsigned": true, "default": 0 }
            },
            {
                "name": "rev_len",
                "comment": "Length of this revision in bytes",
                "type": "integer",
                "options": { "unsigned": true, "notnull": false }
            },
            {
                "name": "rev_parent_id",
                "comment": "Key to revision.rev_id. This field is used to add support for a tree structure (The Adjacency List Model)",
                "type": "integer",
                "options": { "unsigned": true, "notnull": false }
            },
            {
                "name": "rev_sha1",
                "comment": "SHA-1 text content hash in base-36",
                "type": "binary",
                "options": { "length": 32, "notnull": true, "default": "" }
            }
        ],
        "indexes": [
            {
                "name": "rev_page_id",
                "columns": [ "rev_page", "rev_id" ],
                "comment": "The index is proposed for removal, do not use it in new code: T163532. Used for ordering revisions within a page by rev_id, which is usually incorrect, since rev_timestamp is normally the correct order. It can also be used by dumpBackup.php, if a page and rev_id range is specified.",
                "unique": false
            },
            {
                "name": "rev_timestamp",
                "columns": [ "rev_timestamp" ],
                "comment": "Used by ApiQueryAllRevisions",
                "unique": false
            },
            {
                "name": "rev_page_timestamp",
                "columns": [ "rev_page", "rev_timestamp" ],
                "comment": "History index",
                "unique": false
            },
            {
                "name": "rev_actor_timestamp",
                "columns": [ "rev_actor", "rev_timestamp", "rev_id" ],
                "comment": "User contributions index",
                "unique": false
            },
            {
                "name": "rev_page_actor_timestamp",
                "columns": [ "rev_page", "rev_actor", "rev_timestamp" ],
                "comment": "Credits index. This is scanned in order to compile credits lists for pages, in ApiQueryContributors. Also for ApiQueryRevisions if rvuser is specified",
                "unique": false
            }
        ],
        "table_options": [ "/*$wgDBTableOptions*/", "MAX_ROWS=10000000", "AVG_ROW_LENGTH=1024" ],
        "pk": [ "rev_id" ]
    }
}