Class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
In: lib/active_record/connection_adapters/postgresql_adapter.rb
Parent: AbstractAdapter

The PostgreSQL adapter works both with the native C (ruby.scripting.ca/postgres/) and the pure Ruby (available both as gem and from rubyforge.org/frs/?group_id=234&release_id=1944) drivers.

Options:

  • :host - Defaults to "localhost".
  • :port - Defaults to 5432.
  • :username - Defaults to nothing.
  • :password - Defaults to nothing.
  • :database - The name of the database. No default, must be provided.
  • :schema_search_path - An optional schema search path for the connection given as a string of comma-separated schema names. This is backward-compatible with the :schema_order option.
  • :encoding - An optional client encoding that is used in a SET client_encoding TO <encoding> call on the connection.
  • :min_messages - An optional client min messages that is used in a SET client_min_messages TO <min_messages> call on the connection.
  • :allow_concurrency - If true, use async query methods so Ruby threads don‘t deadlock; otherwise, use blocking query methods.

Methods

Constants

ADAPTER_NAME = 'PostgreSQL'.freeze
NATIVE_DATABASE_TYPES = { :primary_key => "serial primary key".freeze, :string => { :name => "character varying", :limit => 255 }, :text => { :name => "text" }, :integer => { :name => "integer" }, :float => { :name => "float" }, :decimal => { :name => "decimal" }, :datetime => { :name => "timestamp" }, :timestamp => { :name => "timestamp" }, :time => { :name => "time" }, :date => { :name => "date" }, :binary => { :name => "bytea" }, :boolean => { :name => "boolean" }
PQTRANS_IDLE = defined?(PGconn::PQTRANS_IDLE) ? PGconn::PQTRANS_IDLE : 0   ruby-pg defines Ruby constants for transaction status, ruby-postgres does not.

Public Class methods

Initializes and connects a PostgreSQL adapter.

Public Instance methods

Is this connection alive and ready for queries?

Returns ‘PostgreSQL’ as adapter name for identification purposes.

Adds a new column to the named table. See TableDefinition#column for details of the options you can use.

Changes the default value of a table column.

Returns the current client message level.

Set the client message level.

Returns the list of all column definitions for a table.

Create a new PostgreSQL database. Options include :owner, :template, :encoding, :tablespace, and :connection_limit (note that MySQL uses :charset while PostgreSQL uses :encoding).

Example:

  create_database config[:database], config
  create_database 'foo_development', :encoding => 'unicode'

Returns the current database name.

Close the connection.

Returns the current database encoding format.

Escapes binary strings for bytea input to the database.

Executes an SQL statement, returning a PGresult object on success or raising a PGError exception otherwise.

Returns the list of all indexes for a table.

Executes an INSERT query and returns the new record‘s ID

Close then reopen the connection.

Drops an index from a table.

Returns the active schema search path.

Sets the schema search path to a string of comma-separated schema names. Names beginning with $ have to be quoted (e.g. $user => ’$user’). See: www.postgresql.org/docs/current/static/ddl-schemas.html

This should be not be called manually but set in database.yml.

Executes a SELECT query and returns an array of rows. Each row is an array of field values.

Does PostgreSQL support migrations?

Does PostgreSQL support standard conforming strings?

Returns the configured supported identifier length supported by PostgreSQL, or report the default of 63 on PostgreSQL 7.x.

Returns the list of all tables in the schema search path or a specified schema.

Wrap a block in a transaction. Returns result of block.

Check whether a transaction is active.

Maps logical Rails types to PostgreSQL-specific data types.

Unescapes bytea output from a database to the binary string it represents. NOTE: This is NOT an inverse of escape_bytea! This is only to be used

      on escaped binary output from database drive.

Executes an UPDATE query and returns the number of affected tuples.

Protected Instance methods

Returns the version of the connected PostgreSQL version.

[Validate]