/** * Add row to the redirect table if this is a redirect, remove otherwise. * * @param IDatabase $dbw * @param Title $redirectTitle Title object pointing to the redirect target, * or NULL if this is not a redirect * @param null|bool $lastRevIsRedirect If given, will optimize adding and * removing rows in redirect table. * @return bool True on success, false on failure * @private */ public function updateRedirectOn($dbw, $redirectTitle, $lastRevIsRedirect = null) { // Always update redirects (target link might have changed) // Update/Insert if we don't know if the last revision was a redirect or not // Delete if changing from redirect to non-redirect $isRedirect = !is_null($redirectTitle); if (!$isRedirect && $lastRevIsRedirect === false) { return true; } if ($isRedirect) { $this->insertRedirectEntry($redirectTitle); } else { // This is not a redirect, remove row from redirect table $where = ['rd_from' => $this->getId()]; $dbw->delete('redirect', $where, __METHOD__); } if ($this->getTitle()->getNamespace() == NS_FILE) { RepoGroup::singleton()->getLocalRepo()->invalidateImageRedirect($this->getTitle()); } return $dbw->affectedRows() != 0; }
/** * Print the results, callback for $db->sourceStream() * @param ResultWrapper $res The results object * @param IDatabase $db */ public function sqlPrintResult($res, $db) { if (!$res) { // Do nothing return; } elseif (is_object($res) && $res->numRows()) { foreach ($res as $row) { $this->output(print_r($row, true)); } } else { $affected = $db->affectedRows(); $this->output("Query OK, {$affected} row(s) affected\n"); } }