|
@@ -2258,6 +2258,24 @@ namespace InABox.Database.SQLite
|
|
|
result.Add(string.Join(", ", combined.Values));
|
|
|
result.Add("FROM");
|
|
|
result.AddRange(tables.Select(x => x.Item3));
|
|
|
+
|
|
|
+ if (range?.Type == CoreRangeType.Database && range.Offset != 0)
|
|
|
+ {
|
|
|
+ var subColumns = Columns.None(T).Add("ID");
|
|
|
+
|
|
|
+ var subQuery = PrepareSelectNonGeneric(T, command, 'A', filter, subColumns, sort, null, null, CoreRange.Database(range.Offset), false, useparams);
|
|
|
+
|
|
|
+ var idColumn = $"{prefix}1.[ID]";
|
|
|
+ var offsetCondition = $"({idColumn} NOT IN ({subQuery}))";
|
|
|
+ if (!condition.IsNullOrWhiteSpace())
|
|
|
+ {
|
|
|
+ condition = $"({offsetCondition} and {condition})";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ condition = offsetCondition;
|
|
|
+ }
|
|
|
+ }
|
|
|
if (!string.IsNullOrWhiteSpace(condition))
|
|
|
{
|
|
|
result.Add("WHERE");
|
|
@@ -2284,11 +2302,11 @@ namespace InABox.Database.SQLite
|
|
|
|
|
|
if (range?.Type == CoreRangeType.Database)
|
|
|
{
|
|
|
- if (range.Offset != 0)
|
|
|
- result.Add($"OFFSET {range.Offset}");
|
|
|
-
|
|
|
if (range.Limit != int.MaxValue)
|
|
|
result.Add($"LIMIT {range.Limit}");
|
|
|
+
|
|
|
+ //if (range.Offset != 0)
|
|
|
+ // result.Add($"OFFSET {range.Offset}");
|
|
|
}
|
|
|
|
|
|
return string.Join(" ", result);
|