123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::StatementPool

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: ActiveRecord::ConnectionAdapters::StatementPool
Defined in: activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb

Constant Summary

::ActiveRecord::ConnectionAdapters::StatementPool - Inherited

DEFAULT_STATEMENT_LIMIT

Class Method Summary

Instance Attribute Summary

::Enumerable - Included

#many?

Returns true if the enumerable has more than 1 element.

Instance Method Summary

::ActiveRecord::ConnectionAdapters::StatementPool - Inherited

#[], #[]=, #clear, #delete, #each, #key?, #length,
#reset

Clear the pool without deallocating; this is only safe when we know the server has independently deallocated all statements (e.g.

#cache, #dealloc

::Enumerable - Included

#compact_blank

Returns a new ::Array without the blank items.

#exclude?

The negative of the Enumerable#include?.

#excluding

Returns a copy of the enumerable excluding the specified elements.

#in_order_of

Returns a new ::Array where the order has been set to that provided in the series, based on the key of the objects in the original enumerable.

#including

Returns a new array that includes the passed elements.

#index_by

Convert an enumerable to a hash, using the block result as the key and the element as the value.

#index_with

Convert an enumerable to a hash, using the element as the key and the block result as the value.

#maximum

Calculates the maximum from the extracted elements.

#minimum

Calculates the minimum from the extracted elements.

#pick

Extract the given key from the first element in the enumerable.

#pluck

Extract the given key from each element in the enumerable.

#sole

Returns the sole item in the enumerable.

#without
#as_json

::ActiveSupport::EnumerableCoreExt::Constants - Included

Constructor Details

.new(connection, max) ⇒ StatementPool

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb', line 296

def initialize(connection, max)
  super(max)
  @connection = connection
  @counter = 0
end

Instance Method Details

#dealloc(key) (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb', line 307

def dealloc(key)
  # This is ugly, but safe: the statement pool is only
  # accessed while holding the connection's lock. (And we
  # don't need the complication of with_raw_connection because
  # a reconnect would invalidate the entire statement pool.)
  if conn = @connection.instance_variable_get(:@raw_connection)
    conn.query "DEALLOCATE #{key}" if conn.status == PG::CONNECTION_OK
  end
rescue PG::Error
end

#next_key

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb', line 302

def next_key
  "a#{@counter += 1}"
end