Page MenuHomePhabricator

update.php fails for GlobalPreferences when using SQLite database
Closed, ResolvedPublicBUG REPORT

Description

patch_gp_user.sql contains:

ALTER TABLE /*_*/global_preferences CHANGE gp_user gp_user INT UNSIGNED NOT NULL;

which for SQLite apparently translates as:

ALTER TABLE global_preferences CHANGE gp_user gp_user INTEGER  NOT NULL

This fails when running update.php:

Modifying gp_user field of table global_preferences ...Wikimedia\Rdbms\DBQueryError from line 1830 of /var/www/html/w/includes/libs/rdbms/database/Database.php: Error 1: near "CHANGE": syntax error
Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/w/extensions/GlobalPreferences/sql//patch-gp_user.sql )
Query: ALTER TABLE global_preferences CHANGE gp_user gp_user INTEGER  NOT NULL

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Would look to have been broken since implementation: rEGPRd0b038b352ea: Make gp_user the same type as user_id (ie that would've never worked on sqlite)

The simple fix is to stop running that patch for SQLite

It won't break anything, it'll just mean some potential schema drift

Change 736488 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/GlobalPreferences@master] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736488

Change 736509 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/GlobalPreferences@REL1_37] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736509

Change 736510 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/GlobalPreferences@REL1_36] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736510

Change 736511 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/GlobalPreferences@REL1_35] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736511

Change 736509 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@REL1_37] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736509

Change 736510 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@REL1_36] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736510

Change 736488 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@master] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736488

MusikAnimal assigned this task to Reedy.

Thanks for the assistance, Reedy! With everything merged and backported, I think this can be resolved.

Change 736511 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@REL1_35] Make SQLite specific gp_user unsigned patch

https://gerrit.wikimedia.org/r/736511