Convert to 'using' declaration in Housekeeping Tasks

Closes #3811
pull/3814/head
Bogdan 12 months ago
parent e6ceafa03b
commit 038b121c34

@ -14,34 +14,32 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() 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 (
mapper.Execute(@"DELETE FROM ""MetadataFiles"" SELECT ""Id"" FROM ""MetadataFiles""
WHERE ""Id"" = ANY ( WHERE ""RelativePath""
SELECT ""Id"" FROM ""MetadataFiles"" LIKE '_:\\%'
WHERE ""RelativePath"" OR ""RelativePath""
LIKE '_:\\%' LIKE '\\%'
OR ""RelativePath"" OR ""RelativePath""
LIKE '\\%' LIKE '/%'
OR ""RelativePath"" )");
LIKE '/%' }
)"); else
} {
else mapper.Execute(@"DELETE FROM ""MetadataFiles""
{ WHERE ""Id"" IN (
mapper.Execute(@"DELETE FROM ""MetadataFiles"" SELECT ""Id"" FROM ""MetadataFiles""
WHERE ""Id"" IN ( WHERE ""RelativePath""
SELECT ""Id"" FROM ""MetadataFiles"" LIKE '_:\%'
WHERE ""RelativePath"" OR ""RelativePath""
LIKE '_:\%' LIKE '\%'
OR ""RelativePath"" OR ""RelativePath""
LIKE '\%' LIKE '/%'
OR ""RelativePath"" )");
LIKE '/%'
)");
}
} }
} }
} }

@ -14,13 +14,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""NamingConfig""
mapper.Execute(@"DELETE FROM ""NamingConfig"" WHERE ""Id"" NOT IN (
WHERE ""Id"" NOT IN ( SELECT ""Id"" FROM ""NamingConfig""
SELECT ""Id"" FROM ""NamingConfig"" LIMIT 1)");
LIMIT 1)");
}
} }
} }
} }

@ -14,13 +14,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""Users""
mapper.Execute(@"DELETE FROM ""Users"" WHERE ""Id"" NOT IN (
WHERE ""Id"" NOT IN ( SELECT ""Id"" FROM ""Users""
SELECT ""Id"" FROM ""Users"" LIMIT 1)");
LIMIT 1)");
}
} }
} }
} }

