another place to use column names, not numeric offsets
authorMichael J. Rubinsky <mrubinsk@horde.org>
Thu, 4 Nov 2010 05:08:05 +0000 (01:08 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Thu, 4 Nov 2010 05:25:51 +0000 (01:25 -0400)
framework/Db/lib/Horde/Db/Adapter/Mysql/Schema.php
framework/Db/lib/Horde/Db/Adapter/Postgresql/Schema.php

index ae69e8e..0b18c31 100644 (file)
@@ -390,8 +390,8 @@ class Horde_Db_Adapter_Mysql_Schema extends Horde_Db_Adapter_Base_Schema
     public function showVariable($name)
     {
         $value = $this->selectOne('SHOW VARIABLES LIKE '.$this->quoteString($name));
-        if ($value[0] == $name) {
-            return $value[1];
+        if ($value['Variable_name'] == $name) {
+            return $value['Value'];
         } else {
             throw new Horde_Db_Exception($name . ' is not a recognized variable');
         }
index 7126e64..ce862eb 100644 (file)
@@ -260,12 +260,12 @@ class Horde_Db_Adapter_Postgresql_Schema extends Horde_Db_Adapter_Base_Schema
             $indexes = array();
 
             foreach ($result as $row) {
-                if ($currentIndex != $row[0]) {
-                    $currentIndex = $row[0];
+                if ($currentIndex != $row['relname']) {
+                    $currentIndex = $row['relname'];
                     $indexes[] = $this->makeIndex(
-                        $tableName, $row[0], false, $row[1] == 't', array());
+                        $tableName, $row['relname'], false, $row['indisunique'] == 't', array());
                 }
-                $indexes[count($indexes) - 1]->columns[] = $row[2];
+                $indexes[count($indexes) - 1]->columns[] = $row['attname'];
             }
 
             $this->_cache->set("tables/indexes/$tableName", serialize($indexes));
@@ -433,7 +433,7 @@ class Horde_Db_Adapter_Postgresql_Schema extends Horde_Db_Adapter_Base_Schema
         }
 
         // [primary_key, sequence]
-        return array($result[0], $result[1]);
+        return array($result['attname'], $result['relname']);
     }
 
     /**