fix: properly strip extra record requested to detect more? pages.

This commit is contained in:
Zach Daniel 2023-11-13 13:18:12 -05:00
parent 173f4ae5ad
commit 1470696a73
3 changed files with 4 additions and 14 deletions

View file

@ -2715,12 +2715,7 @@ defmodule Ash.Actions.Read do
Ash.Query.ensure_selected(query, field)
end)
limited =
if query.limit in [0, 1] do
query
else
Ash.Query.limit(query, limit(opts[:limit], query.limit, pagination) + 1)
end
limited = Ash.Query.limit(query, limit(opts[:limit], query.limit, pagination) + 1)
if opts[:before] || opts[:after] do
reversed =
@ -2771,12 +2766,7 @@ defmodule Ash.Actions.Read do
end
defp limit_offset_pagination(query, pagination, opts) do
limited =
if query.limit in [0, 1] do
query
else
Ash.Query.limit(query, limit(opts[:limit], query.limit, pagination) + 1)
end
limited = Ash.Query.limit(query, limit(opts[:limit], query.limit, pagination) + 1)
with_offset =
if opts[:offset] do

View file

@ -11,7 +11,7 @@ defmodule Ash.Page.Keyset do
def new(results, count, _sort, original_query, more?, opts) do
%__MODULE__{
results: results,
results: Enum.take(results, (original_query.limit || 1) - 1),
count: count,
before: opts[:page][:before],
after: opts[:page][:after],

View file

@ -11,7 +11,7 @@ defmodule Ash.Page.Offset do
def new(results, count, original_query, more?, opts) do
%__MODULE__{
results: results,
results: Enum.take(results, (original_query.limit || 1) - 1),
limit: opts[:page][:limit],
count: count,
offset: opts[:page][:offset] || 0,