class ChadoDatabaseConnection
Overrides the DatabaseConnection_pgsql.
The primary purpose of this class is to allow for prefixing of Chado tables. By default the only way to support this is to add an array to the 'prefix' key of the settings.php file. But this is problematic. For example, what if there is a contact table in the Drupal database as well as one in Chado. The default prefix replacement would always rewrite it to be the one in Chado. This class is intended to be used when the Chado tables are needed.
Hierarchy
- class \ChadoDatabaseConnection extends \DatabaseConnection_pgsql
Expanded class hierarchy of ChadoDatabaseConnection
File
- tripal_chado/
includes/ ChadoDatabaseConnection.inc, line 15
View source
class ChadoDatabaseConnection extends DatabaseConnection_pgsql {
/**
* A replacement constructor for DatabaseConnection_pgsql::__construct.
*
* The primary purpose for overiding the constructor is to dynamically add
* a set of prefixes for replacing. This will allow Chado tables to be
* prefixed with the 'chado.' schema prefix. The alternative to overridding
* the DatabaseConnection_pgsql is to ask the end-user to add a prefix
* entry for every Chado table and custom table they create. That's not
* very manageable.
*/
function __construct(array $connection_options = array()) {
parent::__construct($connection_options);
// Get the list of prefix search and replace that are set in the
// settings.php file. We'll need those later.
$psearch = $this->prefixSearch;
$preplace = $this->prefixReplace;
// Reset the prefix serach and replace
$this->prefixSearch = array();
$this->prefixReplace = array();
$tables = chado_get_table_names(TRUE);
foreach ($tables as $table) {
$this->prefixSearch[] = '{' . $table . '}';
$this->prefixReplace[] = 'chado.' . $table;
}
$this->prefixSearch = array_merge($this->prefixSearch, $psearch);
$this->prefixReplace = array_merge($this->prefixReplace, $preplace);
}
public function prefixTables($sql) {
$sql = str_replace($this->prefixSearch, $this->prefixReplace, $sql);
return $sql;
}
}
Members
Name | Modifiers | Type | Description |
---|---|---|---|
ChadoDatabaseConnection:: |
public | function | |
ChadoDatabaseConnection:: |
function | A replacement constructor for DatabaseConnection_pgsql::__construct. |