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

active? adapter_name add_column begin_db_transaction change_column change_column_default change_column_null client_min_messages client_min_messages= columns commit_db_transaction create_database disconnect! execute indexes insert new postgresql_version reconnect! remove_index rename_column rename_table rollback_db_transaction schema_search_path schema_search_path= select_rows supports_migrations? supports_standard_conforming_strings? table_alias_length tables type_to_sql update_sql

### Public Class methods

new(connection, logger, connection_parameters, config)

Initializes and connects a PostgreSQL adapter.

### Public Instance methods

active?()

Is this connection alive and ready for queries?

adapter_name()

Returns ‘PostgreSQL’ as adapter name for identification purposes.

add_column(table_name, column_name, type, options = {})

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

begin_db_transaction()

Begins a transaction.

change_column(table_name, column_name, type, options = {})

Changes the column of a table.

change_column_default(table_name, column_name, default)

Changes the default value of a table column.

change_column_null(table_name, column_name, null, default = nil)
client_min_messages()

Returns the current client message level.

client_min_messages=(level)

Set the client message level.

columns(table_name, name = nil)

Returns the list of all column definitions for a table.

commit_db_transaction()

Commits a transaction.

create_database(name, options = {})

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'

disconnect!()

Close the connection.

execute(sql, name = nil)

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

indexes(table_name, name = nil)

Returns the list of all indexes for a table.

insert(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)

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

reconnect!()

Close then reopen the connection.

remove_index(table_name, options = {})

Drops an index from a table.

rename_column(table_name, column_name, new_column_name)

Renames a column in a table.

rename_table(name, new_name)

Renames a table.

rollback_db_transaction()

Aborts a transaction.

schema_search_path()

Returns the active schema search path.

schema_search_path=(schema_csv)

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.

select_rows(sql, name = nil)

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

supports_migrations?()

Does PostgreSQL support migrations?

supports_standard_conforming_strings?()

Does PostgreSQL support standard conforming strings?

table_alias_length()

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

tables(name = nil)

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

type_to_sql(type, limit = nil, precision = nil, scale = nil)

Maps logical Rails types to PostgreSQL-specific data types.

update_sql(sql, name = nil)

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

### Protected Instance methods

postgresql_version()

Returns the version of the connected PostgreSQL version.

[Validate]