Merge "ThreadItemStore: Fix updates for identical revision timestamps"

This commit is contained in:
jenkins-bot 2022-10-24 23:57:07 +00:00 committed by Gerrit Code Review
commit 2e28320eb2
3 changed files with 23 additions and 6 deletions

View file

@ -483,6 +483,8 @@ class ThreadItemStore {
->join( 'revision', 'revision_oldest', [ 'itp_oldest_revision_id = revision_oldest.rev_id' ] )
->join( 'revision', 'revision_newest', [ 'itp_newest_revision_id = revision_newest.rev_id' ] )
->field( 'itp_id' )
->field( 'revision_oldest.rev_id', 'oldest_rev_id' )
->field( 'revision_newest.rev_id', 'newest_rev_id' )
->field( 'revision_oldest.rev_timestamp', 'oldest_rev_timestamp' )
->field( 'revision_newest.rev_timestamp', 'newest_rev_timestamp' )
->where( [
@ -502,17 +504,22 @@ class ThreadItemStore {
$method
);
} else {
$existingTime = ( new MWTimestamp( $itemPagesRow->oldest_rev_timestamp ) )->getTimestamp( TS_MW );
if ( $existingTime >= $rev->getTimestamp() ) {
$oldestTime = ( new MWTimestamp( $itemPagesRow->oldest_rev_timestamp ) )->getTimestamp( TS_MW );
$newestTime = ( new MWTimestamp( $itemPagesRow->newest_rev_timestamp ) )->getTimestamp( TS_MW );
$currentTime = $rev->getTimestamp();
$oldestId = (int)$itemPagesRow->oldest_rev_id;
$newestId = (int)$itemPagesRow->newest_rev_id;
$currentId = $rev->getId();
if ( [ $oldestTime, $oldestId ] > [ $currentTime, $currentId ] ) {
$dbw->update(
'discussiontools_item_pages',
[ 'itp_oldest_revision_id' => $rev->getId() ],
[ 'itp_id' => $itemPagesRow->itp_id ],
$method
);
}
$existingTime = ( new MWTimestamp( $itemPagesRow->newest_rev_timestamp ) )->getTimestamp( TS_MW );
if ( $existingTime <= $rev->getTimestamp() ) {
} elseif ( [ $newestTime, $newestId ] < [ $currentTime, $currentId ] ) {
$dbw->update(
'discussiontools_item_pages',
[ 'itp_newest_revision_id' => $rev->getId() ],

View file

@ -31,7 +31,7 @@
"itp_id": "5",
"itp_items_id": "5",
"itp_page_id": "2",
"itp_oldest_revision_id": "4",
"itp_oldest_revision_id": "3",
"itp_newest_revision_id": "4"
},
{

View file

@ -39,6 +39,16 @@
"itr_level": "1",
"itr_headinglevel": null
},
{
"itr_id": "7",
"itr_itemid_id": "5",
"itr_revision_id": "3",
"itr_items_id": "5",
"itr_parent_id": "6",
"itr_transcludedfrom": null,
"itr_level": "2",
"itr_headinglevel": null
},
{
"itr_id": "10",
"itr_itemid_id": "1",