summaryrefslogtreecommitdiff
path: root/lib/gitlab/pagination/keyset/iterator.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/pagination/keyset/iterator.rb')
-rw-r--r--lib/gitlab/pagination/keyset/iterator.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/gitlab/pagination/keyset/iterator.rb b/lib/gitlab/pagination/keyset/iterator.rb
index 3bc8c0bf616..c6f0014a0f4 100644
--- a/lib/gitlab/pagination/keyset/iterator.rb
+++ b/lib/gitlab/pagination/keyset/iterator.rb
@@ -4,8 +4,12 @@ module Gitlab
module Pagination
module Keyset
class Iterator
- def initialize(scope:, use_union_optimization: false)
- @scope = scope
+ UnsupportedScopeOrder = Class.new(StandardError)
+
+ def initialize(scope:, use_union_optimization: true)
+ @scope, success = Gitlab::Pagination::Keyset::SimpleOrderBuilder.build(scope)
+ raise(UnsupportedScopeOrder, 'The order on the scope does not support keyset pagination') unless success
+
@order = Gitlab::Pagination::Keyset::Order.extract_keyset_order_object(scope)
@use_union_optimization = use_union_optimization
end