Ticket #7946: mvschema.patch2

File mvschema.patch2, 2.0 KB (added by Raymond Wagner, 14 years ago)

Should take care of any duplicate entries.

Line 
1Index: dbcheck.cpp
2===================================================================
3--- dbcheck.cpp (revision 23270)
4+++ dbcheck.cpp (working copy)
5@@ -88,7 +88,7 @@
6     const QString lastMythDVDDBVersion = "1002";
7     const QString lastMythVideoVersion = "1010";
8 
9-    const QString currentDatabaseVersion = "1032";
10+    const QString currentDatabaseVersion = "1033";
11 
12     const QString OldMythVideoVersionName = "VideoDBSchemaVer";
13     const QString OldMythDVDVersionName = "DVDDBSchemaVer";
14@@ -1154,6 +1154,38 @@
15             dbver = "1032";
16         }
17 
18+        if (dbver == "1032")
19+        {
20+            const char *updates[] = {
21+"CREATE TEMPORARY TABLE bad_videometadatacast"
22+"       AS SELECT * FROM videometadatacast;",
23+"CREATE TEMPORARY TABLE bad_videometadatagenre"
24+"       AS SELECT * FROM videometadatagenre;",
25+"CREATE TEMPORARY TABLE bad_videometadatacountry"
26+"       AS SELECT * FROM videometadatacountry;",
27+"TRUNCATE TABLE videometadatacast;",
28+"TRUNCATE TABLE videometadatagenre;",
29+"TRUNCATE TABLE videometadatacountry;",
30+"INSERT videometadatacast SELECT idvideo,idcast"
31+"            FROM bad_videometadatacast GROUP BY idvideo,idcast;",
32+"INSERT videometadatagenre SELECT idvideo,idgenre"
33+"            FROM bad_videometadatagenre GROUP BY idvideo,idgenre;",
34+"INSERT videometadatacountry SELECT idvideo,idcountry"
35+"            FROM bad_videometadatacountry GROUP BY idvideo,idcountry;",
36+"DROP TEMPORARY TABLE bad_videometadatacast;",
37+"DROP TEMPORARY TABLE bad_videometadatagenre;",
38+"DROP TEMPORARY TABLE bad_videometadatacountry;",
39+"ALTER TABLE videometadatacast ADD UNIQUE INDEX (`idvideo`,`idcast`);",
40+"ALTER TABLE videometadatagenre ADD UNIQUE INDEX (`idvideo`,`idgenre`);",
41+"ALTER TABLE videometadatacountry ADD UNIQUE INDEX (`idvideo`,`idcountry`);",
42+NULL
43+};
44+
45+            if (!performActualUpdate(updates, "1033", dbver,
46+                                     MythVideoVersionName))
47+                return false;
48+        }
49+
50         return true;
51     }
52 }