@ -22,58 +22,50 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
private void DeleteDuplicateArtistMetadata() private void DeleteDuplicateArtistMetadata()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT MIN(""Id"") FROM ""MetadataFiles""
SELECT MIN(""Id"") FROM ""MetadataFiles"" WHERE ""Type"" = 1
WHERE ""Type"" = 1 GROUP BY ""ArtistId"", ""Consumer""
GROUP BY ""ArtistId"", ""Consumer"" HAVING COUNT(""ArtistId"") > 1
HAVING COUNT(""ArtistId"") > 1 )");
)");
}
} }
private void DeleteDuplicateAlbumMetadata() private void DeleteDuplicateAlbumMetadata()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT MIN(""Id"") FROM ""MetadataFiles""
SELECT MIN(""Id"") FROM ""MetadataFiles"" WHERE ""Type"" = 6
WHERE ""Type"" = 6 GROUP BY ""AlbumId"", ""Consumer""
GROUP BY ""AlbumId"", ""Consumer"" HAVING COUNT(""AlbumId"") > 1
HAVING COUNT(""AlbumId"") > 1 )");
)");
}
} }
private void DeleteDuplicateTrackMetadata() private void DeleteDuplicateTrackMetadata()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT MIN(""Id"") FROM ""MetadataFiles""
SELECT MIN(""Id"") FROM ""MetadataFiles"" WHERE ""Type"" = 2
WHERE ""Type"" = 2 GROUP BY ""TrackFileId"", ""Consumer""
GROUP BY ""TrackFileId"", ""Consumer"" HAVING COUNT(""TrackFileId"") > 1
HAVING COUNT(""TrackFileId"") > 1 )");
)");
}
} }
private void DeleteDuplicateTrackImages() private void DeleteDuplicateTrackImages()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT MIN(""Id"") FROM ""MetadataFiles""
SELECT MIN(""Id"") FROM ""MetadataFiles"" WHERE ""Type"" = 5
WHERE ""Type"" = 5 GROUP BY ""TrackFileId"", ""Consumer""
GROUP BY ""TrackFileId"", ""Consumer"" HAVING COUNT(""TrackFileId"") > 1
HAVING COUNT(""TrackFileId"") > 1 )");
)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""Albums""
mapper.Execute(@"DELETE FROM ""Albums"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""Albums"".""Id"" FROM ""Albums""
SELECT ""Albums"".""Id"" FROM ""Albums"" LEFT OUTER JOIN ""Artists""
LEFT OUTER JOIN ""Artists"" ON ""Albums"".""ArtistMetadataId"" = ""Artists"".""ArtistMetadataId""
ON ""Albums"".""ArtistMetadataId"" = ""Artists"".""ArtistMetadataId"" WHERE ""Artists"".""Id"" IS NULL)");
WHERE ""Artists"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,16 +14,14 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""ArtistMetadata""
mapper.Execute(@"DELETE FROM ""ArtistMetadata"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""ArtistMetadata"".""Id"" FROM ""ArtistMetadata""
SELECT ""ArtistMetadata"".""Id"" FROM ""ArtistMetadata"" LEFT OUTER JOIN ""Albums"" ON ""Albums"".""ArtistMetadataId"" = ""ArtistMetadata"".""Id""
LEFT OUTER JOIN ""Albums"" ON ""Albums"".""ArtistMetadataId"" = ""ArtistMetadata"".""Id"" LEFT OUTER JOIN ""Tracks"" ON ""Tracks"".""ArtistMetadataId"" = ""ArtistMetadata"".""Id""
LEFT OUTER JOIN ""Tracks"" ON ""Tracks"".""ArtistMetadataId"" = ""ArtistMetadata"".""Id"" LEFT OUTER JOIN ""Artists"" ON ""Artists"".""ArtistMetadataId"" = ""ArtistMetadata"".""Id""
LEFT OUTER JOIN ""Artists"" ON ""Artists"".""ArtistMetadataId"" = ""ArtistMetadata"".""Id"" WHERE ""Albums"".""Id"" IS NULL AND ""Tracks"".""Id"" IS NULL AND ""Artists"".""Id"" IS NULL)");
WHERE ""Albums"".""Id"" IS NULL AND ""Tracks"".""Id"" IS NULL AND ""Artists"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""Blocklist""
mapper.Execute(@"DELETE FROM ""Blocklist"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""Blocklist"".""Id"" FROM ""Blocklist""
SELECT ""Blocklist"".""Id"" FROM ""Blocklist"" LEFT OUTER JOIN ""Artists""
LEFT OUTER JOIN ""Artists"" ON ""Blocklist"".""ArtistId"" = ""Artists"".""Id""
ON ""Blocklist"".""ArtistId"" = ""Artists"".""Id"" WHERE ""Artists"".""Id"" IS NULL)");
WHERE ""Artists"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""DownloadClientStatus""
mapper.Execute(@"DELETE FROM ""DownloadClientStatus"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""DownloadClientStatus"".""Id"" FROM ""DownloadClientStatus""
SELECT ""DownloadClientStatus"".""Id"" FROM ""DownloadClientStatus"" LEFT OUTER JOIN ""DownloadClients""
LEFT OUTER JOIN ""DownloadClients"" ON ""DownloadClientStatus"".""ProviderId"" = ""DownloadClients"".""Id""
ON ""DownloadClientStatus"".""ProviderId"" = ""DownloadClients"".""Id"" WHERE ""DownloadClients"".""Id"" IS NULL)");
WHERE ""DownloadClients"".""Id"" IS NULL)");
}
} }
} }
} }

