Author: tom
Description:
Running update.php in mediawiki 1.16.2 (also seen in 1.16.1) with a postgres backend shows the following output:
... search_path for user "blah-www" looks correct (mediawiki, public)
Setting client_min_messages to 'error' for user "blah-www"
PHP Warning: pg_query(): Query failed: ERROR: syntax error at or near "-"
LINE 1: ALTER USER blah-www SET client_min_messages = 'error'
After some scouring around in the source, I believe the problem is that around line 1549 in updaters.inc, $wgDbuser is passed unquoted to postgres:
$wgDatabase->doQuery( "ALTER USER $wgDBuser SET $key = '$value'" );
This ofcourse fails when $wgDbuser contains a minus-sign. Correct syntax would use double quotes:
$wgDatabase->doQuery( "ALTER USER \"$wgDBuser\" SET $key = '$value'" );
Version: 1.16.x
Severity: normal