luckyframework/avram

Support for CURSOR

开放

#1,008 创建于 2024年3月6日

 (0 条评论) (0 个反应) (0 位负责人)Crystal (67 个派生)auto 404
feature requesthacktoberfest

仓库指标

星标
 (180 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

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.

贡献者指南