Почему доктрина использует WHERE IN вместо LIMIT?

Почему в доктрине (1.2) используется WHERE IN вместо LIMIT ?

Этот код:

Doctrine_Query::create()
   ->from('Table t')
   ->limit(10)
   ->getSqlQuery();

Что-то возвращает например:

SELECT t.id_table AS t__id_table FROM table AS t WHERE t__id_table IN (1,2,3,4,10,12,18,20,21,25);

Вместо этого:

SELECT t.id_table AS t__id_table FROM table AS t LIMIT 10;

Это поведение одинаково для любого значения LIMIT . Это создает очень длинные запросы для высоких значений LIMIT .

Дополнительный вопрос: как Doctrine узнает, какие идентификаторы использовать? (Отправив другой запрос в БД ??)

6
задан Petr Peller 10 January 2011 в 13:59
поделиться