[BUGFIX] File identifiers are case-insensitive
With the default collations used by most databases, casing is ignored. This leads to problems when searching for an entry in the file database: If there are two files with the same name in different casings, only one of the two will be indexed. This index record will be used for both files, as the database does not see a difference when querying for their identifiers. The problem is solved by this commit with the help of a new field identifier_hash. To also solve the problems arising on case-insensitive file systems (where all casings are possible and thus the same file could be indexed multiple times when being created with differently cased identifiers), file identifiers for these storages are converted to all-lowercase before hashing. Change-Id: I805085948e01544efd692498f5e3537612c62050 Resolves: #43027 Resolves: #46553 Resolves: #45504 Releases: 6.2 Reviewed-on: https://review.typo3.org/23398 Reviewed-by: Alexander Opitz Tested-by: Alexander Opitz Reviewed-by: Markus Klein Tested-by: Markus Klein
Showing
- typo3/sysext/core/Classes/Resource/AbstractFile.php 11 additions, 0 deletionstypo3/sysext/core/Classes/Resource/AbstractFile.php
- typo3/sysext/core/Classes/Resource/Driver/AbstractDriver.php 143 additions, 73 deletionstypo3/sysext/core/Classes/Resource/Driver/AbstractDriver.php
- typo3/sysext/core/Classes/Resource/Driver/AbstractHierarchicalFilesystemDriver.php 17 additions, 3 deletions.../Resource/Driver/AbstractHierarchicalFilesystemDriver.php
- typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php 146 additions, 108 deletionstypo3/sysext/core/Classes/Resource/Driver/LocalDriver.php
- typo3/sysext/core/Classes/Resource/File.php 5 additions, 1 deletiontypo3/sysext/core/Classes/Resource/File.php
- typo3/sysext/core/Classes/Resource/FileReference.php 10 additions, 2 deletionstypo3/sysext/core/Classes/Resource/FileReference.php
- typo3/sysext/core/Classes/Resource/Folder.php 13 additions, 13 deletionstypo3/sysext/core/Classes/Resource/Folder.php
- typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php 34 additions, 10 deletions...ysext/core/Classes/Resource/Index/FileIndexRepository.php
- typo3/sysext/core/Classes/Resource/ProcessedFileRepository.php 1 addition, 1 deletion.../sysext/core/Classes/Resource/ProcessedFileRepository.php
- typo3/sysext/core/Classes/Resource/ResourceInterface.php 6 additions, 0 deletionstypo3/sysext/core/Classes/Resource/ResourceInterface.php
- typo3/sysext/core/Classes/Resource/ResourceStorage.php 57 additions, 7 deletionstypo3/sysext/core/Classes/Resource/ResourceStorage.php
- typo3/sysext/core/Classes/Resource/Service/IndexerService.php 2 additions, 0 deletions...3/sysext/core/Classes/Resource/Service/IndexerService.php
- typo3/sysext/core/Classes/Resource/StorageRepository.php 53 additions, 17 deletionstypo3/sysext/core/Classes/Resource/StorageRepository.php
- typo3/sysext/core/Configuration/Resource/Driver/LocalDriverFlexForm.xml 9 additions, 0 deletions...ore/Configuration/Resource/Driver/LocalDriverFlexForm.xml
- typo3/sysext/core/Tests/BaseTestCase.php 2 additions, 0 deletionstypo3/sysext/core/Tests/BaseTestCase.php
- typo3/sysext/core/Tests/Unit/Resource/Driver/DriverRegistryTest.php 5 additions, 5 deletions...xt/core/Tests/Unit/Resource/Driver/DriverRegistryTest.php
- typo3/sysext/core/Tests/Unit/Resource/ResourceFactoryTest.php 5 additions, 7 deletions...3/sysext/core/Tests/Unit/Resource/ResourceFactoryTest.php
- typo3/sysext/core/Tests/Unit/Resource/ResourceStorageTest.php 1 addition, 1 deletion...3/sysext/core/Tests/Unit/Resource/ResourceStorageTest.php
- typo3/sysext/core/ext_tables.sql 4 additions, 2 deletionstypo3/sysext/core/ext_tables.sql
- typo3/sysext/install/Classes/Updates/FileIdentifierHashUpdate.php 249 additions, 0 deletions...sext/install/Classes/Updates/FileIdentifierHashUpdate.php
Please register or sign in to comment