diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-12-02 19:45:01 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-12-02 19:45:01 +0000 |
commit | 71a22f1c1f4da46a370dd11b9e31537f255c7375 (patch) | |
tree | 41e0c79282557b7f1ed878bf78ad482c2ce2f102 /includes | |
parent | 8900c6156d3ab1e48c8e8ff697305ce6530fbe5a (diff) | |
download | brdo-71a22f1c1f4da46a370dd11b9e31537f255c7375.tar.gz brdo-71a22f1c1f4da46a370dd11b9e31537f255c7375.tar.bz2 |
- Patch #337926 by Damien Tournoud: clean-up lower case handling.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/database/database.inc | 20 | ||||
-rw-r--r-- | includes/database/mysql/database.inc | 15 | ||||
-rw-r--r-- | includes/database/mysql/schema.inc | 2 | ||||
-rw-r--r-- | includes/database/pgsql/database.inc | 15 | ||||
-rw-r--r-- | includes/database/sqlite/database.inc | 20 |
5 files changed, 32 insertions, 40 deletions
diff --git a/includes/database/database.inc b/includes/database/database.inc index f05a71242..a25ed7ace 100644 --- a/includes/database/database.inc +++ b/includes/database/database.inc @@ -215,7 +215,14 @@ abstract class DatabaseConnection extends PDO { * * @var string */ - protected $statementClass = NULL; + protected $statementClass = 'DatabaseStatementBase'; + + /** + * Whether this database connection supports transactions. + * + * @var bool + */ + protected $transactionSupport = TRUE; /** * The schema object for this connection. @@ -225,11 +232,6 @@ abstract class DatabaseConnection extends PDO { protected $schema = NULL; function __construct($dsn, $username, $password, $driver_options = array()) { - // Fallback to DatabaseStatementBase if the driver has not specified one. - if (empty($this->statementClass)) { - $this->statementClass = 'DatabaseStatementBase'; - } - // Because the other methods don't seem to work right. $driver_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; @@ -237,7 +239,7 @@ abstract class DatabaseConnection extends PDO { parent::__construct($dsn, $username, $password, $driver_options); // Set a specific PDOStatement class if the driver requires that. - if ($this->statementClass != 'PDOStatement') { + if (!empty($this->statementClass)) { $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array($this->statementClass, array($this))); } } @@ -734,7 +736,9 @@ abstract class DatabaseConnection extends PDO { /** * Determine if this driver supports transactions. */ - abstract public function supportsTransactions(); + public function supportsTransactions() { + return $this->transactionSupport; + } /** * Returns the type of the database being accessed. diff --git a/includes/database/mysql/database.inc b/includes/database/mysql/database.inc index 82c962929..661503cd6 100644 --- a/includes/database/mysql/database.inc +++ b/includes/database/mysql/database.inc @@ -13,11 +13,14 @@ class DatabaseConnection_mysql extends DatabaseConnection { - protected $transactionSupport = FALSE; - public function __construct(Array $connection_options = array()) { - $this->transactionSupport = isset($connection_options['transactions']) ? $connection_options['transactions'] : FALSE; - $connection_options['port'] = !empty($connection_options['port']) ? $connection_options['port'] : 3306; + // This driver defaults to non transaction support. + $this->transactionSupport = !empty($connection_option['transactions']); + + // Default to TCP connection on port 3306. + if (empty($connection_options['port'])) { + $connection_options['port'] = 3306; + } $dsn = 'mysql:host=' . $connection_options['host'] . ';port=' . $connection_options['port'] . ';dbname=' . $connection_options['database']; parent::__construct($dsn, $connection_options['username'], $connection_options['password'], array( @@ -53,10 +56,6 @@ class DatabaseConnection_mysql extends DatabaseConnection { return 'mysql'; } - public function supportsTransactions() { - return $this->transactionSupport; - } - public function mapConditionOperator($operator) { // We don't want to override any of the defaults. return NULL; diff --git a/includes/database/mysql/schema.inc b/includes/database/mysql/schema.inc index 40f45aeb8..bbc9a9ca0 100644 --- a/includes/database/mysql/schema.inc +++ b/includes/database/mysql/schema.inc @@ -92,7 +92,7 @@ class DatabaseSchema_mysql extends DatabaseSchema { $sql .= ' auto_increment'; } - // $spec['default'] can be NULL, so we explicitely check for the key here. + // $spec['default'] can be NULL, so we explicitly check for the key here. if (array_key_exists('default', $spec)) { if (is_string($spec['default'])) { $spec['default'] = "'" . $spec['default'] . "'"; diff --git a/includes/database/pgsql/database.inc b/includes/database/pgsql/database.inc index 6fd15b2e7..53e7b3578 100644 --- a/includes/database/pgsql/database.inc +++ b/includes/database/pgsql/database.inc @@ -13,11 +13,14 @@ class DatabaseConnection_pgsql extends DatabaseConnection { - protected $transactionSupport = TRUE; - public function __construct(Array $connection_options = array()) { - $this->transactionSupport = isset($connection_options['transactions']) ? $connection_options['transactions'] : TRUE; - $connection_options['port'] = !empty($connection_options['port']) ? $connection_options['port'] : 5432; + // This driver defaults to transaction support, except if explicitly passed FALSE. + $this->transactionSupport = !isset($connection_options['transactions']) || $connection_options['transactions'] === FALSE; + + // Default to TCP connection on port 5432. + if (empty($connection_options['port'])) { + $connection_options['port'] = 5432; + } $dsn = 'pgsql:host=' . $connection_options['host'] . ' dbname=' . $connection_options['database'] . ' port=' . $connection_options['port']; parent::__construct($dsn, $connection_options['username'], $connection_options['password'], array( @@ -86,10 +89,6 @@ class DatabaseConnection_pgsql extends DatabaseConnection { return 'pgsql'; } - public function supportsTransactions() { - return $this->transactionSupport; - } - public function mapConditionOperator($operator) { static $specials = array( // In PostgreSQL, 'LIKE' is case-sensitive. For case-insensitive LIKE diff --git a/includes/database/sqlite/database.inc b/includes/database/sqlite/database.inc index 02e73321e..f8b41eb31 100644 --- a/includes/database/sqlite/database.inc +++ b/includes/database/sqlite/database.inc @@ -18,20 +18,14 @@ include_once DRUPAL_ROOT . '/includes/database/prefetch.inc'; */ class DatabaseConnection_sqlite extends DatabaseConnection { - /** - * Indicates that this connection supports transactions. - * - * @var bool - */ - protected $transactionSupport = TRUE; - public function __construct(Array $connection_options = array()) { // We don't need a specific PDOStatement class here, we simulate it below. - $this->statementClass = 'PDOStatement'; - $this->transactionSupport = isset($connection_options['transactions']) ? $connection_options['transactions'] : TRUE; + $this->statementClass = NULL; - $dns = 'sqlite:'. $connection_options['database']; - parent::__construct($dns, '', '', array( + // This driver defaults to transaction support, except if explicitly passed FALSE. + $this->transactionSupport = !isset($connection_options['transactions']) || $connection_options['transactions'] === FALSE; + + parent::__construct('sqlite:'. $connection_options['database'], '', '', array( // Force column names to lower case. PDO::ATTR_CASE => PDO::CASE_LOWER, )); @@ -141,10 +135,6 @@ class DatabaseConnection_sqlite extends DatabaseConnection { return 'sqlite'; } - public function supportsTransactions() { - return $this->transactionSupport; - } - public function mapConditionOperator($operator) { // We don't want to override any of the defaults. return NULL; |