maz
Paginator Cursor Missing Items
I have a query containing a relatively complicated join and there are 85 items total.
Strangely, after sending the second after cursor no more items return(Paginator never returns more than 60 items).
This is the query:
defp list_media_items_by_channel_slug_query(channel_slug, :feed) do
from(m in MediaItem,
join: con in ContentMediaItems,
on: m.id == con.media_item_id,
join: chan in assoc(con, :channel),
where: chan.slug == ^channel_slug,
preload: [:mediaitemartifacts],
order_by: [{:desc, :inserted_at}]
)
end
Called like:
%{entries: entries, metadata: metadata} =
Repo.paginate(
query,
include_total_count: true,
after: after_cursor,
sort_direction: sort_direction,
cursor_fields: cursor_fields,
limit: 30
)
The first cursor returns another 30, but the second cursor returns nothing, but when I get the full list there are 85 items(so the cursor should return 25, but actually returns 0).
Repo.all(query) # returns 85
I’m baffled. The 25 items are there but I don’t get them returned?
Elixir 1.16.1 (compiled with Erlang/OTP 26)
ecto 3.11.2
paginator, 1.1.0
Marked As Solved
maz
I found a fix, and you led me down the trail, thanks.
cursor_fields: [:inserted_at, :title],
If I use these two columns, it gives the paginator enough to work with and I receive the correct result sets. I think a lot of the inserted_at dates are too similar.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #hex
- #security









