namespaceDupes.php is used when introducing a new namespace, to check/move titles that already use the new (namespace) prefix to be introduced.
The actual rename happens in NamespaceConflictChecker::resolveConflictOn() in namespaceDupes.php. All it does is update the pages in the page table.
However, there are plenty of other places that reference such namespace/title pairs that are not properly updated.
Is there any reason NamespaceConflictChecker::resolveConflictOn() doesn't use Title::moveTo? That one does seem to update references in a lot of the other tables as well, and runs hooks (TitleMove & TitleMoveComplete) that extensions can subscribe to in order to update their data.
Can we change it to use Title::moveTo?
A non-exhaustive list of tables with namespace/title references that may contain incorrect references after such rename:
- abuse_filter_log
- archive
- cu_changes
- echo_event
- edit_page_tracking
- flaggedrevs_tracking
- flaggedtemplates
- flow_ext_ref
- flow_wiki_ref
- flow_workflow
- globalimagelinks
- imagelinks?
- job
- logging
- pagelinks
- protected_titles
- querycache
- querycachetwo
- recentchanges
- redirect
- templatelinks
- thread
- translate_stash
- watchlist
When Flow recently introduced Topic:, we encountered a problem with unmoved references in watchlist table, T73109.
Version: unspecified
Severity: normal