Skip to content

[BUG] Case-sensitive filtering of strings with eql is case-insensitive when using Postgres #488

Description

@fabian12943

Hi,

I’ve encountered an issue with the eql filter for strings while using PostgreSQL as the database for my Rails application. The current implementation of the filter_string_eql method does not enforce case-sensitive filtering, which is problematic when exact, case-sensitive matches are required.

Here’s the current implementation of filter_string_eql:

def filter_string_eql(scope, attribute, value, is_not: false)
  clause = { attribute => value }
  is_not ? scope.where.not(clause) : scope.where(clause)
end

Steps to Reproduce:

Given a user record with an email attribute set to test@example.com, a call such as:

filter_string_eql(User.all, :email, ["TEST@example.com"])

unexpectedly includes that record in the resulting scope.

Expected Behavior:

The filter_string_eql method should enforce case-sensitive filtering. In the above example, the method should exclude the record because TEST@example.com is not an exact, case-sensitive match for `test@example.com.

Thank you for investigating this!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugVerified to reproduce; see needs-repro for unconfirmedneeds reproNeeds a reproduction before triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions