/pools: make autocomplete use index.

`name ilike ?` doesn't use the index. Use `lower(name) like ?` instead.
This commit is contained in:
evazion
2017-03-30 13:17:49 -05:00
parent 85a39cadf0
commit bb2f0ff795

View File

@@ -45,9 +45,9 @@ class Pool < ActiveRecord::Base
end
def name_matches(name)
name = name.tr(" ", "_")
name = normalize_name_for_search(name)
name = "*#{name}*" unless name =~ /\*/
where("name ilike ? escape E'\\\\'", name.to_escaped_for_sql_like)
where("lower(name) like ? escape E'\\\\'", name.to_escaped_for_sql_like)
end
def search(params)
@@ -139,6 +139,10 @@ class Pool < ActiveRecord::Base
name.gsub(/\s+/, "_")
end
def self.normalize_name_for_search(name)
normalize_name(name).mb_chars.downcase
end
def self.normalize_post_ids(post_ids, unique)
hoge = post_ids.scan(/\d+/)
if unique