| 
					
				 | 
			
			
				@@ -664,11 +664,18 @@ namespace Emby.Server.Implementations.Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var requiresReset = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            using (var saveItemStatement = db.PrepareStatement(GetSaveItemCommandText())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var statements = db.PrepareAll(string.Join(";",  new string[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                using (var deleteAncestorsStatement = db.PrepareStatement("delete from AncestorIds where ItemId=@ItemId")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                GetSaveItemCommandText(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "delete from AncestorIds where ItemId=@ItemId", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "insert into AncestorIds (ItemId, AncestorId, AncestorIdText) values (@ItemId, @AncestorId, @AncestorIdText)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            })).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            using (var saveItemStatement = statements[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                using (var deleteAncestorsStatement = statements[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    using (var updateAncestorsStatement = db.PrepareStatement("insert into AncestorIds (ItemId, AncestorId, AncestorIdText) values (@ItemId, @AncestorId, @AncestorIdText)")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    using (var updateAncestorsStatement = statements[2]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         foreach (var tuple in tuples) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2576,16 +2583,42 @@ namespace Emby.Server.Implementations.Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var totalRecordCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var isReturningZeroItems = query.Limit.HasValue && query.Limit <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var statementTexts = new List<string>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!isReturningZeroItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                statementTexts.Add(commandText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (query.EnableTotalRecordCount) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commandText = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (EnableGroupByPresentationUniqueKey(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    commandText += " select count (distinct PresentationUniqueKey)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    commandText += " select count (guid)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commandText += GetJoinUserDataText(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commandText += whereTextWithoutPaging; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                statementTexts.Add(commandText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             using (var connection = CreateConnection(true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 using (WriteLock.Read()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var totalRecordCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var isReturningZeroItems = query.Limit.HasValue && query.Limit <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var statements = connection.PrepareAll(string.Join(";", statementTexts.ToArray())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!isReturningZeroItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        using (var statement = connection.PrepareStatement(commandText)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        using (var statement = statements[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2608,33 +2641,22 @@ namespace Emby.Server.Implementations.Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    commandText = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (EnableGroupByPresentationUniqueKey(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        commandText += " select count (distinct PresentationUniqueKey)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        commandText += " select count (guid)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    commandText += GetJoinUserDataText(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    commandText += whereTextWithoutPaging; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    using (var statement = connection.PrepareStatement(commandText)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (query.EnableTotalRecordCount) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        using (var statement = statements[statements.Count - 1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            statement.TryBind("@UserId", query.User.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                statement.TryBind("@UserId", query.User.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        BindSimilarParams(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BindSimilarParams(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // Running this again will bind the params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        GetWhereClauses(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Running this again will bind the params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GetWhereClauses(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        totalRecordCount = statement.ExecuteQuery().SelectScalarInt().First(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            totalRecordCount = statement.ExecuteQuery().SelectScalarInt().First(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     LogQueryTime("GetItems", commandText, now); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2966,58 +2988,77 @@ namespace Emby.Server.Implementations.Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var list = new List<Guid>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var isReturningZeroItems = query.Limit.HasValue && query.Limit <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var statementTexts = new List<string>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!isReturningZeroItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                statementTexts.Add(commandText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (query.EnableTotalRecordCount) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commandText = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (EnableGroupByPresentationUniqueKey(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    commandText += " select count (distinct PresentationUniqueKey)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    commandText += " select count (guid)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commandText += GetJoinUserDataText(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commandText += whereTextWithoutPaging; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                statementTexts.Add(commandText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             using (var connection = CreateConnection(true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var statements = connection.PrepareAll(string.Join(";", statementTexts.ToArray())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 using (WriteLock.Read()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var totalRecordCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    using (var statement = connection.PrepareStatement(commandText)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!isReturningZeroItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        using (var statement = statements[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            statement.TryBind("@UserId", query.User.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                statement.TryBind("@UserId", query.User.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        BindSimilarParams(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BindSimilarParams(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // Running this again will bind the params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        GetWhereClauses(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Running this again will bind the params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GetWhereClauses(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        foreach (var row in statement.ExecuteQuery()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            list.Add(row[0].ReadGuid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            foreach (var row in statement.ExecuteQuery()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                list.Add(row[0].ReadGuid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    commandText = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (EnableGroupByPresentationUniqueKey(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        commandText += " select count (distinct PresentationUniqueKey)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        commandText += " select count (guid)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    commandText += GetJoinUserDataText(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    commandText += whereTextWithoutPaging; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    using (var statement = connection.PrepareStatement(commandText)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (query.EnableTotalRecordCount) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        using (var statement = statements[statements.Count - 1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            statement.TryBind("@UserId", query.User.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (EnableJoinUserData(query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                statement.TryBind("@UserId", query.User.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        BindSimilarParams(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            BindSimilarParams(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // Running this again will bind the params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        GetWhereClauses(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Running this again will bind the params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GetWhereClauses(query, statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        totalRecordCount = statement.ExecuteQuery().SelectScalarInt().First(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            totalRecordCount = statement.ExecuteQuery().SelectScalarInt().First(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     LogQueryTime("GetItemIds", commandText, now); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4875,13 +4916,29 @@ namespace Emby.Server.Implementations.Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var list = new List<Tuple<BaseItem, ItemCounts>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var count = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var statementTexts = new List<string>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!isReturningZeroItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                statementTexts.Add(commandText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (query.EnableTotalRecordCount) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var countText = "select count (distinct PresentationUniqueKey)" + GetFromText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                countText += GetJoinUserDataText(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                countText += whereText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                statementTexts.Add(countText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             using (var connection = CreateConnection(true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 using (WriteLock.Read()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var statements = connection.PrepareAll(string.Join(";", statementTexts.ToArray())).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!isReturningZeroItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        using (var statement = connection.PrepareStatement(commandText)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        using (var statement = statements[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             statement.TryBind("@SelectType", returnType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (EnableJoinUserData(query)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4919,7 +4976,7 @@ namespace Emby.Server.Implementations.Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         commandText += GetJoinUserDataText(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         commandText += whereText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        using (var statement = connection.PrepareStatement(commandText)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        using (var statement = statements[statements.Count - 1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             statement.TryBind("@SelectType", returnType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (EnableJoinUserData(query)) 
			 |