diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs index 8d50f05de..a69a13831 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs @@ -14,34 +14,32 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) + using var mapper = _database.OpenConnection(); + if (_database.DatabaseType == DatabaseType.PostgreSQL) { - if (_database.DatabaseType == DatabaseType.PostgreSQL) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" = ANY ( - SELECT ""Id"" FROM ""MetadataFiles"" - WHERE ""RelativePath"" - LIKE '_:\\%' - OR ""RelativePath"" - LIKE '\\%' - OR ""RelativePath"" - LIKE '/%' - )"); - } - else - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""Id"" FROM ""MetadataFiles"" - WHERE ""RelativePath"" - LIKE '_:\%' - OR ""RelativePath"" - LIKE '\%' - OR ""RelativePath"" - LIKE '/%' - )"); - } + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" = ANY ( + SELECT ""Id"" FROM ""MetadataFiles"" + WHERE ""RelativePath"" + LIKE '_:\\%' + OR ""RelativePath"" + LIKE '\\%' + OR ""RelativePath"" + LIKE '/%' + )"); + } + else + { + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""Id"" FROM ""MetadataFiles"" + WHERE ""RelativePath"" + LIKE '_:\%' + OR ""RelativePath"" + LIKE '\%' + OR ""RelativePath"" + LIKE '/%' + )"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs index d9c61e790..59a4b50e9 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs @@ -14,13 +14,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""NamingConfig"" - WHERE ""Id"" NOT IN ( - SELECT ""Id"" FROM ""NamingConfig"" - LIMIT 1)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""NamingConfig"" + WHERE ""Id"" NOT IN ( + SELECT ""Id"" FROM ""NamingConfig"" + LIMIT 1)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs index 3845110f4..d13adbca9 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs @@ -14,13 +14,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Users"" - WHERE ""Id"" NOT IN ( - SELECT ""Id"" FROM ""Users"" - LIMIT 1)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Users"" + WHERE ""Id"" NOT IN ( + SELECT ""Id"" FROM ""Users"" + LIMIT 1)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs index 0054feabe..98bb1474b 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs @@ -16,30 +16,28 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) + using var mapper = _database.OpenConnection(); + if (_database.DatabaseType == DatabaseType.PostgreSQL) { - if (_database.DatabaseType == DatabaseType.PostgreSQL) - { - mapper.Execute(@"DELETE FROM ""PendingReleases"" + mapper.Execute(@"DELETE FROM ""PendingReleases"" WHERE ""Added"" < @TwoWeeksAgo AND ""Reason"" = ANY (@Reasons)", - new - { - TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), - Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } - }); - } - else - { + new + { + TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), + Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } + }); + } + else + { mapper.Execute(@"DELETE FROM ""PendingReleases"" WHERE ""Added"" < @TwoWeeksAgo AND ""REASON"" IN @Reasons", - new - { - TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), - Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } - }); - } + new + { + TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), + Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } + }); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs index c5d5537b1..dc580ef63 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs @@ -20,30 +20,26 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers private void DeleteDuplicateMovieMetadata() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT MIN(""Id"") FROM ""MetadataFiles"" - WHERE ""Type"" = 1 - GROUP BY ""MovieId"", ""Consumer"" - HAVING COUNT(""MovieId"") > 1 - )"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT MIN(""Id"") FROM ""MetadataFiles"" + WHERE ""Type"" = 1 + GROUP BY ""MovieId"", ""Consumer"" + HAVING COUNT(""MovieId"") > 1 + )"); } private void DeleteDuplicateMovieFileMetadata() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT MIN(""Id"") FROM ""MetadataFiles"" - WHERE ""Type"" = 1 - GROUP BY ""MovieFileId"", ""Consumer"" - HAVING COUNT(""MovieFileId"") > 1 - )"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT MIN(""Id"") FROM ""MetadataFiles"" + WHERE ""Type"" = 1 + GROUP BY ""MovieFileId"", ""Consumer"" + HAVING COUNT(""MovieFileId"") > 1 + )"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs index 050008a07..b738763ef 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""AlternativeTitles"" - WHERE ""Id"" IN ( - SELECT ""AlternativeTitles"".""Id"" FROM ""AlternativeTitles"" - LEFT OUTER JOIN ""MovieMetadata"" - ON ""AlternativeTitles"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""MovieMetadata"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""AlternativeTitles"" + WHERE ""Id"" IN ( + SELECT ""AlternativeTitles"".""Id"" FROM ""AlternativeTitles"" + LEFT OUTER JOIN ""MovieMetadata"" + ON ""AlternativeTitles"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""MovieMetadata"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs index f43f8f20e..58d27c0d4 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Blocklist"" - WHERE ""Id"" IN ( - SELECT ""Blocklist"".""Id"" FROM ""Blocklist"" - LEFT OUTER JOIN ""Movies"" - ON ""Blocklist"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Blocklist"" + WHERE ""Id"" IN ( + SELECT ""Blocklist"".""Id"" FROM ""Blocklist"" + LEFT OUTER JOIN ""Movies"" + ON ""Blocklist"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs index 5e3fc4ce2..df05b9371 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs @@ -14,13 +14,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Collections"" WHERE ""TmdbId"" IN (SELECT ""X"".""TmdbId"" FROM (SELECT ""Collections"".""TmdbId"", COUNT(""Movies"".""Id"") as ""MovieCount"" FROM ""Collections"" - LEFT OUTER JOIN ""MovieMetadata"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" - LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - GROUP BY ""Collections"".""Id"") AS ""X"" WHERE ""X"".""MovieCount"" = 0)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Collections"" WHERE ""TmdbId"" IN (SELECT ""X"".""TmdbId"" FROM (SELECT ""Collections"".""TmdbId"", COUNT(""Movies"".""Id"") as ""MovieCount"" FROM ""Collections"" + LEFT OUTER JOIN ""MovieMetadata"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" + LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + GROUP BY ""Collections"".""Id"") AS ""X"" WHERE ""X"".""MovieCount"" = 0)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs index 88024b3fb..0dadd23ea 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Credits"" - WHERE ""Id"" IN ( - SELECT ""Credits"".""Id"" FROM ""Credits"" - LEFT OUTER JOIN ""MovieMetadata"" - ON ""Credits"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""MovieMetadata"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Credits"" + WHERE ""Id"" IN ( + SELECT ""Credits"".""Id"" FROM ""Credits"" + LEFT OUTER JOIN ""MovieMetadata"" + ON ""Credits"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""MovieMetadata"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs index b2584a431..0856907b9 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""DownloadClientStatus"" - WHERE ""Id"" IN ( - SELECT ""DownloadClientStatus"".""Id"" FROM ""DownloadClientStatus"" - LEFT OUTER JOIN ""DownloadClients"" - ON ""DownloadClientStatus"".""ProviderId"" = ""DownloadClients"".""Id"" - WHERE ""DownloadClients"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""DownloadClientStatus"" + WHERE ""Id"" IN ( + SELECT ""DownloadClientStatus"".""Id"" FROM ""DownloadClientStatus"" + LEFT OUTER JOIN ""DownloadClients"" + ON ""DownloadClientStatus"".""ProviderId"" = ""DownloadClients"".""Id"" + WHERE ""DownloadClients"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs index 66d7a01e5..8de8b6d36 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs @@ -20,29 +20,25 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers private void DeleteOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""ExtraFiles"" - WHERE ""Id"" IN ( - SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""ExtraFiles"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""ExtraFiles"" + WHERE ""Id"" IN ( + SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""ExtraFiles"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } private void DeleteOrphanedByMovieFile() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""ExtraFiles"" - WHERE ""Id"" IN ( - SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""ExtraFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""ExtraFiles"".""MovieFileId"" > 0 - AND ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""ExtraFiles"" + WHERE ""Id"" IN ( + SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""ExtraFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""ExtraFiles"".""MovieFileId"" > 0 + AND ""MovieFiles"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs index ffe5dd6a2..90b001b8b 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs @@ -19,15 +19,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers private void CleanupOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""History"" - WHERE ""Id"" IN ( - SELECT ""History"".""Id"" FROM ""History"" - LEFT OUTER JOIN ""Movies"" - ON ""History"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""History"" + WHERE ""Id"" IN ( + SELECT ""History"".""Id"" FROM ""History"" + LEFT OUTER JOIN ""Movies"" + ON ""History"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs index 059f059e4..9486641b5 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""IndexerStatus"" - WHERE ""Id"" IN ( - SELECT ""IndexerStatus"".""Id"" FROM ""IndexerStatus"" - LEFT OUTER JOIN ""Indexers"" - ON ""IndexerStatus"".""ProviderId"" = ""Indexers"".""Id"" - WHERE ""Indexers"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""IndexerStatus"" + WHERE ""Id"" IN ( + SELECT ""IndexerStatus"".""Id"" FROM ""IndexerStatus"" + LEFT OUTER JOIN ""Indexers"" + ON ""IndexerStatus"".""ProviderId"" = ""Indexers"".""Id"" + WHERE ""Indexers"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs index de9aa98b4..cc87328d2 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs @@ -21,41 +21,35 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers private void DeleteOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""MetadataFiles"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""MetadataFiles"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } private void DeleteOrphanedByMovieFile() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""MetadataFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""MetadataFiles"".""MovieFileId"" > 0 - AND ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""MetadataFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""MetadataFiles"".""MovieFileId"" > 0 + AND ""MovieFiles"".""Id"" IS NULL)"); } private void DeleteWhereMovieFileIsZero() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""Id"" FROM ""MetadataFiles"" - WHERE ""Type"" IN (1, 2) - AND ""MovieFileId"" = 0)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""Id"" FROM ""MetadataFiles"" + WHERE ""Type"" IN (1, 2) + AND ""MovieFileId"" = 0)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs index 196d3efc4..01fa97289 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MovieFiles"" - WHERE ""Id"" IN ( - SELECT ""MovieFiles"".""Id"" FROM ""MovieFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""MovieFiles"".""Id"" = ""Movies"".""MovieFileId"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MovieFiles"" + WHERE ""Id"" IN ( + SELECT ""MovieFiles"".""Id"" FROM ""MovieFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""MovieFiles"".""Id"" = ""Movies"".""MovieFileId"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs index aad19ad07..fb15bf30c 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs @@ -14,16 +14,14 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MovieMetadata"" - WHERE ""Id"" IN ( - SELECT ""MovieMetadata"".""Id"" FROM ""MovieMetadata"" - LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - LEFT OUTER JOIN ""Collections"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" - LEFT OUTER JOIN ""ImportListMovies"" ON ""ImportListMovies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""Movies"".""Id"" IS NULL AND ""ImportListMovies"".""Id"" IS NULL AND ""Collections"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MovieMetadata"" + WHERE ""Id"" IN ( + SELECT ""MovieMetadata"".""Id"" FROM ""MovieMetadata"" + LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + LEFT OUTER JOIN ""Collections"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" + LEFT OUTER JOIN ""ImportListMovies"" ON ""ImportListMovies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""Movies"".""Id"" IS NULL AND ""ImportListMovies"".""Id"" IS NULL AND ""Collections"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs index f99a1417f..15dc5a917 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs @@ -14,16 +14,14 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"UPDATE ""Movies"" - SET ""MovieFileId"" = 0 - WHERE ""Id"" IN ( - SELECT ""Movies"".""Id"" FROM ""Movies"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""Movies"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"UPDATE ""Movies"" + SET ""MovieFileId"" = 0 + WHERE ""Id"" IN ( + SELECT ""Movies"".""Id"" FROM ""Movies"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""Movies"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""MovieFiles"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs index 9db5013d6..4b5b531d3 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MovieTranslations"" - WHERE ""Id"" IN ( - SELECT ""MovieTranslations"".""Id"" FROM ""MovieTranslations"" - LEFT OUTER JOIN ""MovieMetadata"" - ON ""MovieTranslations"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""MovieMetadata"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MovieTranslations"" + WHERE ""Id"" IN ( + SELECT ""MovieTranslations"".""Id"" FROM ""MovieTranslations"" + LEFT OUTER JOIN ""MovieMetadata"" + ON ""MovieTranslations"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""MovieMetadata"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs index d2b2afd7f..857d6c49b 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs @@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""PendingReleases"" - WHERE ""Id"" IN ( - SELECT ""PendingReleases"".""Id"" FROM ""PendingReleases"" - LEFT OUTER JOIN ""Movies"" - ON ""PendingReleases"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""PendingReleases"" + WHERE ""Id"" IN ( + SELECT ""PendingReleases"".""Id"" FROM ""PendingReleases"" + LEFT OUTER JOIN ""Movies"" + ON ""PendingReleases"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs index cf88a30bb..2c8accc8c 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs @@ -20,29 +20,25 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers private void DeleteOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""SubtitleFiles"" - WHERE ""Id"" IN ( - SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""SubtitleFiles"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""SubtitleFiles"" + WHERE ""Id"" IN ( + SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""SubtitleFiles"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } private void DeleteOrphanedByMovieFile() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""SubtitleFiles"" - WHERE ""Id"" IN ( - SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""SubtitleFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""SubtitleFiles"".""MovieFileId"" > 0 - AND ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""SubtitleFiles"" + WHERE ""Id"" IN ( + SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""SubtitleFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""SubtitleFiles"".""MovieFileId"" > 0 + AND ""MovieFiles"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs index d01ec4da5..7465b1a45 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs @@ -18,31 +18,29 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - using (var mapper = _database.OpenConnection()) + using var mapper = _database.OpenConnection(); + var usedTags = new[] { "Movies", "Notifications", "DelayProfiles", "Restrictions", "ImportLists", "Indexers" } + .SelectMany(v => GetUsedTags(v, mapper)) + .Distinct() + .ToList(); + + if (usedTags.Any()) { - var usedTags = new[] { "Movies", "Notifications", "DelayProfiles", "Restrictions", "ImportLists", "Indexers" } - .SelectMany(v => GetUsedTags(v, mapper)) - .Distinct() - .ToList(); + var usedTagsList = usedTags.Select(d => d.ToString()).Join(","); - if (usedTags.Any()) + if (_database.DatabaseType == DatabaseType.PostgreSQL) { - var usedTagsList = usedTags.Select(d => d.ToString()).Join(","); - - if (_database.DatabaseType == DatabaseType.PostgreSQL) - { - mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" = ANY (\'{{{usedTagsList}}}\'::int[])"); - } - else - { - mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" IN ({usedTagsList})"); - } + mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" = ANY (\'{{{usedTagsList}}}\'::int[])"); } else { - mapper.Execute("DELETE FROM \"Tags\""); + mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" IN ({usedTagsList})"); } } + else + { + mapper.Execute("DELETE FROM \"Tags\""); + } } private int[] GetUsedTags(string table, IDbConnection mapper) diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs index 47333e596..afb80baf2 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs @@ -24,13 +24,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers _logger.Debug("Not running scheduled task last execution cleanup during debug"); } - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"UPDATE ""ScheduledTasks"" - SET ""LastExecution"" = @time - WHERE ""LastExecution"" > @time", - new { time = DateTime.UtcNow }); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"UPDATE ""ScheduledTasks"" + SET ""LastExecution"" = @time + WHERE ""LastExecution"" > @time", + new { time = DateTime.UtcNow }); } } }