[BUGFIX] Refactor record querying in deep nested structures in recycler 72/55472/11
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:31:44 +0000 (20:31 +0100)
commitbd4d2ed6618a226f8b3f2cd9c1415c1db05ab51c
treeaf6f2c0cba1f00977e3a1d72e40c5ea5db8a4231
parentc05219a97d535f43f23a720820311ecf7407a8f8
[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/55472
Reviewed-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Tested-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Tested-by: TYPO3com <no-reply@typo3.com>
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]