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

Improve index usability for Project#project_condition (#38198).

Patch by Holger Just.


git-svn-id: https://svn.redmine.org/redmine/trunk@22069 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2023-01-21 08:50:12 +00:00
parent 9d65eee424
commit 0558568257

View File

@ -329,15 +329,17 @@ class Project < ActiveRecord::Base
# Returns a :conditions SQL string that can be used to find the issues associated with this project.
#
# Examples:
# project.project_condition(true) => "(projects.id = 1 OR (projects.lft > 1 AND projects.rgt < 10))"
# project.project_condition(true) => "(projects.lft >= 1 AND projects.rgt <= 10)"
# project.project_condition(false) => "projects.id = 1"
def project_condition(with_subprojects)
cond = "#{Project.table_name}.id = #{id}"
if with_subprojects
cond = "(#{cond} OR (#{Project.table_name}.lft > #{lft} AND " \
"#{Project.table_name}.rgt < #{rgt}))"
"(" \
"#{Project.table_name}.lft >= #{lft} AND " \
"#{Project.table_name}.rgt <= #{rgt}" \
")"
else
"#{Project.table_name}.id = #{id}"
end
cond
end
def self.find(*args)