[BUGFIX] Fix non-unique hash values in SysRefindexHashUpdater 98/52398/4
authorMorton Jonuschat <m.jonuschat@mojocode.de>
Sat, 8 Apr 2017 21:43:07 +0000 (14:43 -0700)
committerGeorg Ringer <georg.ringer@gmail.com>
Thu, 11 May 2017 12:41:03 +0000 (14:41 +0200)
commit193040353f086143a93eada81affb7bd8a8bdf73
tree1fde4c92f12d1bacac765c32a60098a3c28b52c4
parent07e13c52d30a30971a042421363fbf46490aae4b
[BUGFIX] Fix non-unique hash values in SysRefindexHashUpdater

The new hash calculation can result in non-unique hash values when
updating old hashes. This is due to the new algorithm ignoring
the sorting fields while it was taken into account in the old one.
When two rows in the database (using the old hash format) only
differ in the sorting field (and the derived hash) the new hash
will be identical for both rows.
Due to the hash value being the primary key which needs to be
unique this will result in errors during the update.

This change adds an SQL call to remove the offending rows from
the database before proceeding to update the hash values.
Statement has been validated on MySQL and PostgreSQL.

Change-Id: I1ec0f2369ae714f2e8d0190a5bf412151405687f
Resolves: #80763
Releases: master, 8.7
Reviewed-on: https://review.typo3.org/52398
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
typo3/sysext/install/Classes/Updates/SysRefindexHashUpdater.php