diff options
author | webchick <webchick@24967.no-reply.drupal.org> | 2012-04-26 12:31:44 -0700 |
---|---|---|
committer | webchick <webchick@24967.no-reply.drupal.org> | 2012-04-26 12:31:44 -0700 |
commit | 768de00260c2380113eefdb238f05ae08bf7295c (patch) | |
tree | 1605ef3be4ebe8ddf04f1050777f9ef54e58ce04 | |
parent | 71f3da793bef8191bb89642b90093166f88ddace (diff) | |
download | brdo-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.test | 13 | ||||
-rw-r--r-- | modules/system/system.install | 27 |
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. */ |