Page MenuHomePhabricator

namespaceDupes.php doesn't update references in other tables for pages it moved
Open, MediumPublic

Description

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

Details

Reference
bz71171