mirror of
https://github.com/doctrine/orm.git
synced 2026-03-23 22:42:18 +01:00
Behaviour change in executeInserts() in 2.15.1 #7160
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sips-richard on GitHub (Jun 2, 2023).
BC Break Report
Behaviour change in Basic Entity Persister to resolve BackedEnum to value prior to call to
bindValue()means that the original value no longer makes it to configured types for handling.09b4a75ed3 (diff-cde081d92bca42e1b0df117b840a39066470673f9457a8c5b8725e5e43a8e211R275)Summary
The following code was introduced into
executeInserts()in 2.15.1:... prior to the existing logic to bind values after processing them via their configured types:
This means that our custom enum types are no longer receiving the enum case as it is being pre-resolved.
This is a bit of a heavy-handed change for a patch version, no?
Previous behavior
Enum cases were simply passed to bindValue() and were processed by type objects.
Current behavior
BackedEnums are converted to backed value so that only backed value reaches the configured type; in our cases our custom enum types are expecting enum cases, not their value.
We can amend our enum types to handle the value as an alternative to the enum case if necessary, but the change seems rather excessive for a patch change.
How to reproduce
See above.
@mpdude commented on GitHub (Jun 2, 2023):
@Gwemox can you help here? You authored the change that caused the regression.
@Gwemox commented on GitHub (Jun 2, 2023):
I no longer remember the reason for these lines.
However, without these lines the tests continue to pass.
I think @greg0ire we can revert those 3 lines to fix this BC ?
@greg0ire commented on GitHub (Jun 3, 2023):
Yeah sure, let's revert them. If they turn out to be important, let's restore them, but this time, with a meaningful commit message, code comments, tests showing their purpose.