Steps to replicate the issue (include links if applicable):
- Updating from Mediawiki LTS to latest stable using PostgreSQL 18.1 on Ubuntu LTS server
- run the update script (CLI or web produces the same result)
What happens?:
Task fails with the following error message:
PHP Warning: Undefined array key 14 in /var/www/html/mediawiki/maintenance/migrateLinksTable.php on line 123
Wikimedia\Rdbms\DBQueryError from line 1225 of /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php: Error 42601: ERROR: syntax error at or near ")"
LINE 1: ...E (cl_target_id = 0 OR cl_target_id IS NULL) AND () AND cl_t...
^
Function: MigrateLinksTable::handlePageBatch
Query: UPDATE "categorylinks" SET cl_target_id = 132 WHERE (cl_target_id = 0 OR cl_target_id IS NULL) AND () AND cl_to = 'Quality' AND (cl_from >= 0) AND (cl_from <= 999)
#0 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1209): Wikimedia\Rdbms\Database->getQueryException()
#1 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1183): Wikimedia\Rdbms\Database->getQueryExceptionAndLog()
#2 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(640): Wikimedia\Rdbms\Database->reportQueryError()
#3 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1526): Wikimedia\Rdbms\Database->query()
#4 /var/www/html/mediawiki/includes/libs/rdbms/database/DBConnRef.php(127): Wikimedia\Rdbms\Database->update()
#5 /var/www/html/mediawiki/includes/libs/rdbms/database/DBConnRef.php(462): Wikimedia\Rdbms\DBConnRef->__call()
#6 /var/www/html/mediawiki/includes/libs/rdbms/querybuilder/UpdateQueryBuilder.php(332): Wikimedia\Rdbms\DBConnRef->update()
#7 /var/www/html/mediawiki/maintenance/migrateLinksTable.php(137): Wikimedia\Rdbms\UpdateQueryBuilder->execute()
#8 /var/www/html/mediawiki/maintenance/migrateLinksTable.php(90): MigrateLinksTable->handlePageBatch()
#9 /var/www/html/mediawiki/maintenance/includes/LoggedUpdateMaintenance.php(38): MigrateLinksTable->doDBUpdates()
#10 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(1424): MediaWiki\Maintenance\LoggedUpdateMaintenance->execute()
#11 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(531): MediaWiki\Installer\DatabaseUpdater->migrateCategorylinks()
#12 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(483): MediaWiki\Installer\DatabaseUpdater->runUpdates()
#13 /var/www/html/mediawiki/maintenance/update.php(184): MediaWiki\Installer\DatabaseUpdater->doUpdates()
#14 /var/www/html/mediawiki/maintenance/includes/MaintenanceRunner.php(696): UpdateMediaWiki->execute()
#15 /var/www/html/mediawiki/maintenance/run.php(53): MediaWiki\Maintenance\MaintenanceRunner->run()
#16 {main}What should have happened instead?:
Update completed successfully
Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):
Mediawiki 1.45.1
PHP 8.3.6 (apache2handler)
ICU 74.2
PostgreSQL 18.1 (Ubuntu 18.1-1.pgdg24.04+2)
Other information (browser name/version, screenshots, etc.):
If I comment out the following section of the newUpdateQueryBuilder in the handlePageBatch function the task will complete and the rest of the update function will process, but then all of the Category pages are broken.
$mapping[$table]['ns'] => $ns,