wikimedia/mediawiki-core

View on GitHub
maintenance/abstractSchemaChanges/patch-logging-rename-indexes.json

Summary

Maintainability
Test Coverage
{
    "comment": "Rename several indexes in logging table to comply with database convention by having log_ prefix",
    "before": {
        "name": "logging",
        "columns": [
            {
                "name": "log_id",
                "comment": "Log ID, for referring to this specific log entry, probably for deletion and such.",
                "type": "integer",
                "options": { "unsigned": true, "notnull": true, "autoincrement": true }
            },
            {
                "name": "log_type",
                "comment": "Symbolic key for the general log type. The output format will be controlled by the log_action field.",
                "type": "binary",
                "options": { "notnull": true, "default": "", "length": 32 }
            },
            {
                "name": "log_action",
                "comment": "Symbolic key for the log action type.",
                "type": "binary",
                "options": { "notnull": true, "default": "", "length": 32 }
            },
            {
                "name": "log_timestamp",
                "type": "mwtimestamp",
                "options": { "notnull": true, "default": "19700101000000" }
            },
            {
                "name": "log_actor",
                "type": "bigint",
                "options": { "notnull": true, "unsigned": true }
            },
            {
                "name": "log_namespace",
                "comment": "Key to the namespace of the page affected",
                "type": "integer",
                "options": { "notnull": true, "default": 0 }
            },
            {
                "name": "log_title",
                "comment": "Key to the title of the page affected",
                "type": "binary",
                "options": { "notnull": true, "default": "", "length": 255 }
            },
            {
                "name": "log_page",
                "comment": "Key to the page affected",
                "type": "integer",
                "options": { "notnull": false, "unsigned": true }
            },
            {
                "name": "log_comment_id",
                "comment": "Key to comment_id. Comment summarizing the change.",
                "type": "bigint",
                "options": { "notnull": true, "unsigned": true }
            },
            {
                "name": "log_params",
                "comment": "LF separated list (old system) or serialized PHP array (new system)",
                "type": "blob",
                "options": { "notnull": true, "length": 65530 }
            },
            {
                "name": "log_deleted",
                "comment": "rev_deleted for logs",
                "type": "mwtinyint",
                "options": { "notnull": true, "unsigned": true, "default": 0 }
            }
        ],
        "indexes": [
            {
                "name": "type_time",
                "comment": "Special:Log type filter",
                "columns": [ "log_type", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "actor_time",
                "comment": "Special:Log performer filter",
                "columns": [ "log_actor", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "page_time",
                "comment": "Special:Log title filter, log extract",
                "columns": [ "log_namespace", "log_title", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "times",
                "comment": "Special:Log unfiltered",
                "columns": [ "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_actor_type_time",
                "comment": "Special:Log filter by performer and type",
                "columns": [ "log_actor", "log_type", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_page_id_time",
                "comment": "Apparently just used for a few maintenance pages (findMissingFiles.php, Flow). Could be removed?",
                "columns": [ "log_page", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_type_action",
                "comment": "Special:Log action filter",
                "columns": [ "log_type", "log_action", "log_timestamp" ],
                "unique": false
            }
        ],
        "pk": [ "log_id" ]
    },
    "after": {
        "name": "logging",
        "columns": [
            {
                "name": "log_id",
                "comment": "Log ID, for referring to this specific log entry, probably for deletion and such.",
                "type": "integer",
                "options": { "unsigned": true, "notnull": true, "autoincrement": true }
            },
            {
                "name": "log_type",
                "comment": "Symbolic key for the general log type. The output format will be controlled by the log_action field.",
                "type": "binary",
                "options": { "notnull": true, "default": "", "length": 32 }
            },
            {
                "name": "log_action",
                "comment": "Symbolic key for the log action type.",
                "type": "binary",
                "options": { "notnull": true, "default": "", "length": 32 }
            },
            {
                "name": "log_timestamp",
                "type": "mwtimestamp",
                "options": { "notnull": true, "default": "19700101000000" }
            },
            {
                "name": "log_actor",
                "type": "bigint",
                "options": { "notnull": true, "unsigned": true }
            },
            {
                "name": "log_namespace",
                "comment": "Key to the namespace of the page affected",
                "type": "integer",
                "options": { "notnull": true, "default": 0 }
            },
            {
                "name": "log_title",
                "comment": "Key to the title of the page affected",
                "type": "binary",
                "options": { "notnull": true, "default": "", "length": 255 }
            },
            {
                "name": "log_page",
                "comment": "Key to the page affected",
                "type": "integer",
                "options": { "notnull": false, "unsigned": true }
            },
            {
                "name": "log_comment_id",
                "comment": "Key to comment_id. Comment summarizing the change.",
                "type": "bigint",
                "options": { "notnull": true, "unsigned": true }
            },
            {
                "name": "log_params",
                "comment": "LF separated list (old system) or serialized PHP array (new system)",
                "type": "blob",
                "options": { "notnull": true, "length": 65530 }
            },
            {
                "name": "log_deleted",
                "comment": "rev_deleted for logs",
                "type": "mwtinyint",
                "options": { "notnull": true, "unsigned": true, "default": 0 }
            }
        ],
        "indexes": [
            {
                "name": "log_type_time",
                "comment": "Special:Log type filter",
                "columns": [ "log_type", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_actor_time",
                "comment": "Special:Log performer filter",
                "columns": [ "log_actor", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_page_time",
                "comment": "Special:Log title filter, log extract",
                "columns": [ "log_namespace", "log_title", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_times",
                "comment": "Special:Log unfiltered",
                "columns": [ "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_actor_type_time",
                "comment": "Special:Log filter by performer and type",
                "columns": [ "log_actor", "log_type", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_page_id_time",
                "comment": "Apparently just used for a few maintenance pages (findMissingFiles.php, Flow). Could be removed?",
                "columns": [ "log_page", "log_timestamp" ],
                "unique": false
            },
            {
                "name": "log_type_action",
                "comment": "Special:Log action filter",
                "columns": [ "log_type", "log_action", "log_timestamp" ],
                "unique": false
            }
        ],
        "pk": [ "log_id" ]
    }
}