*
* @file
*/
+use Wikimedia\Timestamp\TimestampException;
/**
* Handles the backend logic of merging the histories of two
*/
class MergeHistory {
- /** @const int Maximum number of revisions that can be merged at once (avoid too much slave lag) */
+ /** @const int Maximum number of revisions that can be merged at once */
const REVISION_LIMIT = 5000;
/** @var Title Page from which history will be merged */
/** @var Title Page to which history will be merged */
protected $dest;
- /** @var DatabaseBase Database that we are using */
+ /** @var IDatabase Database that we are using */
protected $dbw;
/** @var MWTimestamp Maximum timestamp that we can use (oldest timestamp of dest) */
/** @var string SQL WHERE condition that selects source revisions to insert into destination */
protected $timeWhere;
- /** @var MWTimestamp|boolean Timestamp upto which history from the source will be merged */
+ /** @var MWTimestamp|bool Timestamp upto which history from the source will be merged */
protected $timestampLimit;
/** @var integer Number of revisions merged (for Special:MergeHistory success message) */
* MergeHistory constructor.
* @param Title $source Page from which history will be merged
* @param Title $dest Page to which history will be merged
- * @param string|boolean $timestamp Timestamp up to which history from the source will be merged
+ * @param string|bool $timestamp Timestamp up to which history from the source will be merged
*/
public function __construct( Title $source, Title $dest, $timestamp = false ) {
// Save the parameters
'revision',
'MAX(rev_timestamp)',
[
- 'rev_timestamp <= ' . $this->dbw->timestamp( $mwTimestamp ),
+ 'rev_timestamp <= ' .
+ $this->dbw->addQuotes( $this->dbw->timestamp( $mwTimestamp ) ),
'rev_page' => $this->source->getArticleID()
],
__METHOD__
$this->timestampLimit = $lasttimestamp;
}
- $this->timeWhere = "rev_timestamp <= {$this->dbw->timestamp( $timeInsert )}";
+ $this->timeWhere = "rev_timestamp <= " .
+ $this->dbw->addQuotes( $this->dbw->timestamp( $timeInsert ) );
} catch ( TimestampException $ex ) {
// The timestamp we got is screwed up and merge cannot continue
// This should be detected by $this->isValidMerge()