From 26036837dd0c865a6ac3742717dc3d77ec33cf8e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 4 Jul 2016 16:11:30 -0400 Subject: denormalize series fields --- .../Persistence/SqliteItemRepository.cs | 40 +++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Persistence') diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 5b492c240e..0416474395 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -95,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.Persistence private IDbCommand _updateInheritedRatingCommand; private IDbCommand _updateInheritedTagsCommand; - public const int LatestSchemaVersion = 97; + public const int LatestSchemaVersion = 99; /// /// Initializes a new instance of the class. @@ -271,6 +271,7 @@ namespace MediaBrowser.Server.Implementations.Persistence _connection.AddColumn(Logger, "TypedBaseItems", "IsVirtualItem", "BIT"); _connection.AddColumn(Logger, "TypedBaseItems", "SeriesName", "Text"); _connection.AddColumn(Logger, "TypedBaseItems", "UserDataKey", "Text"); + _connection.AddColumn(Logger, "TypedBaseItems", "SeasonName", "Text"); _connection.AddColumn(Logger, "UserDataKeys", "Priority", "INT"); _connection.AddColumn(Logger, "ItemValues", "CleanValue", "Text"); @@ -402,7 +403,9 @@ namespace MediaBrowser.Server.Implementations.Persistence "Album", "CriticRating", "CriticRatingSummary", - "IsVirtualItem" + "IsVirtualItem", + "SeriesName", + "SeasonName" }; private readonly string[] _mediaStreamSaveColumns = @@ -522,7 +525,8 @@ namespace MediaBrowser.Server.Implementations.Persistence "Album", "IsVirtualItem", "SeriesName", - "UserDataKey" + "UserDataKey", + "SeasonName" }; _saveItemCommand = _connection.CreateCommand(); _saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values ("; @@ -944,7 +948,7 @@ namespace MediaBrowser.Server.Implementations.Persistence var hasSeries = item as IHasSeries; if (hasSeries != null) { - _saveItemCommand.GetParameter(index++).Value = hasSeries.SeriesName; + _saveItemCommand.GetParameter(index++).Value = hasSeries.FindSeriesName(); } else { @@ -953,6 +957,16 @@ namespace MediaBrowser.Server.Implementations.Persistence _saveItemCommand.GetParameter(index++).Value = item.GetUserDataKeys().FirstOrDefault(); + var episode = item as Episode; + if (episode != null) + { + _saveItemCommand.GetParameter(index++).Value = episode.FindSeasonName(); + } + else + { + _saveItemCommand.GetParameter(index++).Value = null; + } + _saveItemCommand.Transaction = transaction; _saveItemCommand.ExecuteNonQuery(); @@ -1375,6 +1389,24 @@ namespace MediaBrowser.Server.Implementations.Persistence item.IsVirtualItem = reader.GetBoolean(58); } + var hasSeries = item as IHasSeries; + if (hasSeries != null) + { + if (!reader.IsDBNull(59)) + { + hasSeries.SeriesName = reader.GetString(59); + } + } + + var episode = item as Episode; + if (episode != null) + { + if (!reader.IsDBNull(60)) + { + episode.SeasonName = reader.GetString(60); + } + } + return item; } -- cgit v1.2.3