function forum_update_10101

Same name and namespace in other branches
  1. 11.x core/modules/forum/forum.install \forum_update_10101()

Repopulate the forum index table.

File

core/modules/forum/forum.install, line 213

Code

function forum_update_10101(&$sandbox = NULL) : PluralTranslatableMarkup {
  $query = \Drupal::database()->select('forum_index', 'fi')
    ->fields('fi', [
    'nid',
    'tid',
  ])
    ->groupBy('nid')
    ->groupBy('tid');
  $query->addExpression('count(*)', 'count');
  $query->having('count(*) > 1');
  $results = $query->execute();
  $nids_to_rebuild = [];
  foreach ($results as $row) {
    \Drupal::database()->delete('forum_index')
      ->condition('tid', $row->tid)
      ->condition('nid', $row->nid)
      ->execute();
    $nids_to_rebuild[] = $row->nid;
  }
  \Drupal::state()->set('forum_update_10101_nids', $nids_to_rebuild);
  return new PluralTranslatableMarkup(count($nids_to_rebuild), 'Removed 1 duplicate entry from forum_index', 'Removed @count duplicate entries from forum_index');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.