@@ -301,7 +301,7 class Query < ActiveRecord::Base | |||||
301 | # custom field |
|
301 | # custom field | |
302 | db_table = CustomValue.table_name |
|
302 | db_table = CustomValue.table_name | |
303 | db_field = 'value' |
|
303 | db_field = 'value' | |
304 |
sql << "#{Issue.table_name}.id IN (SELECT #{ |
|
304 | sql << "#{Issue.table_name}.id IN (SELECT #{Issue.table_name}.id FROM #{Issue.table_name} LEFT OUTER JOIN #{db_table} ON #{db_table}.customized_type='Issue' AND #{db_table}.customized_id=#{Issue.table_name}.id AND #{db_table}.custom_field_id=#{$1} WHERE " | |
305 | else |
|
305 | else | |
306 | # regular field |
|
306 | # regular field | |
307 | db_table = Issue.table_name |
|
307 | db_table = Issue.table_name | |
@@ -320,9 +320,9 class Query < ActiveRecord::Base | |||||
320 | when "!" |
|
320 | when "!" | |
321 | sql = sql + "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" |
|
321 | sql = sql + "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" | |
322 | when "!*" |
|
322 | when "!*" | |
323 | sql = sql + "#{db_table}.#{db_field} IS NULL" |
|
323 | sql = sql + "#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} = ''" | |
324 | when "*" |
|
324 | when "*" | |
325 | sql = sql + "#{db_table}.#{db_field} IS NOT NULL" |
|
325 | sql = sql + "#{db_table}.#{db_field} IS NOT NULL AND #{db_table}.#{db_field} <> ''" | |
326 | when ">=" |
|
326 | when ">=" | |
327 | sql = sql + "#{db_table}.#{db_field} >= #{v.first.to_i}" |
|
327 | sql = sql + "#{db_table}.#{db_field} >= #{v.first.to_i}" | |
328 | when "<=" |
|
328 | when "<=" |
@@ -23,7 +23,7 class QueryTest < Test::Unit::TestCase | |||||
23 | def test_query_with_multiple_custom_fields |
|
23 | def test_query_with_multiple_custom_fields | |
24 | query = Query.find(1) |
|
24 | query = Query.find(1) | |
25 | assert query.valid? |
|
25 | assert query.valid? | |
26 |
assert query.statement.include?(" |
|
26 | assert query.statement.include?("#{CustomValue.table_name}.value IN ('MySQL')") | |
27 | issues = Issue.find :all,:include => [ :assigned_to, :status, :tracker, :project, :priority ], :conditions => query.statement |
|
27 | issues = Issue.find :all,:include => [ :assigned_to, :status, :tracker, :project, :priority ], :conditions => query.statement | |
28 | assert_equal 1, issues.length |
|
28 | assert_equal 1, issues.length | |
29 | assert_equal Issue.find(3), issues.first |
|
29 | assert_equal Issue.find(3), issues.first |
General Comments 0
You need to be logged in to leave comments.
Login now