Fix bug where databases that were owned by roles with no login ability would not...
authorxzilla <xzilla>
Tue, 18 Jul 2006 18:58:47 +0000 (18:58 +0000)
committerxzilla <xzilla>
Tue, 18 Jul 2006 18:58:47 +0000 (18:58 +0000)
Problem reported by "Darren" <notross@hotmail.com>, fix based on deduction by Tom Lane.

classes/database/Postgres81.php

index 00c0b3b97f11565567ecdb69ee3a64765be5800f..578634b5827d510314b978b78d07c580033d38fd 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * PostgreSQL 8.1 support
  *
- * $Id: Postgres81.php,v 1.7 2006/06/20 14:06:09 xzilla Exp $
+ * $Id: Postgres81.php,v 1.8 2006/07/18 18:58:47 xzilla Exp $
  */
 
 include_once('./classes/database/Postgres80.php');
@@ -97,16 +97,18 @@ class Postgres81 extends Postgres80 {
                else
                        $where = ' AND pdb.datallowconn';
 
-               $sql = "SELECT pdb.datname AS datname, pu.usename AS datowner, pg_encoding_to_char(encoding) AS datencoding,
+               $sql = "SELECT pdb.datname AS datname, pr.rolname AS datowner, pg_encoding_to_char(encoding) AS datencoding,
                                (SELECT description FROM pg_catalog.pg_description pd WHERE pdb.oid=pd.objoid) AS datcomment,
                                (SELECT spcname FROM pg_catalog.pg_tablespace pt WHERE pt.oid=pdb.dattablespace) AS tablespace,
-                                                          pg_catalog.pg_database_size(oid) as dbsize 
-                        FROM pg_catalog.pg_database pdb, pg_catalog.pg_user pu
-                       WHERE pdb.datdba = pu.usesysid
+                                                          pg_catalog.pg_database_size(pdb.oid) as dbsize 
+                        FROM pg_catalog.pg_database pdb LEFT JOIN pg_catalog.pg_roles pr ON (pdb.datdba = pr.oid)  
+                                               WHERE true 
                        {$where}
                        {$clause}
                        {$orderby}";
 
+               echo $sql ; 
+
                return $this->selectSet($sql);
        }