Schema is not PostgreSQL connection parameter
authorsaper <saper@saper.info>
Tue, 26 Aug 2014 19:11:25 +0000 (21:11 +0200)
committersaper <saper@saper.info>
Tue, 26 Aug 2014 19:11:25 +0000 (21:11 +0200)
Temporary fix for bug 70030.

openConnectionWithParams() got a new schema
parameter in 30a82aae9cf and therefore must
not be used to probe some available databases
when checking username/password, because
schema is not at all a PostgreSQL connection
parameter - it something similar to
"current directory" in the database. PostgreSQL
can additionally search additional schemas
for objects in necessary.

This whole openPgConnection logic needs some
deeper repair; for now however, let's quickly
fix bug 70030 which is caused by that fact
that openConnectionWithParams returns magic
"Status" object and no longer a DatabasePostgres
instance we can directly talk to.

As a result, openPgConnection( "create-db" )
was returning a Status object that had
another Status object embedded in the value
field.

This reverts partially commit 30a82aae9cf7e5536eef761637a1277b7c18017e.

Conflicts:
includes/installer/Installer.php
includes/installer/PostgresInstaller.php
maintenance/install.php

Bug: 70030
Change-Id: I61d5f262e60722bc08201b40b61a298d8af42223

includes/installer/PostgresInstaller.php

index 6dcce23..c30a989 100644 (file)
@@ -262,11 +262,11 @@ class PostgresInstaller extends DatabaseInstaller {
                $status = Status::newGood();
                foreach ( $dbs as $db ) {
                        try {
-                               $conn = $this->openConnectionWithParams(
+                               $conn = new DatabasePostgres(
+                                       $this->getVar( 'wgDBserver' ),
                                        $user,
                                        $password,
-                                       $db,
-                                       $this->getVar( 'wgDBmwschema' ) );
+                                       $db );
                        } catch ( DBConnectionError $error ) {
                                $conn = false;
                                $status->fatal( 'config-pg-test-error', $db,