[BUGFIX] Speed up FormEngine with selective workspaceOL() calls
BackendUtility::getPossibleWorkspaceVersionIdsOfLiveRecordIds() is added to check for workspace versions within FormEngine foreign_field logic to first fetch a list of all records that have a versioned record within the workspace, and only apply BackendUtility::workspaceOL() for these cases. Without the patch, each live record triggers a database query to resolve a possible workspace overlay. With the patch, one query is done to see which records have workspace overlays, only those are queried for overlays. This reduces the number of performed queries a lot, since typically only a small number of records are overlaid. This only affects editing records in a workspace. Resolves: #99007 Releases: main, 11.5 Change-Id: Ia7c47e5de0082ca0ff2c68b30d9ff1bc5312981b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/76446 Tested-by:Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
Showing
- typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php 11 additions, 2 deletions...nd/Classes/Form/FormDataProvider/AbstractItemProvider.php
- typo3/sysext/backend/Classes/Utility/BackendUtility.php 37 additions, 0 deletionstypo3/sysext/backend/Classes/Utility/BackendUtility.php
- typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php 77 additions, 66 deletions...d/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php
- typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectTreeItemsTest.php 1 addition, 1 deletion...sts/Unit/Form/FormDataProvider/TcaSelectTreeItemsTest.php
Please register or sign in to comment