@ -20,28 +20,24 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
private void CleanupOrphanedByArtist() private void CleanupOrphanedByArtist()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""History""
mapper.Execute(@"DELETE FROM ""History"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""History"".""Id"" FROM ""History""
SELECT ""History"".""Id"" FROM ""History"" LEFT OUTER JOIN ""Artists""
LEFT OUTER JOIN ""Artists"" ON ""History"".""ArtistId"" = ""Artists"".""Id""
ON ""History"".""ArtistId"" = ""Artists"".""Id"" WHERE ""Artists"".""Id"" IS NULL)");
WHERE ""Artists"".""Id"" IS NULL)");
}
} }
private void CleanupOrphanedByAlbum() private void CleanupOrphanedByAlbum()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""History""
mapper.Execute(@"DELETE FROM ""History"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""History"".""Id"" FROM ""History""
SELECT ""History"".""Id"" FROM ""History"" LEFT OUTER JOIN ""Albums""
LEFT OUTER JOIN ""Albums"" ON ""History"".""AlbumId"" = ""Albums"".""Id""
ON ""History"".""AlbumId"" = ""Albums"".""Id"" WHERE ""Albums"".""Id"" IS NULL)");
WHERE ""Albums"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""ImportListStatus""
mapper.Execute(@"DELETE FROM ""ImportListStatus"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""ImportListStatus"".""Id"" FROM ""ImportListStatus""
SELECT ""ImportListStatus"".""Id"" FROM ""ImportListStatus"" LEFT OUTER JOIN ""ImportLists""
LEFT OUTER JOIN ""ImportLists"" ON ""ImportListStatus"".""ProviderId"" = ""ImportLists"".""Id""
ON ""ImportListStatus"".""ProviderId"" = ""ImportLists"".""Id"" WHERE ""ImportLists"".""Id"" IS NULL)");
WHERE ""ImportLists"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""IndexerStatus""
mapper.Execute(@"DELETE FROM ""IndexerStatus"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""IndexerStatus"".""Id"" FROM ""IndexerStatus""
SELECT ""IndexerStatus"".""Id"" FROM ""IndexerStatus"" LEFT OUTER JOIN ""Indexers""
LEFT OUTER JOIN ""Indexers"" ON ""IndexerStatus"".""ProviderId"" = ""Indexers"".""Id""
ON ""IndexerStatus"".""ProviderId"" = ""Indexers"".""Id"" WHERE ""Indexers"".""Id"" IS NULL)");
WHERE ""Indexers"".""Id"" IS NULL)");
}
} }
} }
} }

