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 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 column to a table.

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.

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]