forgot for prev checkin re bug 6440. Database should return all rows about a given...
authorYuri Astrakhan <yurik@users.mediawiki.org>
Sat, 11 Nov 2006 21:42:46 +0000 (21:42 +0000)
committerYuri Astrakhan <yurik@users.mediawiki.org>
Sat, 11 Nov 2006 21:42:46 +0000 (21:42 +0000)
includes/Database.php
includes/DatabaseOracle.php
includes/DatabasePostgres.php

index 04a3731..7dd734b 100644 (file)
@@ -1144,12 +1144,15 @@ class Database {
                        return NULL;
                }
 
+               $result = array();
                while ( $row = $this->fetchObject( $res ) ) {
                        if ( $row->Key_name == $index ) {
-                               return $row;
+                               $result[] = $row;
                        }
                }
-               return false;
+               $this->freeResult($res);
+               
+               return empty($result) ? false : $result;
        }
 
        /**
@@ -1203,7 +1206,7 @@ class Database {
                if ( !$indexInfo ) {
                        return NULL;
                }
-               return !$indexInfo->Non_unique;
+               return !$indexInfo[0]->Non_unique;
        }
 
        /**
index aa1e329..8163567 100644 (file)
@@ -239,6 +239,9 @@ class DatabaseOracle extends Database {
                $this->freeResult($res);
                $row->Non_unique = !$row->uniqueness;
                return $row;
+               
+               // BUG: !!!! This code needs to be synced up with database.php
+               
        }
 
        function indexUnique ($table, $index, $fname = 'indexUnique') {
index 5e531bc..0ff74ed 100644 (file)
@@ -460,6 +460,9 @@ class DatabasePostgres extends Database {
                while ( $row = $this->fetchObject( $res ) ) {
                        if ( $row->indexname == $index ) {
                                return $row;
+                               
+                               // BUG: !!!! This code needs to be synced up with database.php
+                               
                        }
                }
                return false;