Due to T192189, some rows in the archive table may have ar_len set to 0
erronously. This can be detected by checking if they have ar_sha1 set to
"phoiac9h4m842xq45sp7s6u21eteeq1", which is the hash of the empty string.
This patch makes populateRevisionLength.php detect and fix such rows.
Bug: T192189
Change-Id: I9b6cd62f4b8c5bf93cd305b56af4352a527e19c9
* @ingroup Maintenance
*/
+use Wikimedia\Rdbms\IDatabase;
+
require_once __DIR__ . '/Maintenance.php';
/**
[
"$idCol >= $blockStart",
"$idCol <= $blockEnd",
- "{$prefix}_len IS NULL"
+ $dbr->makeList( [
+ "{$prefix}_len IS NULL",
+ $dbr->makeList( [
+ "{$prefix}_len = 0",
+ "{$prefix}_sha1 != \"phoiac9h4m842xq45sp7s6u21eteeq1\"", // sha1( "" )
+ ], IDatabase::LIST_AND )
+ ], IDatabase::LIST_OR )
],
__METHOD__,
[],
? Revision::newFromArchiveRow( $row )
: new Revision( $row );
- $content = $rev->getContent();
+ $content = $rev->getContent( Revision::RAW );
if ( !$content ) {
# This should not happen, but sometimes does (T22757)
$id = $row->$idCol;