diff options
author | webchick <webchick@24967.no-reply.drupal.org> | 2012-04-22 18:57:18 -0700 |
---|---|---|
committer | webchick <webchick@24967.no-reply.drupal.org> | 2012-04-22 18:57:18 -0700 |
commit | a50f016991527c419595f81397f3ad67e12bea1c (patch) | |
tree | 38a375d18b77950fc9801617f7e14f772d61c172 /includes | |
parent | b716b2ccaf5ce89f4600311d6334b66acfa562b2 (diff) | |
download | brdo-a50f016991527c419595f81397f3ad67e12bea1c.tar.gz brdo-a50f016991527c419595f81397f3ad67e12bea1c.tar.bz2 |
Issue #1237252 by mfb, bfroehle, drewish, Berdir, iamEAP, drumm: Fixed DB Case Sensitivity: Allow BINARY attribute in MySQL.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/database/mysql/schema.inc | 9 | ||||
-rw-r--r-- | includes/database/schema.inc | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/includes/database/mysql/schema.inc b/includes/database/mysql/schema.inc index 7268f2d89..d6aea4d94 100644 --- a/includes/database/mysql/schema.inc +++ b/includes/database/mysql/schema.inc @@ -131,8 +131,13 @@ class DatabaseSchema_mysql extends DatabaseSchema { protected function createFieldSql($name, $spec) { $sql = "`" . $name . "` " . $spec['mysql_type']; - if (in_array($spec['mysql_type'], array('VARCHAR', 'CHAR', 'TINYTEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TEXT')) && isset($spec['length'])) { - $sql .= '(' . $spec['length'] . ')'; + if (in_array($spec['mysql_type'], array('VARCHAR', 'CHAR', 'TINYTEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TEXT'))) { + if (isset($spec['length'])) { + $sql .= '(' . $spec['length'] . ')'; + } + if (!empty($spec['binary'])) { + $sql .= ' BINARY'; + } } elseif (isset($spec['precision']) && isset($spec['scale'])) { $sql .= '(' . $spec['precision'] . ', ' . $spec['scale'] . ')'; diff --git a/includes/database/schema.inc b/includes/database/schema.inc index b7ae97015..d3943b29b 100644 --- a/includes/database/schema.inc +++ b/includes/database/schema.inc @@ -76,6 +76,10 @@ require_once dirname(__FILE__) . '/query.inc'; * the precision (total number of significant digits) and scale * (decimal digits right of the decimal point). Both values are * mandatory. Ignored for other field types. + * - 'binary': A boolean indicating that MySQL should force 'char', + * 'varchar' or 'text' fields to use case-sensitive binary collation. + * This has no effect on other database types for which case sensitivity + * is already the default behavior. * All parameters apart from 'type' are optional except that type * 'numeric' columns must specify 'precision' and 'scale', and type * 'varchar' must specify the 'length' parameter. |