aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/alias_tracker.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-10-07 17:29:45 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-10-08 22:12:42 +0900
commit8ad8bbaef8c4f521f292765a02ddb91e48160366 (patch)
treec74e15683649661d3340c4f0a15c148ab8b9c6c5 /activerecord/lib/active_record/associations/alias_tracker.rb
parente695086248290b186bd72134583a331d40645427 (diff)
downloadrails-8ad8bbaef8c4f521f292765a02ddb91e48160366.tar.gz
rails-8ad8bbaef8c4f521f292765a02ddb91e48160366.tar.bz2
rails-8ad8bbaef8c4f521f292765a02ddb91e48160366.zip
Decouple building `AliasTracker` from `JoinDependency`
This is preparation to respect parent relation's alias tracking for fixing #30681.
Diffstat (limited to 'activerecord/lib/active_record/associations/alias_tracker.rb')
-rw-r--r--activerecord/lib/active_record/associations/alias_tracker.rb14
1 files changed, 4 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/associations/alias_tracker.rb b/activerecord/lib/active_record/associations/alias_tracker.rb
index 096f016976..358cdabc7f 100644
--- a/activerecord/lib/active_record/associations/alias_tracker.rb
+++ b/activerecord/lib/active_record/associations/alias_tracker.rb
@@ -6,22 +6,16 @@ module ActiveRecord
module Associations
# Keeps track of table aliases for ActiveRecord::Associations::JoinDependency
class AliasTracker # :nodoc:
- def self.create(connection, initial_table)
- aliases = Hash.new(0)
- aliases[initial_table] = 1
- new(connection, aliases)
- end
-
- def self.create_with_joins(connection, initial_table, joins)
+ def self.create(connection, initial_table, joins)
if joins.empty?
- create(connection, initial_table)
+ aliases = Hash.new(0)
else
aliases = Hash.new { |h, k|
h[k] = initial_count_for(connection, k, joins)
}
- aliases[initial_table] = 1
- new(connection, aliases)
end
+ aliases[initial_table] = 1
+ new(connection, aliases)
end
def self.initial_count_for(connection, name, table_joins)