https://bugzilla.wikimedia.org/show_bug.cgi?id=65765

--- Comment #4 from Joerg <[email protected]> ---
The root of the problem is in Revision::selectArchiveFields():

Before all the things I wrote above happen, populateRevisionLength.php gets
information about the archive rows with 

$ar = $this->doLenUpdates( 'archive', 'ar_id', 'ar',
Revision::selectArchiveFields() );

In this call Revision::selectArchiveFields() is used to return the relevant
fields from the archive table. Revision::selectArchiveFields() in fact also
contains a list of fields to return, but this list does NOT include 'ar_text'.
Without this field being returned, the condition 

if ( isset( $row->ar_text ) && !$row->ar_text_id ) {
    // Pre-1.5 ar_text row; get revision text.

in Revision::newFromArchiveRow() will always return FALSE, so that for old
revisions the actual text is never retrieved.

Add 'ar_text' to the list of fields in Revision::selectArchiveFields() and the
problem is solved.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to