Blob Blame History Raw
From 4ca8b846baaad48ebbd723f6411f9571a3b0f5ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Vr=C3=A1til?= <dvratil@redhat.com>
Date: Tue, 22 Apr 2014 11:28:07 +0200
Subject: [PATCH 2/7] Remove the invalid GID part from PartTable before
 starting PartTable migration

More people than we expected have invalid 'GID' part in their PartTable,
which breaks migration to schema 25, because it expects all part types
to have a valid name.

To work around this fact, we DELETE all parts with name 'GID' from PartTable
before starting the actual migration. This will not fix the migration for
people with other invalid parts, but I haven't heard of any such. To make
this completely bullet-proof, we would need to iterate through all entries,
which would be massively slower than current INSERT INTO ... SELECT FROM approach.

Distributions, this is a good choice for backporting into 1.12.1 ;-)

BUG: 331867
FIXED-IN: 1.12.2
---
 server/src/storage/dbupdater.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/server/src/storage/dbupdater.cpp b/server/src/storage/dbupdater.cpp
index ccaf584..d6368b5 100644
--- a/server/src/storage/dbupdater.cpp
+++ b/server/src/storage/dbupdater.cpp
@@ -261,6 +261,15 @@ bool DbUpdater::complexUpdate_25()
     }
   }
 
+  {
+    // It appears that more users than expected have the invalid "GID" part in their
+    // PartTable, which breaks the migration below (see BKO#331867), so we apply this
+    // wanna-be fix to remove the invalid part before we start the actual migration.
+    QueryBuilder qb( QLatin1String( "PartTable" ), QueryBuilder::Delete );
+    qb.addValueCondition( QLatin1String( "PartTable.name" ), Query::Equals, QLatin1String( "GID" ) );
+    qb.exec();
+  }
+
   akDebug() << "Creating a PartTable_new";
   {
     TableDescription description;
-- 
1.9.3