Uysim / pagy-cursor

Cursor pagination with pagy for Ruby On Rails
MIT License
126 stars 23 forks source link

Multi column cursor #4

Open ombr opened 5 years ago

ombr commented 5 years ago

Hi,

With a big database, I am using multiple column ordered indexes in order to return item in order. but the limit/offset is not the best thing to do.

I am interested in generating a cursor from multiple columns like this:

  def self.after(cursor = nil)
    query = reorder('created_at DESC, public_id DESC')
    if cursor.present?
      return query.where(
        'cursors.created_at < ? or (cursors.created_at = ? and cursors.public_id < ?)',
        cursor.created_at,
        cursor.created_at,
        cursor.public_id
      )
    end
    query
  end

Do you have plans to do something like this ? I could help.

Uysim commented 5 years ago

@ombr I am happy if you would help in this