Daniel Kinzler has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/335432 )
Change subject: Avoid joining against page table when finding a page's oldest
revision.
......................................................................
Avoid joining against page table when finding a page's oldest revision.
Bug: T156537
Change-Id: Ifd27710cada823318ac3662d3c16323eb9a78839
---
M includes/page/WikiPage.php
M tests/phpunit/includes/page/WikiPageTest.php
2 files changed, 35 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/32/335432/1
diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php
index 1c1412a..d9f6f63 100644
--- a/includes/page/WikiPage.php
+++ b/includes/page/WikiPage.php
@@ -582,12 +582,10 @@
$row = null;
while ( $continue ) {
$row = $db->selectRow(
- [ 'page', 'revision' ],
+ [ 'revision' ],
$revSelectFields,
[
- 'page_namespace' =>
$this->mTitle->getNamespace(),
- 'page_title' =>
$this->mTitle->getDBkey(),
- 'rev_page = page_id'
+ 'rev_page' => $this->getId()
],
__METHOD__,
[
diff --git a/tests/phpunit/includes/page/WikiPageTest.php
b/tests/phpunit/includes/page/WikiPageTest.php
index d32915b..25f4b59 100644
--- a/tests/phpunit/includes/page/WikiPageTest.php
+++ b/tests/phpunit/includes/page/WikiPageTest.php
@@ -753,6 +753,39 @@
*/
/**
+ * @covers WikiPage::getOldestRevision
+ */
+ public function testGetOldestRevision() {
+ $page = $this->newPage( "WikiPageTest_testDoRollback" );
+ $page->doEditContent(
+ new WikitextContent( 'one' ),
+ "first edit",
+ EDIT_NEW
+ );
+ $rev1 = $page->getRevision();
+
+ $page = new WikiPage( $page->getTitle() );
+ $page->doEditContent(
+ new WikitextContent( 'two' ),
+ "second edit",
+ EDIT_UPDATE
+ );
+
+ $page = new WikiPage( $page->getTitle() );
+ $page->doEditContent(
+ new WikitextContent( 'three' ),
+ "third edit",
+ EDIT_UPDATE
+ );
+
+ // sanity check
+ $this->assertNotEquals( $rev1->getId(),
$page->getRevision()->getId(), '$page->getRevision()->getId()' );
+
+ // actual test
+ $this->assertEquals( $rev1->getId(),
$page->getOldestRevision()->getId(), '$page->getOldestRevision()->getId()' );
+ }
+
+ /**
* @todo FIXME: this is a better rollback test than the one below, but
it
* keeps failing in jenkins for some reason.
*/
--
To view, visit https://gerrit.wikimedia.org/r/335432
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd27710cada823318ac3662d3c16323eb9a78839
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits