From 0f1a542c1f71f049b425cbb5c6de16b78cc94d6e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 1 Jan 2017 17:35:22 -0500 Subject: [PATCH] remove transaction from GetItemList --- .../Data/SqliteItemRepository.cs | 72 +++++++++---------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 8c16216b95..a6119f1556 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -2548,57 +2548,53 @@ namespace Emby.Server.Implementations.Data { using (var connection = CreateConnection(true)) { - return connection.RunInTransaction(db => + var list = new List(); + + using (var statement = PrepareStatementSafe(connection, commandText)) { - var list = new List(); - - using (var statement = PrepareStatementSafe(db, commandText)) + if (EnableJoinUserData(query)) { - if (EnableJoinUserData(query)) + statement.TryBind("@UserId", query.User.Id); + } + + BindSimilarParams(query, statement); + + // Running this again will bind the params + GetWhereClauses(query, statement); + + foreach (var row in statement.ExecuteQuery()) + { + var item = GetItem(row, query); + if (item != null) { - statement.TryBind("@UserId", query.User.Id); + list.Add(item); } + } + } - BindSimilarParams(query, statement); + // Hack for right now since we currently don't support filtering out these duplicates within a query + if (query.EnableGroupByMetadataKey) + { + var limit = query.Limit ?? int.MaxValue; + limit -= 4; + var newList = new List(); - // Running this again will bind the params - GetWhereClauses(query, statement); + foreach (var item in list) + { + AddItem(newList, item); - foreach (var row in statement.ExecuteQuery()) + if (newList.Count >= limit) { - var item = GetItem(row, query); - if (item != null) - { - list.Add(item); - } + break; } } - // Hack for right now since we currently don't support filtering out these duplicates within a query - if (query.EnableGroupByMetadataKey) - { - var limit = query.Limit ?? int.MaxValue; - limit -= 4; - var newList = new List(); + list = newList; + } - foreach (var item in list) - { - AddItem(newList, item); + LogQueryTime("GetItemList", commandText, now); - if (newList.Count >= limit) - { - break; - } - } - - list = newList; - } - - LogQueryTime("GetItemList", commandText, now); - - return list; - - }, ReadTransactionMode); + return list; } } }