aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/finder_test.rb
diff options
context:
space:
mode:
authorJohn Devine <johnjdevine@gmail.com>2008-05-03 22:49:18 -0500
committerMichael Koziarski <michael@koziarski.com>2008-05-06 21:47:10 +1200
commit8ded457b1b31b157d6fe89b553749579e5ac4a27 (patch)
tree9c9c4689ad1f9efe952b737bbf45eb9455237901 /activerecord/test/cases/finder_test.rb
parentfbebdb0c091c37b0bc75ab774d187d8bc8795bd2 (diff)
downloadrails-8ded457b1b31b157d6fe89b553749579e5ac4a27.tar.gz
rails-8ded457b1b31b157d6fe89b553749579e5ac4a27.tar.bz2
rails-8ded457b1b31b157d6fe89b553749579e5ac4a27.zip
Added logic to associations.rb to make sure select_for_limited_ids
includes joins that are needed to reach tables listed in the :order or :conditions options if they are not joined directly to the main active_record table. Signed-off-by: Michael Koziarski <michael@koziarski.com> [#109 state:resolved]
Diffstat (limited to 'activerecord/test/cases/finder_test.rb')
-rw-r--r--activerecord/test/cases/finder_test.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb
index b7f87fe6e8..2acfe9b387 100644
--- a/activerecord/test/cases/finder_test.rb
+++ b/activerecord/test/cases/finder_test.rb
@@ -8,6 +8,7 @@ require 'models/entrant'
require 'models/developer'
require 'models/post'
require 'models/customer'
+require 'models/job'
class FinderTest < ActiveRecord::TestCase
fixtures :companies, :topics, :entrants, :developers, :developers_projects, :posts, :comments, :accounts, :authors, :customers
@@ -857,6 +858,14 @@ class FinderTest < ActiveRecord::TestCase
Company.connection.select_rows("SELECT id, name FROM companies WHERE id IN (1,2,3) ORDER BY id").map! {|i| i.map! {|j| j.to_s unless j.nil?}}
end
+ def test_find_with_order_on_included_associations_with_construct_finder_sql_for_association_limiting_and_is_distinct
+ assert_equal 2, Post.find(:all,:include=>{:authors=>:author_address},:order=>' author_addresses.id DESC ', :limit=>2).size
+
+ assert_equal 3, Post.find(:all,:include=>{:author=>:author_address,:authors=>:author_address},
+ :order=>' author_addresses_authors.id DESC ', :limit=>3).size
+ end
+
+
protected
def bind(statement, *vars)
if vars.first.is_a?(Hash)