/pools: make autocomplete use index.
`name ilike ?` doesn't use the index. Use `lower(name) like ?` instead.
This commit is contained in:
@@ -45,9 +45,9 @@ class Pool < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def name_matches(name)
|
def name_matches(name)
|
||||||
name = name.tr(" ", "_")
|
name = normalize_name_for_search(name)
|
||||||
name = "*#{name}*" unless 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
|
end
|
||||||
|
|
||||||
def search(params)
|
def search(params)
|
||||||
@@ -139,6 +139,10 @@ class Pool < ActiveRecord::Base
|
|||||||
name.gsub(/\s+/, "_")
|
name.gsub(/\s+/, "_")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.normalize_name_for_search(name)
|
||||||
|
normalize_name(name).mb_chars.downcase
|
||||||
|
end
|
||||||
|
|
||||||
def self.normalize_post_ids(post_ids, unique)
|
def self.normalize_post_ids(post_ids, unique)
|
||||||
hoge = post_ids.scan(/\d+/)
|
hoge = post_ids.scan(/\d+/)
|
||||||
if unique
|
if unique
|
||||||
|
|||||||
Reference in New Issue
Block a user