Page MenuHomePhabricator
Authored By
aaron
Sep 1 2016, 12:44 PM
Size
1 KB
Referenced Files
None
Subscribers
None

fix_T144484.patch

From 5053d349c328af82bb8a8b393be5eaf10654b349 Mon Sep 17 00:00:00 2001
From: Aaron Schulz <aschulz@wikimedia.org>
Date: Thu, 1 Sep 2016 05:42:01 -0700
Subject: [PATCH] Fix deletion handling of rev_deleted
When the suppress button was not used, and a some live
revisions had rev_deleted set, the query would try to
write the literal string "rev_deleted" as rev_deleted,
which was not noticed in default non-strict MySQL and
was casted to 0.
Follow-up to 673371e2c7
Change-Id: If3a74de13ea841d9d94ae05532cc8dadb0e40867
---
includes/page/WikiPage.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php
index e1d9f99..9626d10 100644
--- a/includes/page/WikiPage.php
+++ b/includes/page/WikiPage.php
@@ -2912,9 +2912,10 @@ class WikiPage implements Page, IDBAccessObject {
// the rev_deleted field, which is reserved for this purpose.
// Get all of the page revisions
+ $fields = array_diff( Revision::selectFields(), [ 'rev_deleted' ] );
$res = $dbw->select(
'revision',
- Revision::selectFields(),
+ array_merge( $fields, [ 'rev_deleted' => $bitfield ] ),
[ 'rev_page' => $id ],
__METHOD__,
'FOR UPDATE'
--
2.8.3.windows.1

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3951189
Default Alt Text
fix_T144484.patch (1 KB)

Event Timeline