{ "before": { "name": "abuse_filter_log", "columns": [ { "name": "afl_id", "type": "bigint", "options": { "notnull": true, "autoincrement": true, "unsigned": true } }, { "name": "afl_global", "type": "mwtinyint", "options": { "notnull": true, "length": 1 } }, { "name": "afl_filter_id", "type": "bigint", "options": { "notnull": true, "unsigned": true } }, { "name": "afl_user", "type": "bigint", "options": { "notnull": true, "unsigned": true } }, { "name": "afl_user_text", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_ip", "type": "string", "options": { "notnull": true, "length": 255, "default": "" } }, { "name": "afl_ip_hex", "comment": "The IP address (in hexadecimal form) being used to perform the action that tripped a filter. May be an empty string if it has been purged or $wgAbuseFilterLogIP is false.", "type": "string", "options": { "notnull": true, "length": 255 } }, { "name": "afl_action", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_actions", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_var_dump", "type": "blob", "comment": "Either: A blob store address or JSON containing protected variable values along with a blob store address", "options": { "notnull": true, "length": 65530 } }, { "name": "afl_timestamp", "type": "mwtimestamp", "options": { "notnull": true } }, { "name": "afl_namespace", "type": "integer", "options": { "notnull": true } }, { "name": "afl_title", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_wiki", "type": "binary", "options": { "notnull": false, "length": 64 } }, { "name": "afl_deleted", "type": "mwtinyint", "options": { "notnull": true, "length": 1, "default": 0 } }, { "name": "afl_rev_id", "type": "integer", "options": { "notnull": false, "unsigned": true } } ], "indexes": [ { "name": "afl_filter_timestamp_full", "columns": [ "afl_global", "afl_filter_id", "afl_timestamp" ], "unique": false }, { "name": "afl_user_timestamp", "columns": [ "afl_user", "afl_user_text", "afl_timestamp" ], "unique": false }, { "name": "afl_timestamp", "columns": [ "afl_timestamp" ], "unique": false }, { "name": "afl_page_timestamp", "columns": [ "afl_namespace", "afl_title", "afl_timestamp" ], "unique": false }, { "name": "afl_ip_timestamp", "columns": [ "afl_ip", "afl_timestamp" ], "unique": false, "comment": "Used to find rows in abuse_filter_log which need to have the IP address purged as the row is older than $wgAbuseFilterLogIPMaxAge." }, { "name": "afl_ip_hex_timestamp", "columns": [ "afl_ip_hex", "afl_timestamp" ], "unique": false, "comment": "Used to find rows in abuse_filter_log which need to have the IP address purged as the row is older than $wgAbuseFilterLogIPMaxAge." }, { "name": "afl_rev_id", "columns": [ "afl_rev_id" ], "unique": false }, { "name": "afl_wiki_timestamp", "columns": [ "afl_wiki", "afl_timestamp" ], "unique": false }, { "name": "afl_var_dump_timestamp", "columns": [ "afl_var_dump", "afl_timestamp" ], "unique": false, "options": { "lengths": [ 4, null ] }, "comment": "Used to find rows which have afl_var_dump with JSON objects in them (by looking for the '{' character at the start of the blob). Rows which have this as JSON and are old enough need to be converted to just use a blob store address, because the protected variables need to be purged (T390873)." } ], "pk": [ "afl_id" ] }, "after": { "name": "abuse_filter_log", "columns": [ { "name": "afl_id", "type": "bigint", "options": { "notnull": true, "autoincrement": true, "unsigned": true } }, { "name": "afl_global", "type": "mwtinyint", "options": { "notnull": true, "length": 1 } }, { "name": "afl_filter_id", "type": "bigint", "options": { "notnull": true, "unsigned": true } }, { "name": "afl_user", "type": "bigint", "options": { "notnull": true, "unsigned": true } }, { "name": "afl_user_text", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_ip_hex", "comment": "The IP address (in hexadecimal form) being used to perform the action that tripped a filter. May be an empty string if it has been purged or $wgAbuseFilterLogIP is false.", "type": "string", "options": { "notnull": true, "length": 255 } }, { "name": "afl_action", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_actions", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_var_dump", "type": "blob", "comment": "Either: A blob store address or JSON containing protected variable values along with a blob store address", "options": { "notnull": true, "length": 65530 } }, { "name": "afl_timestamp", "type": "mwtimestamp", "options": { "notnull": true } }, { "name": "afl_namespace", "type": "integer", "options": { "notnull": true } }, { "name": "afl_title", "type": "binary", "options": { "notnull": true, "length": 255 } }, { "name": "afl_wiki", "type": "binary", "options": { "notnull": false, "length": 64 } }, { "name": "afl_deleted", "type": "mwtinyint", "options": { "notnull": true, "length": 1, "default": 0 } }, { "name": "afl_rev_id", "type": "integer", "options": { "notnull": false, "unsigned": true } } ], "indexes": [ { "name": "afl_filter_timestamp_full", "columns": [ "afl_global", "afl_filter_id", "afl_timestamp" ], "unique": false }, { "name": "afl_user_timestamp", "columns": [ "afl_user", "afl_user_text", "afl_timestamp" ], "unique": false }, { "name": "afl_timestamp", "columns": [ "afl_timestamp" ], "unique": false }, { "name": "afl_page_timestamp", "columns": [ "afl_namespace", "afl_title", "afl_timestamp" ], "unique": false }, { "name": "afl_ip_hex_timestamp", "columns": [ "afl_ip_hex", "afl_timestamp" ], "unique": false, "comment": "Used to find rows in abuse_filter_log which need to have the IP address purged as the row is older than $wgAbuseFilterLogIPMaxAge." }, { "name": "afl_rev_id", "columns": [ "afl_rev_id" ], "unique": false }, { "name": "afl_wiki_timestamp", "columns": [ "afl_wiki", "afl_timestamp" ], "unique": false }, { "name": "afl_var_dump_timestamp", "columns": [ "afl_var_dump", "afl_timestamp" ], "unique": false, "options": { "lengths": [ 4, null ] }, "comment": "Used to find rows which have afl_var_dump with JSON objects in them (by looking for the '{' character at the start of the blob). Rows which have this as JSON and are old enough need to be converted to just use a blob store address, because the protected variables need to be purged (T390873)." } ], "pk": [ "afl_id" ] } }