mirror of
https://github.com/doctrine/orm.git
synced 2026-03-24 06:52:09 +01:00
[PR #11200] Ignore subclasses without discriminatorValue when generating discriminator column condition SQL #12849
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?
Original Pull Request: https://github.com/doctrine/orm/pull/11200
State: closed
Merged: Yes
After commit
4e8e3ef30bwhen\Doctrine\ORM\Query\SqlWalkergenerates dicsriminator column condition SQL (method\Doctrine\ORM\Query\SqlWalker::generateDiscriminatorColumnConditionSQL) it adds an empty string to the list of possible values if the inheritance hierarchy contains a non-root abstract class.When the discriminator column is implemented with a custom type in PostgreSQL (equivalent of Enum) the query fails because the type cannot have a value of an empty string. It boils down to the fact that
\Doctrine\ORM\Mapping\ClassMetadataInfo::$subClassescontains an abstract class and in its Metadata the value of\Doctrine\ORM\Mapping\ClassMetadataInfo::$discriminatorValueisnull.Previous behavior
In version 2.14.1
\Doctrine\ORM\Mapping\ClassMetadataInfo::$subClassesdoes not contain an abstract class.Fixes #11199, fixes #11177, fixes #10846.