|MediaWiki file: populateParentId.php|
|Source code:||master • 1.32.1 • 1.31.1|
The first versions of populateParentId.php sorted the rev_parent_id linked list (at least with regard to those rows that had a null rev_parent_id) strictly by revision.rev_id. It assumed that the previous revision of the title was the original previous revision of the title when the edit was made. This behavior was changed by Aaron Schulz because it could result in loops.
The way it works now is that, after populateParentId.php selects the rows with null rev_parent_id, when it is dealing with a particular revision, first it checks for rows with the same revision.rev_timestamp as that revision, that have with a smaller rev_id than that revision. The highest ID "wins". This avoids loops as the timestamp can only decrease and never loops with IDs (from parent to parent). If there are no rows with the same timestamp, then it uses the highest ID with a lower timestamp.