I've just checked in a rewrite of the watchlist function; instead of
doing a zillion separate database queries, it now does just two: one to
get the watchlist from the user table, the other to grab the info needed
to fill out the table/list.
Please, check over it and make sure it looks okay before we let yet
another horribly misshappen watchlist version wander over the land!
As a hack to get non-blank, non-talk namespaces listed until we have a
separate field that contains the title but *not* the namespace, all
valid namespaces get prepended to the titles-to-be-watched in the list
given to the database to check against.
I've also fixed the bug whereby clicking "add to my watchlist" on a page
with a non-blank namespace results in a redirect to the equivalent title
in the blank namespace.
(It would also be possible, if preferred, to limit the namespace-laxity
in the watchlist to just "X" and "X talk" pairs. Personally, I've
enough pages get moved from blank to "wikipedia:" that I'd prefer to
keep complete namespace agnosticism in my watchlist: the less I have to
add and subtract things to keep my watchlist relevent, the better.)
-- brion vibber (brion @ pobox.com