[Form] Fixed regression causing invalid "WHERE id IN ()" statements

This commit is contained in:
Bernhard Schussek 2013-09-12 10:13:57 +02:00
parent 447fa2d321
commit 867b81af5a
1 changed files with 25 additions and 0 deletions

View File

@ -204,6 +204,16 @@ class EntityChoiceList extends ObjectChoiceList
*/
public function getChoicesForValues(array $values)
{
// Performance optimization
// Also prevents the generation of "WHERE id IN ()" queries through the
// entity loader. At least with MySQL and on the development machine
// this was tested on, no exception was thrown for such invalid
// statements, consequently no test fails when this code is removed.
// https://github.com/symfony/symfony/pull/8981#issuecomment-24230557
if (empty($values)) {
return array();
}
if (!$this->loaded) {
// Optimize performance in case we have an entity loader and
// a single-field identifier
@ -247,6 +257,11 @@ class EntityChoiceList extends ObjectChoiceList
*/
public function getValuesForChoices(array $entities)
{
// Performance optimization
if (empty($entities)) {
return array();
}
if (!$this->loaded) {
// Optimize performance for single-field identifiers. We already
// know that the IDs are used as values
@ -282,6 +297,11 @@ class EntityChoiceList extends ObjectChoiceList
*/
public function getIndicesForChoices(array $entities)
{
// Performance optimization
if (empty($entities)) {
return array();
}
if (!$this->loaded) {
// Optimize performance for single-field identifiers. We already
// know that the IDs are used as indices
@ -317,6 +337,11 @@ class EntityChoiceList extends ObjectChoiceList
*/
public function getIndicesForValues(array $values)
{
// Performance optimization
if (empty($values)) {
return array();
}
if (!$this->loaded) {
// Optimize performance for single-field identifiers.