1 search.extender.inc 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


core/modules/search/search.extender.inc, line 513
Search query extender and helper functions.


Do a query on the full-text search index for a word or words.


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');

  // 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' => 'replica'));

  // Add the COUNT() expression.

  return $count;