class ActiveRecord::ConnectionAdapters::MysqlAdapter::StatementPool - activerecord-4.2.4 Documentation

# class ActiveRecord::ConnectionAdapters::MysqlAdapter::StatementPool

### Public Class Methods

new(connection, max = 1000) click to toggle source
Calls superclass method ActiveRecord::ConnectionAdapters::StatementPool.new

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 72
    def initialize(connection, max = 1000)
      super
      @cache = Hash.new { |h,pid| h[pid] = {} }
    end

### Public Instance Methods

[](key) click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 79
    def [](key);      cache[key]; end

[]=(sql, key) click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 83
    def []=(sql, key)
      while @max <= cache.size
        cache.shift.last[:stmt].close
      end
      cache[sql] = key
    end

clear() click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 90
    def clear
      cache.each_value do |hash|
        hash[:stmt].close
      end
      cache.clear
    end

delete(key) click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 81
    def delete(key);  cache.delete(key); end

each(&block) click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 77
    def each(&block); cache.each(&block); end

key?(key) click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 78
    def key?(key);    cache.key?(key); end

length() click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 80
    def length;       cache.length; end

### Private Instance Methods

cache() click to toggle source

    # File lib/active_record/connection_adapters/mysql_adapter.rb, line 98
    def cache
      @cache[Process.pid]
    end