class ScopedSearch::QueryBuilder::MysqlAdapter

The MysqlAdapter makes sure that case sensitive comparisons are used when using the (not) equals operator, regardless of the field's collation setting.

Public Instance Methods

sql_operator(operator, field) click to toggle source

Patches the default sql_operator method to add BINARY after the equals and not equals operator to force case-sensitive comparisons.

# File lib/scoped_search/query_builder.rb, line 439
def sql_operator(operator, field)
  if [:ne, :eq].include?(operator) && field.textual?
    "#{SQL_OPERATORS[operator]} BINARY"
  else
    super(operator, field)
  end
end