aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Data/SqliteItemRepository.cs
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2019-01-26 19:46:30 +0100
committerBond_009 <bond.009@outlook.com>2019-01-26 19:46:30 +0100
commitd8d6c6f2541a1589733a61210e56a1a168cb57c9 (patch)
treeaaebd3ab67f4f35f26051664aeab4246713fd1e7 /Emby.Server.Implementations/Data/SqliteItemRepository.cs
parent2ffab720fb8c0b468c57139401f7f72d50c9b41e (diff)
Address comments
Diffstat (limited to 'Emby.Server.Implementations/Data/SqliteItemRepository.cs')
-rw-r--r--Emby.Server.Implementations/Data/SqliteItemRepository.cs129
1 files changed, 25 insertions, 104 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
index 1528a7d2b..ca7b48cc6 100644
--- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs
+++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
@@ -22,13 +22,10 @@ using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Playlists;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.IO;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Reflection;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Model.System;
-using MediaBrowser.Model.Threading;
using Microsoft.Extensions.Logging;
using SQLitePCL.pretty;
@@ -316,8 +313,6 @@ namespace Emby.Server.Implementations.Data
};
connection.RunQueries(postQueries);
-
- //await Vacuum(_connection).ConfigureAwait(false);
}
userDataRepo.Initialize(WriteLock, _connection, userManager);
@@ -623,39 +618,35 @@ namespace Emby.Server.Implementations.Data
{
GetSaveItemCommandText(),
"delete from AncestorIds where ItemId=@ItemId"
-
});
using (var saveItemStatement = statements[0])
+ using (var deleteAncestorsStatement = statements[1])
{
- using (var deleteAncestorsStatement = statements[1])
+ var requiresReset = false;
+ foreach (var tuple in tuples)
{
- var requiresReset = false;
- foreach (var tuple in tuples)
+ if (requiresReset)
{
- if (requiresReset)
- {
- saveItemStatement.Reset();
- }
+ saveItemStatement.Reset();
+ }
- var item = tuple.Item1;
- var topParent = tuple.Item3;
- var userDataKey = tuple.Item4;
+ var item = tuple.Item1;
+ var topParent = tuple.Item3;
+ var userDataKey = tuple.Item4;
- SaveItem(item, topParent, userDataKey, saveItemStatement);
- //logger.LogDebug(_saveItemCommand.CommandText);
+ SaveItem(item, topParent, userDataKey, saveItemStatement);
- var inheritedTags = tuple.Item5;
+ var inheritedTags = tuple.Item5;
- if (item.SupportsAncestors)
- {
- UpdateAncestors(item.Id, tuple.Item2, db, deleteAncestorsStatement);
- }
+ if (item.SupportsAncestors)
+ {
+ UpdateAncestors(item.Id, tuple.Item2, db, deleteAncestorsStatement);
+ }
- UpdateItemValues(item.Id, GetItemValuesToSave(item, inheritedTags), db);
+ UpdateItemValues(item.Id, GetItemValuesToSave(item, inheritedTags), db);
- requiresReset = true;
- }
+ requiresReset = true;
}
}
}
@@ -989,8 +980,7 @@ namespace Emby.Server.Implementations.Data
}
string artists = null;
- if (item is IHasArtist hasArtists
- && hasArtists.Artists.Length > 0)
+ if (item is IHasArtist hasArtists && hasArtists.Artists.Length > 0)
{
artists = string.Join("|", hasArtists.Artists);
}
@@ -1032,7 +1022,8 @@ namespace Emby.Server.Implementations.Data
StringBuilder str = new StringBuilder();
foreach (var i in item.ProviderIds)
{
- // Ideally we shouldn't need this IsNullOrWhiteSpace check but we're seeing some cases of bad data slip through
+ // Ideally we shouldn't need this IsNullOrWhiteSpace check,
+ // but we're seeing some cases of bad data slip through
if (string.IsNullOrWhiteSpace(i.Value))
{
continue;
@@ -1082,7 +1073,7 @@ namespace Emby.Server.Implementations.Data
return null;
}
StringBuilder str = new StringBuilder();
- foreach(var i in images)
+ foreach (var i in images)
{
if (string.IsNullOrWhiteSpace(i.Path))
{
@@ -1194,7 +1185,7 @@ namespace Emby.Server.Implementations.Data
}
CheckDisposed();
- //logger.LogInformation("Retrieving item {0}", id.ToString("N"));
+
using (WriteLock.Read())
{
using (var connection = CreateConnection(true))
@@ -2253,7 +2244,7 @@ namespace Emby.Server.Implementations.Data
return true;
}
- return query.IncludeItemTypes.Contains("Episode", StringComparer.OrdinalIgnoreCase);
+ return query.IncludeItemTypes.Contains("Episode", StringComparer.OrdinalIgnoreCase);
}
private bool HasTrailerTypes(InternalItemsQuery query)
@@ -2411,7 +2402,6 @@ namespace Emby.Server.Implementations.Data
if (item.ProductionYear.HasValue)
{
- //builder.Append("+ ((ProductionYear=@ItemProductionYear) * 10)");
builder.Append("+(Select Case When Abs(COALESCE(ProductionYear, 0) - @ItemProductionYear) < 10 Then 10 Else 0 End )");
builder.Append("+(Select Case When Abs(COALESCE(ProductionYear, 0) - @ItemProductionYear) < 5 Then 5 Else 0 End )");
}
@@ -2419,12 +2409,6 @@ namespace Emby.Server.Implementations.Data
//// genres, tags
builder.Append("+ ((Select count(CleanValue) from ItemValues where ItemId=Guid and CleanValue in (select CleanValue from itemvalues where ItemId=@SimilarItemId)) * 10)");
- //builder.Append("+ ((Select count(CleanValue) from ItemValues where ItemId=Guid and Type=3 and CleanValue in (select CleanValue from itemvalues where ItemId=@SimilarItemId and type=3)) * 3)");
-
- //builder.Append("+ ((Select count(Name) from People where ItemId=Guid and Name in (select Name from People where ItemId=@SimilarItemId)) * 3)");
-
- //builder.Append("(select group_concat((Select Name from People where ItemId=Guid and Name in (Select Name from People where ItemId=@SimilarItemId)), '|'))");
-
builder.Append(") as SimilarityScore");
list.Add(builder.ToString());
@@ -2572,8 +2556,6 @@ namespace Emby.Server.Implementations.Data
commandText += " where " + string.Join(" AND ", whereClauses);
}
- //commandText += GetGroupBy(query);
-
using (WriteLock.Read())
{
using (var connection = CreateConnection(true))
@@ -2949,7 +2931,6 @@ namespace Emby.Server.Implementations.Data
{
orderBy.Add(new ValueTuple<string, SortOrder>("SimilarityScore", SortOrder.Descending));
orderBy.Add(new ValueTuple<string, SortOrder>(ItemSortBy.Random, SortOrder.Ascending));
- //orderBy.Add(new Tuple<string, SortOrder>(ItemSortBy.Random, SortOrder.Ascending));
}
if (!string.IsNullOrEmpty(query.SearchTerm))
@@ -3011,7 +2992,6 @@ namespace Emby.Server.Implementations.Data
}
else if (string.Equals(name, ItemSortBy.IsFavoriteOrLiked, StringComparison.OrdinalIgnoreCase))
{
- // (Select Case When Abs(COALESCE(ProductionYear, 0) - @ItemProductionYear) < 10 Then 2 Else 0 End )
return ("(Select Case When IsFavorite is null Then 0 Else IsFavorite End )", true);
}
else if (string.Equals(name, ItemSortBy.IsFolder, StringComparison.OrdinalIgnoreCase))
@@ -3384,14 +3364,6 @@ namespace Emby.Server.Implementations.Data
query.IsVirtualItem = false;
}
- var whereClauses = new List<string>();
-
- /*
- if (EnableJoinUserData(query))
- {
- whereClauses.Add("(UserId is null or UserId=@UserId)");
- }*/
-
var minWidth = query.MinWidth;
var maxWidth = query.MaxWidth;
@@ -3421,6 +3393,8 @@ namespace Emby.Server.Implementations.Data
}
}
+ var whereClauses = new List<string>();
+
if (minWidth.HasValue)
{
whereClauses.Add("Width>=@MinWidth");
@@ -3466,43 +3440,6 @@ namespace Emby.Server.Implementations.Data
var tags = query.Tags.ToList();
var excludeTags = query.ExcludeTags.ToList();
- //if (!(query.IsMovie ?? true) || !(query.IsSeries ?? true))
- //{
- // if (query.IsMovie.HasValue)
- // {
- // var alternateTypes = new List<string>();
- // if (query.IncludeItemTypes.Length == 0 || query.IncludeItemTypes.Contains(typeof(Movie).Name))
- // {
- // alternateTypes.Add(typeof(Movie).FullName);
- // }
- // if (query.IncludeItemTypes.Length == 0 || query.IncludeItemTypes.Contains(typeof(Trailer).Name))
- // {
- // alternateTypes.Add(typeof(Trailer).FullName);
- // }
-
- // if (alternateTypes.Count == 0)
- // {
- // whereClauses.Add("IsMovie=@IsMovie");
- // if (statement != null)
- // {
- // statement.TryBind("@IsMovie", query.IsMovie);
- // }
- // }
- // else
- // {
- // whereClauses.Add("(IsMovie is null OR IsMovie=@IsMovie)");
- // if (statement != null)
- // {
- // statement.TryBind("@IsMovie", query.IsMovie);
- // }
- // }
- // }
- //}
- //else
- //{
-
- //}
-
if (query.IsMovie ?? false)
{
var alternateTypes = new List<string>();
@@ -3664,7 +3601,6 @@ namespace Emby.Server.Implementations.Data
if (!string.IsNullOrWhiteSpace(query.Path))
{
- //whereClauses.Add("(Path=@Path COLLATE NOCASE)");
whereClauses.Add("Path=@Path");
if (statement != null)
{
@@ -3726,18 +3662,6 @@ namespace Emby.Server.Implementations.Data
}
}
- //if (query.MinPlayers.HasValue)
- //{
- // whereClauses.Add("Players>=@MinPlayers");
- // cmd.Parameters.Add(cmd, "@MinPlayers", DbType.Int32).Value = query.MinPlayers.Value;
- //}
-
- //if (query.MaxPlayers.HasValue)
- //{
- // whereClauses.Add("Players<=@MaxPlayers");
- // cmd.Parameters.Add(cmd, "@MaxPlayers", DbType.Int32).Value = query.MaxPlayers.Value;
- //}
-
if (query.IndexNumber.HasValue)
{
whereClauses.Add("IndexNumber=@IndexNumber");
@@ -4547,7 +4471,6 @@ namespace Emby.Server.Implementations.Data
}
var paramName = "@ExcludeProviderId" + index;
- //excludeIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
excludeIds.Add("(ProviderIds is null or ProviderIds not like " + paramName + ")");
if (statement != null)
{
@@ -5457,8 +5380,6 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
itemCountColumnQuery += typeWhereText;
- //itemCountColumnQuery += ")";
-
itemCountColumns = new Dictionary<string, string>()
{
{ "itemTypes", "(" + itemCountColumnQuery + ") as itemTypes"}