Manual:Watchlist table/en

The watchlist table for each registered user contains their 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.

wl_id
This is the primary key for the table.

wl_user
This is the key to $1.

wl_namespace
This is the key to $1.

wl_title
This is the key to $1.

wl_notificationtimestamp
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 of or  is true.

Since, the timestamp update may be deferred to the job queue.

Schema summary
DESCRIBE watchlist; +--+--+--+-+-++ +--+--+--+-+-++ +--+--+--+-+-++
 * Field                   | Type             | Null | Key | Default | Extra          |
 * wl_id                   | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
 * wl_user                 | int(10) unsigned | NO   | MUL | NULL    |                |
 * wl_namespace            | int(11)          | NO   | MUL | 0       |                |
 * wl_title                | varbinary(255)   | NO   |     |         |                |
 * wl_notificationtimestamp | varbinary(14)   | YES  |     | NULL    |                |

DESCRIBE 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    |       |

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) binary | NO   | PRI | NULL    |       |
 * wl_notificationtimestamp | varchar(14) binary | YES  |     | NULL    |       |

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) binary | NO   | PRI | NULL    |       |
 * wl_notificationtimestamp | varchar(14) binary | NO   |     | NULL    |       |

DESCRIBE watchlist; +--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field       | Type                | Null | Key | Default | Extra |
 * wl_user     | int(5) unsigned     | NO   | PRI | NULL    |       |
 * wl_namespace | tinyint(2) unsigned | NO  | PRI | 0       |       |
 * wl_title    | varchar(255) binary | NO   | PRI | NULL    |       |

Some of this information was adapted from  in the MediaWiki   directory.