1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-01-31 11:37:14 +00:00

"has been" and "has never been" filter operators can be very slow (#38527, #38788).

Patch by Go MAEDA.


git-svn-id: https://svn.redmine.org/redmine/trunk@22271 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2023-06-30 09:40:23 +00:00
parent 66f16ff348
commit bb3662894e

View File

@ -1458,11 +1458,13 @@ class Query < ActiveRecord::Base
" AND " +
queried_class.send(:sanitize_sql_for_conditions, ["#{JournalDetail.table_name}.old_value IN (?)", value.map(&:to_s)]) +
")"
if %w[ev !ev].include?(operator)
subquery <<
sql_ev =
if %w[ev !ev].include?(operator)
" OR " + queried_class.send(:sanitize_sql_for_conditions, ["#{db_table}.#{db_field} IN (?)", value.map(&:to_s)])
end
sql = "#{neg} EXISTS (#{subquery})"
else
''
end
sql = "#{neg} (EXISTS (#{subquery})#{sql_ev})"
else
sql = '1=0'
end