summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-04-26 12:31:44 -0700
committerwebchick <webchick@24967.no-reply.drupal.org>2012-04-26 12:31:44 -0700
commit768de00260c2380113eefdb238f05ae08bf7295c (patch)
tree1605ef3be4ebe8ddf04f1050777f9ef54e58ce04
parent71f3da793bef8191bb89642b90093166f88ddace (diff)
downloadbrdo-768de00260c2380113eefdb238f05ae08bf7295c.tar.gz
brdo-768de00260c2380113eefdb238f05ae08bf7295c.tar.bz2
Issue #966210 by mfb, catch, drumm, bfroehle, drewish, makara, sun, BTMash, iamEAP: Fixed DB Case Sensitivity: system_update_7061() fails on inserting files with same name but different case.
-rw-r--r--modules/simpletest/tests/file.test13
-rw-r--r--modules/system/system.install27
2 files changed, 40 insertions, 0 deletions
diff --git a/modules/simpletest/tests/file.test b/modules/simpletest/tests/file.test
index 4c56bfcce..3df31ba5f 100644
--- a/modules/simpletest/tests/file.test
+++ b/modules/simpletest/tests/file.test
@@ -2026,6 +2026,19 @@ class FileSaveTest extends FileHookTestCase {
$loaded_file = db_query('SELECT * FROM {file_managed} f WHERE f.fid = :fid', array(':fid' => $saved_file->fid))->fetch(PDO::FETCH_OBJ);
$this->assertNotNull($loaded_file, t("Record still exists in the database."), 'File');
$this->assertEqual($loaded_file->status, $saved_file->status, t("Status was saved correctly."));
+
+ // Try to insert a second file with the same name apart from case insensitivity
+ // to ensure the 'uri' index allows for filenames with different cases.
+ $file = (object) array(
+ 'uid' => 1,
+ 'filename' => 'DRUPLICON.txt',
+ 'uri' => 'public://DRUPLICON.txt',
+ 'filemime' => 'text/plain',
+ 'timestamp' => 1,
+ 'status' => FILE_STATUS_PERMANENT,
+ );
+ file_put_contents($file->uri, 'hello world');
+ file_save($file);
}
}
diff --git a/modules/system/system.install b/modules/system/system.install
index 6161eb333..18a0a6749 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -810,6 +810,7 @@ function system_schema() {
'length' => 255,
'not null' => TRUE,
'default' => '',
+ 'binary' => TRUE,
),
'uri' => array(
'description' => 'The URI to access the file (either local or remote).',
@@ -817,6 +818,7 @@ function system_schema() {
'length' => 255,
'not null' => TRUE,
'default' => '',
+ 'binary' => TRUE,
),
'filemime' => array(
'description' => "The file's MIME type.",
@@ -2173,6 +2175,7 @@ function system_update_7034() {
'length' => 255,
'not null' => TRUE,
'default' => '',
+ 'binary' => TRUE,
),
'uri' => array(
'description' => 'URI of file.',
@@ -2180,6 +2183,7 @@ function system_update_7034() {
'length' => 255,
'not null' => TRUE,
'default' => '',
+ 'binary' => TRUE,
),
'filemime' => array(
'description' => "The file's MIME type.",
@@ -2989,6 +2993,29 @@ function system_update_7072() {
*/
/**
+ * Add binary to {file_managed}, in case system_update_7034() was run without
+ * it.
+ */
+function system_update_7073() {
+ db_change_field('file_managed', 'filename', 'filename', array(
+ 'description' => 'Name of the file with no path components. This may differ from the basename of the URI if the file is renamed to avoid overwriting an existing file.',
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'not null' => TRUE,
+ 'default' => '',
+ 'binary' => TRUE,
+ ));
+ db_change_field('file_managed', 'uri', 'uri', array(
+ 'description' => 'The URI to access the file (either local or remote).',
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'not null' => TRUE,
+ 'default' => '',
+ 'binary' => TRUE,
+ ));
+}
+
+/**
* @} End of "defgroup updates-7.x-extra"
* The next series of updates should start at 8000.
*/