mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-22 10:04:44 +01:00
update db querying
This commit is contained in:
@@ -208,7 +208,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
await item.Delete(new DeleteOptions
|
||||
{
|
||||
DeleteFileLocation = false
|
||||
|
||||
|
||||
}).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -225,7 +225,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
{
|
||||
var result = _itemRepo.GetItemIdsWithPath(new InternalItemsQuery
|
||||
{
|
||||
LocationType = LocationType.FileSystem,
|
||||
LocationTypes = new[] { LocationType.FileSystem },
|
||||
//Limit = limit,
|
||||
|
||||
// These have their own cleanup routines
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
private IDbCommand _saveAncestorCommand;
|
||||
|
||||
private IDbCommand _updateInheritedRatingCommand;
|
||||
|
||||
|
||||
private const int LatestSchemaVersion = 48;
|
||||
|
||||
/// <summary>
|
||||
@@ -160,7 +160,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
_connection.RunQueries(queries, Logger);
|
||||
|
||||
_connection.AddColumn(Logger, "AncestorIds", "AncestorIdText", "Text");
|
||||
|
||||
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "Path", "Text");
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "StartDate", "DATETIME");
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "EndDate", "DATETIME");
|
||||
@@ -1809,11 +1809,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
whereClauses.Add("IsOffline=@IsOffline");
|
||||
cmd.Parameters.Add(cmd, "@IsOffline", DbType.Boolean).Value = query.IsOffline;
|
||||
}
|
||||
if (query.LocationType.HasValue)
|
||||
{
|
||||
whereClauses.Add("LocationType=@LocationType");
|
||||
cmd.Parameters.Add(cmd, "@LocationType", DbType.String).Value = query.LocationType.Value;
|
||||
}
|
||||
if (query.IsMovie.HasValue)
|
||||
{
|
||||
whereClauses.Add("IsMovie=@IsMovie");
|
||||
@@ -1906,6 +1901,11 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
// cmd.Parameters.Add(cmd, "@MaxPlayers", DbType.Int32).Value = query.MaxPlayers.Value;
|
||||
//}
|
||||
|
||||
if (query.ParentIndexNumber.HasValue)
|
||||
{
|
||||
whereClauses.Add("ParentIndexNumber=@MinEndDate");
|
||||
cmd.Parameters.Add(cmd, "@ParentIndexNumber", DbType.Int32).Value = query.ParentIndexNumber.Value;
|
||||
}
|
||||
if (query.MinEndDate.HasValue)
|
||||
{
|
||||
whereClauses.Add("EndDate>=@MinEndDate");
|
||||
@@ -1990,7 +1990,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
var clause = "(" + string.Join(" AND ", clauses.ToArray()) + ")";
|
||||
whereClauses.Add(clause);
|
||||
}
|
||||
|
||||
|
||||
if (query.IsAiring.HasValue)
|
||||
{
|
||||
if (query.IsAiring.Value)
|
||||
@@ -2087,12 +2087,36 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
whereClauses.Add("ParentId NOT NULL AND ParentId NOT IN (select guid from TypedBaseItems)");
|
||||
}
|
||||
}
|
||||
|
||||
if (query.Years.Length == 1)
|
||||
{
|
||||
whereClauses.Add("ProductionYear=@Years");
|
||||
cmd.Parameters.Add(cmd, "@Years", DbType.Int32).Value = query.Years[0].ToString();
|
||||
}
|
||||
else if (query.Years.Length > 1)
|
||||
{
|
||||
var val = string.Join(",", query.Years.ToArray());
|
||||
|
||||
whereClauses.Add("ProductionYear in (" + val + ")");
|
||||
}
|
||||
|
||||
if (query.LocationTypes.Length == 1)
|
||||
{
|
||||
whereClauses.Add("LocationType=@LocationType");
|
||||
cmd.Parameters.Add(cmd, "@LocationType", DbType.String).Value = query.LocationTypes[0].ToString();
|
||||
}
|
||||
else if (query.LocationTypes.Length > 1)
|
||||
{
|
||||
var val = string.Join(",", query.LocationTypes.Select(i => "'" + i + "'").ToArray());
|
||||
|
||||
whereClauses.Add("LocationType in (" + val + ")");
|
||||
}
|
||||
if (query.ExcludeLocationTypes.Length == 1)
|
||||
{
|
||||
whereClauses.Add("LocationType<>@LocationType");
|
||||
cmd.Parameters.Add(cmd, "@LocationType", DbType.String).Value = query.ExcludeLocationTypes[0].ToString();
|
||||
whereClauses.Add("LocationType<>@ExcludeLocationTypes");
|
||||
cmd.Parameters.Add(cmd, "@ExcludeLocationTypes", DbType.String).Value = query.ExcludeLocationTypes[0].ToString();
|
||||
}
|
||||
if (query.ExcludeLocationTypes.Length > 1)
|
||||
else if (query.ExcludeLocationTypes.Length > 1)
|
||||
{
|
||||
var val = string.Join(",", query.ExcludeLocationTypes.Select(i => "'" + i + "'").ToArray());
|
||||
|
||||
@@ -2128,7 +2152,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
if (query.TopParentIds.Length > 1)
|
||||
{
|
||||
var val = string.Join(",", query.TopParentIds.Select(i => "'" + i + "'").ToArray());
|
||||
|
||||
|
||||
if (enableItemsByName)
|
||||
{
|
||||
whereClauses.Add("(IsItemByName=@IsItemByName or TopParentId in (" + val + "))");
|
||||
@@ -2169,7 +2193,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
cmd.Parameters.Add(cmd, "@excludeTag" + excludeTagIndex, DbType.String).Value = "%" + excludeTag + "%";
|
||||
excludeTagIndex++;
|
||||
}
|
||||
|
||||
|
||||
if (addPaging)
|
||||
{
|
||||
if (query.StartIndex.HasValue && query.StartIndex.Value > 0)
|
||||
@@ -2252,7 +2276,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
await WriteLock.WaitAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
IDbTransaction transaction = null;
|
||||
|
||||
Reference in New Issue
Block a user