提交 b4ec9904 编写于 作者: M Michael Koziarski

Cache the descends_from_activerecord? call to speed up query generation. [skaes] Closes #9765


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7723 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 eb5033ad
......@@ -907,6 +907,11 @@ def descends_from_active_record?
end
end
def finder_needs_type_condition? #:nodoc:
# This is like this because benchmarking justifies the strange :false stuff
:true == (@finder_needs_type_condition ||= descends_from_active_record? ? :false : :true)
end
# Returns a string like 'Post id:integer, title:string, body:text'
def inspect
if self == Base
......@@ -1199,9 +1204,9 @@ def add_conditions!(sql, conditions, scope = :auto)
segments = []
segments << sanitize_sql(scope[:conditions]) if scope && !scope[:conditions].blank?
segments << sanitize_sql(conditions) unless conditions.blank?
segments << type_condition unless descends_from_active_record?
segments.compact!
sql << "WHERE (#{segments.join(") AND (")}) " unless segments.all?(&:blank?)
segments << type_condition if finder_needs_type_condition?
segments.delete_if{|s| s.blank?}
sql << "WHERE (#{segments.join(") AND (")}) " unless segments.empty?
end
def type_condition
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册