Bug #87640

Keep language reference for associated l10n_mode=exclude children

Added by Oliver Hader 9 months ago. Updated 5 months ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
DataHandler aka TCEmain
Target version:
-
Start date:
2019-02-04
Due date:
% Done:

100%

TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
medium
Is Regression:
Sprint Focus:

Description

Scenario

Having 1:n child associations being defined as l10n_mode=exclude on their parent side, currently leads to deleting and recreating the child entity (re-synchronization). For composite relations (children can only exist with their parent - usually accessed through their parent as aggregate root) this is "okay" in terms of domain-driven design. However having large data-sets leads to performance impact during the re-synchronization process.

Aspects

  • 1:* composite "inline" - confirmed, should be enhanced
  • 1:* associations "group", "select" - not confirmed yet, pending
  • m:n associations "group", "select" - not confirmed yet, pending

Related issues

Related to TYPO3 Core - Task #79856: Enhance DataHandler translation and synchronization handling Closed 2017-02-16
Related to TYPO3 Core - Bug #80656: l10n_mode=exclude not properly applied when processing ancestors Closed 2017-04-03
Related to TYPO3 Core - Bug #80080: IRRE and allowLanguageSynchronization Needs Feedback 2017-03-01
Related to TYPO3 Core - Bug #80944: Inline records are duplicated upon saving the master record Needs Feedback 2017-03-06
Related to TYPO3 Core - Bug #82929: sys_file_references filled with duplicate/multiple entries Needs Feedback 2017-11-06
Related to TYPO3 Core - Bug #82469: Weird localization behavior of records having IRRE tt_content children Needs Feedback 2017-09-12
Related to TYPO3 Core - Bug #89271: Inline (IRRE) records are not kept in sync on record save New 2019-09-25

Associated revisions

Revision ef779ca4 (diff)
Added by Oliver Hader 8 months ago

[BUGFIX] Keep language reference for children using l10n_mode=exclude

Having 1:n child associations being defined as l10n_mode=exclude on their
parent side, currently leads to deleting and recreating the child entity
(re-synchronization). For composite relations (children can only exist
with their parent - usually accessed through their parent as aggregate
root) this is "okay" in terms of domain-driven design.

However having large data-sets leads to performance impact during the
re-synchronization process.

In the current scenario children processed with l10n_mode=exclude did not
have any pointer to their language origin (due to l10n_parent not being
set). This change copies these children and applies the same values as
used for localizations - without actually invoking the localization
process.

For l10n_mode=exclude children this means, the sys_language_uid and
l10n_parent values are now set - which have been empty before.

Resolves: #87640
Releases: master, 9.5
Change-Id: I3d862f536603b9e49c7a5d3205ccfc2b4e2e9532
Reviewed-on: https://review.typo3.org/59629
Tested-by: TYPO3com <>
Reviewed-by: Daniel Goerz <>
Tested-by: Daniel Goerz <>
Reviewed-by: Benni Mack <>
Tested-by: Benni Mack <>

Revision 20715ad2 (diff)
Added by Oliver Hader 8 months ago

[BUGFIX] Keep language reference for children using l10n_mode=exclude

Having 1:n child associations being defined as l10n_mode=exclude on their
parent side, currently leads to deleting and recreating the child entity
(re-synchronization). For composite relations (children can only exist
with their parent - usually accessed through their parent as aggregate
root) this is "okay" in terms of domain-driven design.

However having large data-sets leads to performance impact during the
re-synchronization process.

In the current scenario children processed with l10n_mode=exclude did not
have any pointer to their language origin (due to l10n_parent not being
set). This change copies these children and applies the same values as
used for localizations - without actually invoking the localization
process.

For l10n_mode=exclude children this means, the sys_language_uid and
l10n_parent values are now set - which have been empty before.

Resolves: #87640
Releases: master, 9.5
Change-Id: I3d862f536603b9e49c7a5d3205ccfc2b4e2e9532
Reviewed-on: https://review.typo3.org/59667
Tested-by: TYPO3com <>
Reviewed-by: Benni Mack <>
Tested-by: Benni Mack <>

History

#1 Updated by Gerrit Code Review 9 months ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#2 Updated by Oliver Hader 9 months ago

  • Related to Task #79856: Enhance DataHandler translation and synchronization handling added

#3 Updated by Oliver Hader 9 months ago

  • Related to Bug #80656: l10n_mode=exclude not properly applied when processing ancestors added

#4 Updated by Gerrit Code Review 9 months ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#5 Updated by Gerrit Code Review 9 months ago

Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#6 Updated by Gerrit Code Review 9 months ago

Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#7 Updated by Oliver Hader 8 months ago

  • Related to Bug #80080: IRRE and allowLanguageSynchronization added

#8 Updated by Oliver Hader 8 months ago

  • Related to Bug #80944: Inline records are duplicated upon saving the master record added

#9 Updated by Oliver Hader 8 months ago

  • Related to Bug #82929: sys_file_references filled with duplicate/multiple entries added

#10 Updated by Gerrit Code Review 8 months ago

Patch set 5 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#11 Updated by Gerrit Code Review 8 months ago

Patch set 6 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#12 Updated by Gerrit Code Review 8 months ago

Patch set 7 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59629

#13 Updated by Gerrit Code Review 8 months ago

Patch set 1 for branch 9.5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/59667

#14 Updated by Oliver Hader 8 months ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

#15 Updated by Benni Mack 6 months ago

  • Related to Bug #82469: Weird localization behavior of records having IRRE tt_content children added

#16 Updated by Benni Mack 5 months ago

  • Status changed from Resolved to Closed

#17 Updated by Markus Klein 22 days ago

  • Related to Bug #89271: Inline (IRRE) records are not kept in sync on record save added

Also available in: Atom PDF