Retire old keyset pagination code in GraphQL
The new_graphql_keyset_pagination
feature flag is enabled on production which uses the new keyset pagination library when it's possible to infer the order configuration automatically from the given ActiveRecord
scope. We use the SimpleOrderBuilder
class for this.
The goal is to retire and later delete the old keyset pagination code under lib/gitlab/graphql/pagination/keyset/
. There are specific ORDER BY
clauses which are not supported automatically by the new keyset pagination library.
The work can be split into two issues:
- Extend
SimpleOrderBuilder
to support moreORDER BY
clauses which are supported by the old library.- NULLS LAST ordering
- CASE ordering
-
array_position
ordering
- Update the existing AR scopes to use the custom Order syntax: https://docs.gitlab.com/ee/development/database/keyset_pagination.html#complex-order-configuration