summaryrefslogtreecommitdiff
path: root/lib/gitlab/pagination/keyset/order.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/pagination/keyset/order.rb')
-rw-r--r--lib/gitlab/pagination/keyset/order.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/gitlab/pagination/keyset/order.rb b/lib/gitlab/pagination/keyset/order.rb
index 1a00692bdbe..290e94401b8 100644
--- a/lib/gitlab/pagination/keyset/order.rb
+++ b/lib/gitlab/pagination/keyset/order.rb
@@ -99,6 +99,8 @@ module Gitlab
field_value.strftime('%Y-%m-%d %H:%M:%S.%N %Z')
elsif field_value.nil?
nil
+ elsif lower_named_function?(column_definition)
+ field_value.downcase
else
field_value.to_s
end
@@ -184,6 +186,10 @@ module Gitlab
private
+ def lower_named_function?(column_definition)
+ column_definition.column_expression.is_a?(Arel::Nodes::NamedFunction) && column_definition.column_expression.name&.downcase == 'lower'
+ end
+
def composite_row_comparison_possible?
!column_definitions.one? &&
column_definitions.all?(&:not_nullable?) &&