diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-08-02 08:32:18 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-08-02 08:32:18 +0000 |
commit | d4723bb05ff43a4c6e282b12249c71697f7929ce (patch) | |
tree | cb74d5b98211bf095b34eb08fda3c8382183b8e1 /app | |
parent | df1093a4afd5799bef71143582646840174a615c (diff) | |
download | redmine-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.rb | 10 |
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) |