class ActiveRecord::Associations::AliasTracker

def self.create(pool, initial_table, joins, aliases = nil)

:nodoc:
Keeps track of table aliases for ActiveRecord::Associations::JoinDependency
def self.create(pool, initial_table, joins, aliases = nil)
  pool.with_connection do |connection|
    if joins.empty?
      aliases ||= Hash.new(0)
    elsif aliases
      default_proc = aliases.default_proc || proc { 0 }
      aliases.default_proc = proc { |h, k|
        h[k] = initial_count_for(connection, k, joins) + default_proc.call(h, k)
      }
    else
      aliases = Hash.new { |h, k|
        h[k] = initial_count_for(connection, k, joins)
      }
    end
    aliases[initial_table] = 1
    new(connection.table_alias_length, aliases)
  end
end