diff options
| author | Nathan Kinkade <nkinkade@nkinka.de> | 2010-01-03 15:51:24 +0000 | 
|---|---|---|
| committer | Nathan Kinkade <nkinkade@nkinka.de> | 2010-01-03 15:51:24 +0000 | 
| commit | 399abbc3a754cf5fdcfdff113446e1bc264091e2 (patch) | |
| tree | 592188568e15325d59e51bf19cfdf667fae8d86d /modules/gallery/libraries/MY_Database.php | |
| parent | 925a6a2220760cb7daacee1ab80a07b61b3a30a1 (diff) | |
| parent | 64e5efd57ba1479179c202e1b76b6eeb42d2924c (diff) | |
Merge branch 'master' of git://github.com/gallery/gallery3
Diffstat (limited to 'modules/gallery/libraries/MY_Database.php')
| -rw-r--r-- | modules/gallery/libraries/MY_Database.php | 55 | 
1 files changed, 22 insertions, 33 deletions
diff --git a/modules/gallery/libraries/MY_Database.php b/modules/gallery/libraries/MY_Database.php index c56f16e8..61f23fb0 100644 --- a/modules/gallery/libraries/MY_Database.php +++ b/modules/gallery/libraries/MY_Database.php @@ -17,32 +17,21 @@   * along with this program; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA.   */ -class Database extends Database_Core { +abstract class Database extends Database_Core {    protected $_table_names; -  public function open_paren() { -    $this->where[] = "("; -    return $this; -  } - -  public function close_paren() { -    // Search backwards for the last opening paren and resolve it -    $i = count($this->where) - 1; -    $this->where[$i] .= ")"; -    while (--$i >= 0) { -      if ($this->where[$i] == "(") { -        // Remove the paren from the where clauses, and add it to the right of the operator of the -        // next where clause.  If removing the paren makes the next where clause the first element -        // in the where list, then the operator shouldn't be there.  It's there because we -        // calculate whether or not we need an operator based on the number of where clauses, and -        // the open paren seems like a where clause even though it isn't. -        array_splice($this->where, $i, 1); -        $this->where[$i] = preg_replace("/^(AND|OR) /", $i ? "\\1 (" : "(", $this->where[$i]); -        return $this; -      } +  /** +   * Kohana 2.4 introduces a new connection parameter.  If it's not specified, make sure that we +   * define it here to avoid an error later on. +   * +   * @todo: add an upgrade path to modify var/database.php so that we can avoid doing this at +   *        runtime. +   */ +  protected function __construct(array $config) { +    if (!isset($config["connection"]["params"])) { +      $config["connection"]["params"] = null;      } - -    throw new Kohana_Database_Exception('database.missing_open_paren'); +    parent::__construct($config);    }    /** @@ -74,19 +63,19 @@ class Database extends Database_Core {      if (!isset($this->_table_names)) {        // This should only run once on the first query -      $this->_table_names =array(); -      $len = strlen($prefix); +      $this->_table_names = array();        foreach($this->list_tables() as $table_name) { -        if ($len > 0) { -          $naked_name = strpos($table_name, $prefix) !== 0 ? -            $table_name : substr($table_name, $len); -        } else { -          $naked_name = $table_name; -        } -        $this->_table_names["{{$naked_name}}"] = $table_name; +        $this->_table_names["{{$table_name}}"] = $prefix . $table_name;        }      } -    return empty($this->_table_names) ? $sql : strtr($sql, $this->_table_names); +    return strtr($sql, $this->_table_names); +  } + +  /** +   * This is used by the unit test code to switch the active database connection. +   */ +  static function set_default_instance($db) { +    self::$instances["default"] = $db;    }  }
\ No newline at end of file  | 
