luckyframework/avram

Support for CURSOR

Aberta

#1.008 aberto em 6 de mar. de 2024

 (0 comentário) (0 reação) (0 responsável)Crystal (67 forks)auto 404
feature requesthacktoberfest

Métricas do repositório

Stars
 (180 estrelas)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

A CURSOR would allow us to paginate really large collections.

I've never implemented or even really used these directly, but I found this example

-- We must be in a transaction
BEGIN;
-- Open a cursor for a query
DECLARE medley_cur CURSOR FOR SELECT * FROM medley;
-- Retrieve ten rows
FETCH 10 FROM medley_cur;
-- ...
-- Retrieve ten more from where we left off
FETCH 10 FROM medley_cur;
-- All done
COMMIT;

I honestly have no clue how this will work, but I think we would probably want some alternate method of iterating that appends the cursor to the query?

UserQuery.new.each_with_cursor(fetch: 10) do |user|
  #??
end

UserQuery.new.cursor_fetch(10).each do |user|

end

If anyone has any ideas around this, I'm open.

Guia do colaborador