@ -23,67 +23,57 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
private void DeleteOrphanedByArtist() private void DeleteOrphanedByArtist()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles""
SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" LEFT OUTER JOIN ""Artists""
LEFT OUTER JOIN ""Artists"" ON ""MetadataFiles"".""ArtistId"" = ""Artists"".""Id""
ON ""MetadataFiles"".""ArtistId"" = ""Artists"".""Id"" WHERE ""Artists"".""Id"" IS NULL)");
WHERE ""Artists"".""Id"" IS NULL)");
}
} }
private void DeleteOrphanedByAlbum() private void DeleteOrphanedByAlbum()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles""
SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" LEFT OUTER JOIN ""Albums""
LEFT OUTER JOIN ""Albums"" ON ""MetadataFiles"".""AlbumId"" = ""Albums"".""Id""
ON ""MetadataFiles"".""AlbumId"" = ""Albums"".""Id"" WHERE ""MetadataFiles"".""AlbumId"" > 0
WHERE ""MetadataFiles"".""AlbumId"" > 0 AND ""Albums"".""Id"" IS NULL)");
AND ""Albums"".""Id"" IS NULL)");
}
} }
private void DeleteOrphanedByTrackFile() private void DeleteOrphanedByTrackFile()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles""
SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" LEFT OUTER JOIN ""TrackFiles""
LEFT OUTER JOIN ""TrackFiles"" ON ""MetadataFiles"".""TrackFileId"" = ""TrackFiles"".""Id""
ON ""MetadataFiles"".""TrackFileId"" = ""TrackFiles"".""Id"" WHERE ""MetadataFiles"".""TrackFileId"" > 0
WHERE ""MetadataFiles"".""TrackFileId"" > 0 AND ""TrackFiles"".""Id"" IS NULL)");
AND ""TrackFiles"".""Id"" IS NULL)");
}
} }
private void DeleteWhereAlbumIdIsZero() private void DeleteWhereAlbumIdIsZero()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""Id"" FROM ""MetadataFiles""
SELECT ""Id"" FROM ""MetadataFiles"" WHERE ""Type"" IN (4, 6)
WHERE ""Type"" IN (4, 6) AND ""AlbumId"" = 0)");
AND ""AlbumId"" = 0)");
}
} }
private void DeleteWhereTrackFileIsZero() private void DeleteWhereTrackFileIsZero()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""MetadataFiles""
mapper.Execute(@"DELETE FROM ""MetadataFiles"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""Id"" FROM ""MetadataFiles""
SELECT ""Id"" FROM ""MetadataFiles"" WHERE ""Type"" IN (2, 5)
WHERE ""Type"" IN (2, 5) AND ""TrackFileId"" = 0)");
AND ""TrackFileId"" = 0)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""PendingReleases""
mapper.Execute(@"DELETE FROM ""PendingReleases"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""PendingReleases"".""Id"" FROM ""PendingReleases""
SELECT ""PendingReleases"".""Id"" FROM ""PendingReleases"" LEFT OUTER JOIN ""Artists""
LEFT OUTER JOIN ""Artists"" ON ""PendingReleases"".""ArtistId"" = ""Artists"".""Id""
ON ""PendingReleases"".""ArtistId"" = ""Artists"".""Id"" WHERE ""Artists"".""Id"" IS NULL)");
WHERE ""Artists"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""AlbumReleases""
mapper.Execute(@"DELETE FROM ""AlbumReleases"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""AlbumReleases"".""Id"" FROM ""AlbumReleases""
SELECT ""AlbumReleases"".""Id"" FROM ""AlbumReleases"" LEFT OUTER JOIN ""Albums""
LEFT OUTER JOIN ""Albums"" ON ""AlbumReleases"".""AlbumId"" = ""Albums"".""Id""
ON ""AlbumReleases"".""AlbumId"" = ""Albums"".""Id"" WHERE ""Albums"".""Id"" IS NULL)");
WHERE ""Albums"".""Id"" IS NULL)");
}
} }
} }
} }

@ -20,32 +20,30 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
private void CleanupOrphanedByAlbum() private void CleanupOrphanedByAlbum()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{
// Unlink where track no longer exists // Unlink where track no longer exists
mapper.Execute(@"UPDATE ""TrackFiles"" mapper.Execute(@"UPDATE ""TrackFiles""
SET ""AlbumId"" = 0 SET ""AlbumId"" = 0
WHERE ""AlbumId"" <> 0 AND ""Id"" IN ( WHERE ""AlbumId"" <> 0 AND ""Id"" IN (
SELECT ""TrackFiles"".""Id"" FROM ""TrackFiles"" SELECT ""TrackFiles"".""Id"" FROM ""TrackFiles""
LEFT OUTER JOIN ""Tracks"" LEFT OUTER JOIN ""Tracks""
ON ""TrackFiles"".""Id"" = ""Tracks"".""TrackFileId"" ON ""TrackFiles"".""Id"" = ""Tracks"".""TrackFileId""
WHERE ""Tracks"".""Id"" IS NULL)"); WHERE ""Tracks"".""Id"" IS NULL)");
}
} }
private void CleanupOrphanedByTracks() private void CleanupOrphanedByTracks()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{
// Unlink Tracks where the Trackfiles entry no longer exists // Unlink Tracks where the Trackfiles entry no longer exists
mapper.Execute(@"UPDATE ""Tracks"" mapper.Execute(@"UPDATE ""Tracks""
SET ""TrackFileId"" = 0 SET ""TrackFileId"" = 0
WHERE ""TrackFileId"" <> 0 AND ""Id"" IN ( WHERE ""TrackFileId"" <> 0 AND ""Id"" IN (
SELECT ""Tracks"".""Id"" FROM ""Tracks"" SELECT ""Tracks"".""Id"" FROM ""Tracks""
LEFT OUTER JOIN ""TrackFiles"" LEFT OUTER JOIN ""TrackFiles""
ON ""Tracks"".""TrackFileId"" = ""TrackFiles"".""Id"" ON ""Tracks"".""TrackFileId"" = ""TrackFiles"".""Id""
WHERE ""TrackFiles"".""Id"" IS NULL)"); WHERE ""TrackFiles"".""Id"" IS NULL)");
}
} }
} }
} }

