has_many with :finder_sql returns [nil]?

Is it supposed to do that? I find it very confusing.

AR 3.0.10

class Unit   has_many :units, :finder_sql => proc {     "SELECT * FROM `#{table_name}` WHERE `location_id`=#{id} AND `location_type`=#{Location::UNIT}" } end

Both should return . However...

Unit.first.units.find([1000000])

[2011-09-27 10:05:11|main|debug] Unit Load (4.0ms) SELECT `units`.* FROM `units` LIMIT 1 [2011-09-27 10:05:11|main|debug] Unit Load (3.0ms) SELECT * FROM `units` WHERE `location_id`=1 AND `location_type`=3 => [nil]

Unit.first.units.find([1000000, 10])

[2011-09-27 10:05:19|main|debug] Unit Load (7.0ms) SELECT `units`.* FROM `units` LIMIT 1 [2011-09-27 10:05:19|main|debug] Unit Load (2.0ms) SELECT * FROM `units` WHERE `location_id`=1 AND `location_type`=3 =>