]> source.dussan.org Git - redmine.git/commitdiff
Cast as decimal(30,0) instead of integer (#21249).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 14 Jan 2017 12:37:16 +0000 (12:37 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 14 Jan 2017 12:37:16 +0000 (12:37 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@16197 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/query.rb

index 640db190d730c1ad7614e442d35cc34003954868..7a70af620200467e177ed934ad44dd129371e3cb 100644 (file)
@@ -976,7 +976,7 @@ class Query < ActiveRecord::Base
     "#{queried_table_name}.id #{not_in} IN (" +
       "SELECT customized_id FROM #{CustomValue.table_name}" +
       " WHERE customized_type='#{queried_class}' AND custom_field_id=#{custom_field_id}" +
-      "  AND value <> '' AND CAST(value AS integer) IN (" +
+      "  AND CAST(CASE value WHEN '' THEN '0' ELSE value END AS decimal(30,0)) IN (" +
       "  SELECT customized_id FROM #{CustomValue.table_name}" +
       "  WHERE customized_type='#{target_class}' AND custom_field_id=#{chained_custom_field_id}" +
       "  AND #{sql_for_field(field, operator, value, CustomValue.table_name, 'value')}))"
@@ -998,7 +998,7 @@ class Query < ActiveRecord::Base
     "#{queried_table_name}.id #{not_in} IN (" +
       "SELECT customized_id FROM #{CustomValue.table_name}" +
       " WHERE customized_type='#{queried_class}' AND custom_field_id=#{custom_field_id}" +
-      "  AND value <> '' AND CAST(value AS integer) IN (" +
+      "  AND CAST(CASE value WHEN '' THEN '0' ELSE value END AS decimal(30,0)) IN (" +
       "  SELECT id FROM #{target_table_name} WHERE #{sql_for_field(field, operator, value, filter[:field].format.target_class.table_name, attribute)}))"
   end