aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-06-22 16:08:07 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-06-22 16:08:07 -0400
commit461e9b2cddb829e47420fddc373c795523b3375e (patch)
tree799bc3cdc805b56cf6ef0dca4a20caa2d0ee6cda
parentb0ed7ef0a3b78483291a742b5c333fce802e3f80 (diff)
rework query paging
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs68
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);
}
}