diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2022-09-26 21:44:36 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2022-09-26 21:44:36 +0000 |
commit | 898b8311a63279ae10f6cc38ebf5c7f872a8ee25 (patch) | |
tree | f541c0ca128bc0203df71068f3375302d0dd215d | |
parent | 25e7011b7fd43e8ddd08f540043835980bfc541b (diff) | |
download | redmine-898b8311a63279ae10f6cc38ebf5c7f872a8ee25.tar.gz redmine-898b8311a63279ae10f6cc38ebf5c7f872a8ee25.zip |
Merge r21833 to 4.2-stable (#37268).
git-svn-id: https://svn.redmine.org/redmine/branches/4.2-stable@21848 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/query.rb | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/app/models/query.rb b/app/models/query.rb index 03754ccfd..fc8a44a77 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -1151,12 +1151,13 @@ class Query < ActiveRecord::Base if /[<>]/.match?(operator) where = "(#{where}) AND #{db_table}.#{db_field} <> ''" end - "#{queried_table_name}.#{customized_key} #{not_in} IN (" \ - "SELECT #{customized_class.table_name}.id FROM #{customized_class.table_name}" \ + "#{not_in} EXISTS (" \ + "SELECT ct.id FROM #{customized_class.table_name} ct" \ " LEFT OUTER JOIN #{db_table} ON #{db_table}.customized_type='#{customized_class}'" \ - " AND #{db_table}.customized_id=#{customized_class.table_name}.id" \ + " AND #{db_table}.customized_id=ct.id" \ " AND #{db_table}.custom_field_id=#{custom_field_id}" \ - " WHERE (#{where}) AND (#{filter[:field].visibility_by_project_condition}))" + " WHERE #{queried_table_name}.#{customized_key} = ct.id AND " \ + " (#{where}) AND (#{filter[:field].visibility_by_project_condition}))" end def sql_for_chained_custom_field(field, operator, value, custom_field_id, chained_custom_field_id) |