Manual:Watchlist table

From MediaWiki.org
(Redirected from Watchlist table)
Jump to: navigation, search

Other languages:
English • ‎español • ‎日本語 • ‎polski
Manual:ContentsManual:Contents MediaWiki database layoutManual:Database layout watchlist table


The watchlist table for each registered user contains his or her id and for all the pages the user watches, the namespace number, the page title without namespace, and a notification timestamp, used for page change notification.

Note: MediaWiki works with the assumption that when people watch pages they either watch both the talk page and the normal page, or neither. That means that for each watched page MediaWiki always automatically adds two entries: One for the page and one for its talk page. E.g. when the user watches the Main Page, then there will be two rows in the database table: One for the Main Page in namespace 0 and one for the Main Page in namespace 1 (which is the according talk page). Missing page rows are added by the maintenance script update.php.

Fields[edit | edit source]

wl_user[edit | edit source]

This is the key to user.user_idManual:User_table#user_id.

wl_namespace[edit | edit source]

This is the key to page_namespacePage_table#page_namespace.

wl_title[edit | edit source]

This is the key to page_titlePage_table#page_title.

wl_notificationtimestamp[edit | edit source]

MediaWiki version: 1.4

This is the timestamp of the first change to the page made by another user after the last visit by the watching user; the timestamp is cleared when the user visits the page. When the timestamp is updated, notification email may be sent.

The timestamp is always cleared (made NULL) when the user visits the page, whatever their personal settings, as long as either either of $wgUseEnotif or $wgShowUpdatedMarker is true.


MediaWiki version: 1.26

Since git #836ad263, the timestamp update may be deferred to the job queue.

Schema summary[edit | edit source]

(Current as of v1.23.)

MediaWiki version: 1.19


"DESCRIBE watchlist;" in version 1.19 gives the following:

mysql> DESCRIBE mw_watchlist;
+--------------------------+------------------+------+-----+---------+-------+
| Field                    | Type             | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+---------+-------+
| wl_user                  | int(10) unsigned | NO   | PRI | NULL    |       |
| wl_namespace             | int(11)          | NO   | PRI | 0       |       |
| wl_title                 | varbinary(255)   | NO   | PRI |         |       |
| wl_notificationtimestamp | varbinary(14)    | YES  |     | NULL    |       |
+--------------------------+------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)


MediaWiki version: 1.9
mysql> describe watchlist;
+--------------------------+-----------------+------+-----+---------+-------+
| Field                    | Type            | Null | Key | Default | Extra |
+--------------------------+-----------------+------+-----+---------+-------+
| wl_user                  | int(5) unsigned | NO   | PRI | NULL    |       |
| wl_namespace             | int(11)         | NO   | PRI | 0       |       |
| wl_title                 | varchar(255)    | NO   | PRI | NULL    |       |
| wl_notificationtimestamp | varchar(14)     | YES  |     | NULL    |       |
+--------------------------+-----------------+------+-----+---------+-------+
4 rows in set (0.01 sec)


MediaWiki version: 1.8

"DESCRIBE watchlist;" in version 1.8 gives the following:

+--------------------------+-----------------+------+-----+---------+-------+
| Field                    | Type            | Null | Key | Default | Extra |
+--------------------------+-----------------+------+-----+---------+-------+
| wl_user                  | int(5) unsigned | NO   | PRI | NULL    |       |
| wl_namespace             | int(11)         | NO   | PRI | 0       |       |
| wl_title                 | varchar(255)    | NO   | PRI | NULL    |       |
| wl_notificationtimestamp | varchar(14)     | YES  |     | NULL    |       |
+--------------------------+-----------------+------+-----+---------+-------+


MediaWiki version: 1.5

"DESCRIBE watchlist;" in version 1.5 gives the following:

+--------------------------+-----------------+------+-----+---------+-------+
| Field                    | Type            | Null | Key | Default | Extra |
+--------------------------+-----------------+------+-----+---------+-------+
| wl_user                  | int(5) unsigned | NO   | PRI |         |       |
| wl_namespace             | int(11)         | NO   | PRI | 0       |       |
| wl_title                 | varchar(255)    | NO   | PRI |         |       |
| wl_notificationtimestamp | varchar(14)     | NO   |     | 0       |       |
+--------------------------+-----------------+------+-----+---------+-------+


MediaWiki version: 1.4

"DESCRIBE watchlist;" in version 1.4 gives the following:

+------------------+---------------------+------+-----+---------+----------------+
| Field            | Type                | Null | Key | Default | Extra          |
+------------------+---------------------+------+-----+---------+----------------+
| wl_user          | int(5) unsigned     |      |     |         |                |
| wl_namespace     | tinyint(2) unsigned |      |     |    0    |                |
| wl_title         | varchar(255) binary |      |     |    ''   |                |
+------------------+---------------------+------+-----+---------+----------------+

Some of this information was adapted from schema.doc in the MediaWiki docs/ directory.

DatabasesManual:Database layout Engines: MySQLManual:MySQLOracleManual:OraclePostgreSQLManual:PostgreSQLSQLiteManual:SQLite
Technical documentation: SchemaManual:Database layout (tablesCategory:MediaWiki database tables) – API property associationsAPI:Database field and API property associationsField prefixesDatabase field prefixesPrimary key storage in other fieldsManual:Primary key storage in other fieldsWikimedia extension tablesCategory:Wikimedia extension database tables
Configuration: SettingsManual:Configuration_settings#Database_settingsSharingManual:Shared database
Development: AccessManual:Database accessOptimizationDatabase optimizationPolicyDevelopment policy#Database_patchesUpdaterManual:DatabaseUpdater.phpExtension schema updatesManual:Hooks/LoadExtensionSchemaUpdatesPatch fileManual:SQL patch file
Core tables: archivecategorycategorylinkschange_tagconfigexternallinksfilearchivehitcounterimageimagelinksinterwikiiwlinksipblocksjobl10n_cachelanglinkslogginglog_searchmsg_resourcemsg_resource_linksmodule_depsobjectcacheoldimagepagepagelinkspage_propspage_restrictionsprotected_titlesquerycachequerycachetwoquerycache_inforecentchangesredirectrevisionsearchindexsitessite_statstag_summarytemplatelinkstexttranscacheupdateloguploadstashuseruser_former_groupsuser_groupsuser_newtalkuser_propertiesvalid_tagwatchlist