aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-10-18 23:52:07 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-10-18 23:52:07 +0000
commit328ef3feaad4c110a7277e3432e9203c7fbbb9e2 (patch)
tree30337b862f5752c5a2f76c123abf28d94140bc4c /activerecord/lib/active_record
parent311342d8e231f8429e270dce2b1bf4abeb7b4293 (diff)
downloadrails-328ef3feaad4c110a7277e3432e9203c7fbbb9e2.tar.gz
rails-328ef3feaad4c110a7277e3432e9203c7fbbb9e2.tar.bz2
rails-328ef3feaad4c110a7277e3432e9203c7fbbb9e2.zip
Parenthesize :conditions
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2681 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
-rwxr-xr-xactiverecord/lib/active_record/associations.rb4
-rw-r--r--activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb4
-rw-r--r--activerecord/lib/active_record/associations/has_many_association.rb8
-rw-r--r--activerecord/lib/active_record/associations/has_one_association.rb2
-rwxr-xr-xactiverecord/lib/active_record/base.rb4
5 files changed, 12 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb
index cf015f89db..87080bf0da 100755
--- a/activerecord/lib/active_record/associations.rb
+++ b/activerecord/lib/active_record/associations.rb
@@ -296,8 +296,8 @@ module ActiveRecord
options.assert_valid_keys(
:foreign_key, :class_name, :exclusively_dependent, :dependent,
:conditions, :order, :finder_sql, :counter_sql,
- :before_add, :after_add, :before_remove, :after_remove
- )
+ :before_add, :after_add, :before_remove, :after_remove
+ )
association_name, association_class_name, association_class_primary_key_name =
associate_identification(association_id, options[:class_name], options[:foreign_key])
diff --git a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
index 04774fa28a..1fab50418a 100644
--- a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
@@ -41,7 +41,7 @@ module ActiveRecord
else
conditions = "#{@finder_sql}"
if sanitized_conditions = sanitize_sql(options[:conditions])
- conditions << " AND #{sanitized_conditions}"
+ conditions << " AND (#{sanitized_conditions})"
end
options[:conditions] = conditions
options[:joins] = @join_sql
@@ -141,7 +141,7 @@ module ActiveRecord
@finder_sql = @options[:finder_sql]
else
@finder_sql = "#{@join_table}.#{@association_class_primary_key_name} = #{@owner.quoted_id} "
- @finder_sql << " AND #{interpolate_sql(@options[:conditions])}" if @options[:conditions]
+ @finder_sql << " AND (#{interpolate_sql(@options[:conditions])})" if @options[:conditions]
end
@join_sql = "LEFT JOIN #{@join_table} ON #{@association_class.table_name}.#{@association_class.primary_key} = #{@join_table}.#{@association_foreign_key}"
diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb
index 114f84ed5d..f5f27dc410 100644
--- a/activerecord/lib/active_record/associations/has_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_many_association.rb
@@ -26,7 +26,7 @@ module ActiveRecord
records = @association_class.find_by_sql(@finder_sql)
else
sql = @finder_sql
- sql += " AND #{sanitize_sql(runtime_conditions)}" if runtime_conditions
+ sql += " AND (#{sanitize_sql(runtime_conditions)})" if runtime_conditions
orderings ||= @options[:order]
records = @association_class.find_all(sql, orderings, limit, joins)
end
@@ -45,7 +45,7 @@ module ActiveRecord
@association_class.count_by_sql(@finder_sql)
else
sql = @finder_sql
- sql += " AND #{sanitize_sql(runtime_conditions)}" if runtime_conditions
+ sql += " AND (#{sanitize_sql(runtime_conditions)})" if runtime_conditions
@association_class.count(sql)
end
end
@@ -137,7 +137,7 @@ module ActiveRecord
@finder_sql = interpolate_sql(@options[:finder_sql])
else
@finder_sql = "#{@association_class.table_name}.#{@association_class_primary_key_name} = #{@owner.quoted_id}"
- @finder_sql << " AND #{interpolate_sql(@conditions)}" if @conditions
+ @finder_sql << " AND (#{interpolate_sql(@conditions)})" if @conditions
end
if @options[:counter_sql]
@@ -147,7 +147,7 @@ module ActiveRecord
@counter_sql = interpolate_sql(@options[:counter_sql])
else
@counter_sql = "#{@association_class.table_name}.#{@association_class_primary_key_name} = #{@owner.quoted_id}"
- @counter_sql << " AND #{interpolate_sql(@conditions)}" if @conditions
+ @counter_sql << " AND (#{interpolate_sql(@conditions)})" if @conditions
end
end
end
diff --git a/activerecord/lib/active_record/associations/has_one_association.rb b/activerecord/lib/active_record/associations/has_one_association.rb
index 1ff67ff70a..18f84ee98f 100644
--- a/activerecord/lib/active_record/associations/has_one_association.rb
+++ b/activerecord/lib/active_record/associations/has_one_association.rb
@@ -66,6 +66,8 @@ module ActiveRecord
def construct_sql
@finder_sql = "#{@association_class.table_name}.#{@association_class_primary_key_name} = #{@owner.quoted_id}#{@options[:conditions] ? " AND " + @options[:conditions] : ""}"
+ @finder_sql << " AND (#{sanitize_sql(@options[:conditions])})" if @options[:conditions]
+ @finder_sql
end
end
end
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 58f884595c..5d594c61a6 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -893,8 +893,8 @@ module ActiveRecord #:nodoc:
condition_segments = [scope_constraints[:conditions]]
condition_segments << sanitize_sql(conditions) unless conditions.nil?
condition_segments << type_condition unless descends_from_active_record?
- condition_segments.compact!
- sql << "WHERE #{condition_segments.join(" AND ")} " unless condition_segments.empty?
+ condition_segments.compact!
+ sql << "WHERE (#{condition_segments.join(") AND (")}) " unless condition_segments.empty?
end
def type_condition