[BUGFIX] Refactor record querying in deep nested structures in recycler 42/55842/2
authorAndreas Fernandez <a.fernandez@scripting-base.de>
Sat, 27 Jan 2018 23:14:11 +0000 (00:14 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Tue, 20 Feb 2018 19:40:00 +0000 (20:40 +0100)
commit9b5b32baad2762dbafec417e285a09f47d5ddf1e
tree75e426dc849c17c466fd784e9f1ea8e01aba5c14
parente6d2c9b8e491dfa520b422b3a49a3f9c421343e2
[BUGFIX] Refactor record querying in deep nested structures in recycler

This patch refactors how the recycler queries records in deep page
structures.
Instead of resolving each level of the page tree on demand and executing
the complex logic of creating query builders and paging all over again,
a list of page ids is generated once and stored in the Caching Framework
for the current request. This list is then used in an multiple `IN()`
statements (depending on the DBMS engine used).

Also, some wrong type hints and a wrong language file reference are
fixed.

Resolves: #83702
Releases: master, 8.7
Change-Id: Ie3314b5a9209fb5585f95a70c16b35639951c197
Reviewed-on: https://review.typo3.org/55842
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/recycler/Classes/Controller/DeletedRecordsController.php
typo3/sysext/recycler/Classes/Domain/Model/DeletedRecords.php
typo3/sysext/recycler/Classes/Domain/Model/Tables.php
typo3/sysext/recycler/Tests/Unit/Domain/Model/DeletedRecordsTest.php [new file with mode: 0644]