@ -14,15 +14,13 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"DELETE FROM ""Tracks""
mapper.Execute(@"DELETE FROM ""Tracks"" WHERE ""Id"" IN (
WHERE ""Id"" IN ( SELECT ""Tracks"".""Id"" FROM ""Tracks""
SELECT ""Tracks"".""Id"" FROM ""Tracks"" LEFT OUTER JOIN ""AlbumReleases""
LEFT OUTER JOIN ""AlbumReleases"" ON ""Tracks"".""AlbumReleaseId"" = ""AlbumReleases"".""Id""
ON ""Tracks"".""AlbumReleaseId"" = ""AlbumReleases"".""Id"" WHERE ""AlbumReleases"".""Id"" IS NULL)");
WHERE ""AlbumReleases"".""Id"" IS NULL)");
}
} }
} }
} }

@ -18,31 +18,29 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
public void Clean() public void Clean()
{ {
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ var usedTags = new[] { "Artists", "Notifications", "DelayProfiles", "ReleaseProfiles", "ImportLists", "Indexers" }
var usedTags = new[] { "Artists", "Notifications", "DelayProfiles", "ReleaseProfiles", "ImportLists", "Indexers" }
.SelectMany(v => GetUsedTags(v, mapper)) .SelectMany(v => GetUsedTags(v, mapper))
.Distinct() .Distinct()
.ToArray(); .ToArray();
if (usedTags.Any()) if (usedTags.Any())
{ {
var usedTagsList = usedTags.Select(d => d.ToString()).Join(","); var usedTagsList = usedTags.Select(d => d.ToString()).Join(",");
if (_database.DatabaseType == DatabaseType.PostgreSQL) if (_database.DatabaseType == DatabaseType.PostgreSQL)
{ {
mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" = ANY (\'{{{usedTagsList}}}\'::int[])"); mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" = ANY (\'{{{usedTagsList}}}\'::int[])");
}
else
{
mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" IN ({usedTagsList})");
}
} }
else 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) private int[] GetUsedTags(string table, IDbConnection mapper)

@ -24,13 +24,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
_logger.Debug("Not running scheduled task last execution cleanup during debug"); _logger.Debug("Not running scheduled task last execution cleanup during debug");
} }
using (var mapper = _database.OpenConnection()) using var mapper = _database.OpenConnection();
{ mapper.Execute(@"UPDATE ""ScheduledTasks""
mapper.Execute(@"UPDATE ""ScheduledTasks"" SET ""LastExecution"" = @time
SET ""LastExecution"" = @time WHERE ""LastExecution"" > @time",
WHERE ""LastExecution"" > @time", new { time = DateTime.UtcNow });
new { time = DateTime.UtcNow });
}
} }
} }
} }

Loading…
Cancel
Save