diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-06-22 16:08:07 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-06-22 16:08:07 -0400 |
| commit | 461e9b2cddb829e47420fddc373c795523b3375e (patch) | |
| tree | 799bc3cdc805b56cf6ef0dca4a20caa2d0ee6cda | |
| parent | b0ed7ef0a3b78483291a742b5c333fce802e3f80 (diff) | |
rework query paging
| -rw-r--r-- | MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs | 68 |
1 files changed, 43 insertions, 25 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 152781aff..992a0a2cf 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -123,7 +123,7 @@ namespace MediaBrowser.Server.Implementations.Persistence protected override async Task<IDbConnection> CreateConnection(bool isReadOnly = false) { - var connection = await DbConnector.Connect(DbFilePath, false, false, 5000).ConfigureAwait(false); + var connection = await DbConnector.Connect(DbFilePath, false, false, 10000).ConfigureAwait(false); connection.RunQueries(new[] { @@ -1780,13 +1780,16 @@ namespace MediaBrowser.Server.Implementations.Persistence if (query.Limit.HasValue || query.StartIndex.HasValue) { - var limit = query.Limit ?? int.MaxValue; + var offset = query.StartIndex ?? 0; - cmd.CommandText += " LIMIT " + limit.ToString(CultureInfo.InvariantCulture); + if (query.Limit.HasValue || offset > 0) + { + cmd.CommandText += " LIMIT " + (query.Limit ?? int.MaxValue).ToString(CultureInfo.InvariantCulture); + } - if (query.StartIndex.HasValue) + if (offset > 0) { - cmd.CommandText += " OFFSET " + query.StartIndex.Value.ToString(CultureInfo.InvariantCulture); + cmd.CommandText += " OFFSET " + offset.ToString(CultureInfo.InvariantCulture); } } @@ -1883,13 +1886,16 @@ namespace MediaBrowser.Server.Implementations.Persistence if (query.Limit.HasValue || query.StartIndex.HasValue) { - var limit = query.Limit ?? int.MaxValue; + var offset = query.StartIndex ?? 0; - cmd.CommandText += " LIMIT " + limit.ToString(CultureInfo.InvariantCulture); + if (query.Limit.HasValue || offset > 0) + { + cmd.CommandText += " LIMIT " + (query.Limit ?? int.MaxValue).ToString(CultureInfo.InvariantCulture); + } - if (query.StartIndex.HasValue) + if (offset > 0) { - cmd.CommandText += " OFFSET " + query.StartIndex.Value.ToString(CultureInfo.InvariantCulture); + cmd.CommandText += " OFFSET " + offset.ToString(CultureInfo.InvariantCulture); } } @@ -2096,13 +2102,16 @@ namespace MediaBrowser.Server.Implementations.Persistence if (query.Limit.HasValue || query.StartIndex.HasValue) { - var limit = query.Limit ?? int.MaxValue; + var offset = query.StartIndex ?? 0; - cmd.CommandText += " LIMIT " + limit.ToString(CultureInfo.InvariantCulture); + if (query.Limit.HasValue || offset > 0) + { + cmd.CommandText += " LIMIT " + (query.Limit ?? int.MaxValue).ToString(CultureInfo.InvariantCulture); + } - if (query.StartIndex.HasValue) + if (offset > 0) { - cmd.CommandText += " OFFSET " + query.StartIndex.Value.ToString(CultureInfo.InvariantCulture); + cmd.CommandText += " OFFSET " + offset.ToString(CultureInfo.InvariantCulture); } } @@ -2153,13 +2162,16 @@ namespace MediaBrowser.Server.Implementations.Persistence if (query.Limit.HasValue || query.StartIndex.HasValue) { - var limit = query.Limit ?? int.MaxValue; + var offset = query.StartIndex ?? 0; - cmd.CommandText += " LIMIT " + limit.ToString(CultureInfo.InvariantCulture); + if (query.Limit.HasValue || offset > 0) + { + cmd.CommandText += " LIMIT " + (query.Limit ?? int.MaxValue).ToString(CultureInfo.InvariantCulture); + } - if (query.StartIndex.HasValue) + if (offset > 0) { - cmd.CommandText += " OFFSET " + query.StartIndex.Value.ToString(CultureInfo.InvariantCulture); + cmd.CommandText += " OFFSET " + offset.ToString(CultureInfo.InvariantCulture); } } @@ -2243,13 +2255,16 @@ namespace MediaBrowser.Server.Implementations.Persistence if (query.Limit.HasValue || query.StartIndex.HasValue) { - var limit = query.Limit ?? int.MaxValue; + var offset = query.StartIndex ?? 0; - cmd.CommandText += " LIMIT " + limit.ToString(CultureInfo.InvariantCulture); + if (query.Limit.HasValue || offset > 0) + { + cmd.CommandText += " LIMIT " + (query.Limit ?? int.MaxValue).ToString(CultureInfo.InvariantCulture); + } - if (query.StartIndex.HasValue) + if (offset > 0) { - cmd.CommandText += " OFFSET " + query.StartIndex.Value.ToString(CultureInfo.InvariantCulture); + cmd.CommandText += " OFFSET " + offset.ToString(CultureInfo.InvariantCulture); } } @@ -3700,13 +3715,16 @@ namespace MediaBrowser.Server.Implementations.Persistence if (query.Limit.HasValue || query.StartIndex.HasValue) { - var limit = query.Limit ?? int.MaxValue; + var offset = query.StartIndex ?? 0; - cmd.CommandText += " LIMIT " + limit.ToString(CultureInfo.InvariantCulture); + if (query.Limit.HasValue || offset > 0) + { + cmd.CommandText += " LIMIT " + (query.Limit ?? int.MaxValue).ToString(CultureInfo.InvariantCulture); + } - if (query.StartIndex.HasValue) + if (offset > 0) { - cmd.CommandText += " OFFSET " + query.StartIndex.Value.ToString(CultureInfo.InvariantCulture); + cmd.CommandText += " OFFSET " + offset.ToString(CultureInfo.InvariantCulture); } } |
