Спрятать колонку

Drupal. баг с pager

давно заметил странную вещь, что со "сложными" (вложенность, объединения) запросами pager не хочет работать. до сих пор как-то обходился переписыванием логики, а тут надоело разбираться и упрощать каждый раз. полез в исходники и нашел небольшой шедевр:

 
if (!isset($count_query)) {
    $count_query = preg_replace(array('/SELECT.*?FROM /As', '/ORDER BY .*/'), array('SELECT COUNT(*) FROM ', ''), $query);
}

вне всяких сомнений круты следующие вещи:
- использование звездочки;
- и дописывание селекта перед скобками запроса, что чревато во вложенных запросах;
- необходимость писать ключевые слова с большой буквы.

после замены на простое:

if (!isset($count_query)) {
    $count_query = "SELECT COUNT(1) FROM (" . $query . ") v";
}

все заработало как часы.

зы. теперь, кстати, необязательно писать в запросе ключевые слова с большой буквы.

RSS-материал

Наверх