public function SearchQuery::countQuery
public SearchQuery::countQuery()
Builds the default count query for SearchQuery.
Since SearchQuery always uses GROUP BY, we can default to a subquery. We also add the same conditions as execute() because countQuery() is called first.
Overrides SelectQueryExtender::countQuery
File
- modules/search/search.extender.inc, line 523
- Search query extender and helper functions.
Class
- SearchQuery
- Do a query on the full-text search index for a word or words.
Code
public function countQuery() { // Clone the inner query. $inner = clone $this->query; // Add conditions to query. $inner->join('search_dataset', 'd', 'i.sid = d.sid AND i.type = d.type'); $inner->condition($this->conditions); // Remove existing fields and expressions, they are not needed for a count // query. $fields = &$inner->getFields(); $fields = array(); $expressions = &$inner->getExpressions(); $expressions = array(); // Add the sid as the only field and count them as a subquery. $count = db_select($inner->fields('i', array('sid')), NULL, array('target' => 'slave')); // Add the COUNT() expression. $count->addExpression('COUNT(*)'); return $count; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!search!search.extender.inc/function/SearchQuery::countQuery/7.x