summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-08-02 08:32:18 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-08-02 08:32:18 +0000
commitd4723bb05ff43a4c6e282b12249c71697f7929ce (patch)
treecb74d5b98211bf095b34eb08fda3c8382183b8e1 /app
parentdf1093a4afd5799bef71143582646840174a615c (diff)
downloadredmine-d4723bb05ff43a4c6e282b12249c71697f7929ce.tar.gz
redmine-d4723bb05ff43a4c6e282b12249c71697f7929ce.zip
Query doesn't work with non ASCII uppercase symbols (#20438).
git-svn-id: http://svn.redmine.org/redmine/trunk@14476 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/models/query.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index b77f76c2e..a232258e0 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -779,9 +779,9 @@ class Query < ActiveRecord::Base
date = Date.today
sql = date_clause(db_table, db_field, date.beginning_of_year, date.end_of_year, is_custom_filter)
when "~"
- sql = "LOWER(#{db_table}.#{db_field}) LIKE '%#{self.class.connection.quote_string(value.first.to_s.downcase)}%'"
+ sql = sql_contains("#{db_table}.#{db_field}", value.first)
when "!~"
- sql = "LOWER(#{db_table}.#{db_field}) NOT LIKE '%#{self.class.connection.quote_string(value.first.to_s.downcase)}%'"
+ sql = sql_contains("#{db_table}.#{db_field}", value.first, false)
else
raise "Unknown query operator #{operator}"
end
@@ -789,6 +789,12 @@ class Query < ActiveRecord::Base
return sql
end
+ # Returns a SQL LIKE statement with wildcards
+ def sql_contains(db_field, value, match=true)
+ value = "'%#{self.class.connection.quote_string(value.to_s)}%'"
+ Redmine::Database.like(db_field, value, :match => match)
+ end
+
# Adds a filter for the given custom field
def add_custom_field_filter(field, assoc=nil)
options = field.format.query_filter_options(field, self)