Class: ActiveRecord::ConnectionAdapters::PostgreSQLAdapter

Inherits:
AbstractAdapter
  • Object
show all
Includes:
Jdbc::ConnectionPoolCallbacks, ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnDumper, ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting, ActiveRecord::ConnectionAdapters::PostgreSQL::ReferentialIntegrity, ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements, ArJdbc::Abstract::ConnectionManagement, ArJdbc::Abstract::Core, ArJdbc::Abstract::DatabaseStatements, ArJdbc::Abstract::StatementCache, ArJdbc::Abstract::TransactionSupport, ArJdbc::PostgreSQL, ArJdbc::Util::QuotedCache
Defined in:
lib/arjdbc/postgresql/adapter.rb

Constant Summary collapse

OID =

AR expects OID to be available on the adapter

ActiveRecord::ConnectionAdapters::PostgreSQL::OID
ColumnMethods =
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
TableDefinition =
ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition
Table =
ActiveRecord::ConnectionAdapters::PostgreSQL::Table

Constants included from ArJdbc::PostgreSQL

ArJdbc::PostgreSQL::ADAPTER_NAME, ArJdbc::PostgreSQL::NATIVE_DATABASE_TYPES

Constants included from ArJdbc::Abstract::DatabaseStatements

ArJdbc::Abstract::DatabaseStatements::NO_BINDS

Instance Attribute Summary

Attributes included from ArJdbc::Abstract::Core

#config

Instance Method Summary collapse

Methods included from ArJdbc::Util::QuotedCache

#quote_column_name, #quote_table_name

Methods included from ArJdbc::PostgreSQL

#adapter_name, #add_order_by_for_association_limiting!, #all_schemas, #clear_cache!, #client_min_messages, #client_min_messages=, #configure_connection, #default_index_type?, #default_sequence_name, #disable_extension, #enable_extension, #escape_bytea, #exec_insert, #explain, #extension_enabled?, #extensions, #get_advisory_lock, #index_algorithms, #jdbc_column_class, jdbc_connection_class, #last_insert_id_result, #max_identifier_length, #native_database_types, #postgresql_version, #quote_table_name, #release_advisory_lock, #remove_column, #reset!, #session_auth=, #set_client_encoding, #set_standard_conforming_strings, #standard_conforming_strings=, #standard_conforming_strings?, #supports_advisory_locks?, #supports_comments?, #supports_datetime_with_precision?, #supports_ddl_transactions?, #supports_explain?, #supports_expression_index?, #supports_extensions?, #supports_foreign_keys?, #supports_hex_escaped_bytea?, #supports_index_sort_order?, #supports_insert_with_returning?, #supports_json?, #supports_materialized_views?, #supports_partial_index?, #supports_pgcrypto_uuid?, #supports_ranges?, #supports_savepoints?, #supports_standard_conforming_strings?, #supports_transaction_isolation?, #supports_views?, #truncate, #use_insert_returning?, #valid_type?

Methods included from ArJdbc::Abstract::TransactionSupport

#begin_db_transaction, #begin_isolated_db_transaction, #commit_db_transaction, #create_savepoint, #exec_rollback_db_transaction, #exec_rollback_to_savepoint, #release_savepoint, #supports_savepoints?, #supports_transaction_isolation?

Methods included from ArJdbc::Abstract::StatementCache

#clear_cache!, #delete_cached_statement, #fetch_cached_statement, #supports_statement_cache?

Methods included from ArJdbc::Abstract::DatabaseStatements

#exec_insert, #exec_query, #exec_update, #execute, #select_all

Methods included from ArJdbc::Abstract::ConnectionManagement

#active?, #disconnect!, #reconnect!

Methods included from ArJdbc::Abstract::Core

#extract_raw_bind_values, #jdbc_connection, #log, #translate_exception, #translate_exception_class

Methods included from Jdbc::ConnectionPoolCallbacks

#on_checkin, #on_checkout

Constructor Details

#initialize(connection, logger = nil, connection_parameters = nil, config = {}) ⇒ PostgreSQLAdapter

Returns a new instance of PostgreSQLAdapter.



654
655
656
657
658
659
660
661
662
663
664
665
# File 'lib/arjdbc/postgresql/adapter.rb', line 654

def initialize(connection, logger = nil, connection_parameters = nil, config = {})
  # @local_tz is initialized as nil to avoid warnings when connect tries to use it
  @local_tz = nil
  @max_identifier_length = nil

  super(connection, logger, config) # configure_connection happens in super

  initialize_type_map(@type_map = Type::HashLookupTypeMap.new)

  @use_insert_returning = @config.key?(:insert_returning) ?
    self.class.type_cast_config_to_boolean(@config[:insert_returning]) : nil
end

Instance Method Details

#arel_visitorObject

:nodoc:



667
668
669
# File 'lib/arjdbc/postgresql/adapter.rb', line 667

def arel_visitor # :nodoc:
  Arel::Visitors::PostgreSQL.new(self)
end

#create_table_definition(*args) ⇒ Object

:nodoc:



677
678
679
# File 'lib/arjdbc/postgresql/adapter.rb', line 677

def create_table_definition(*args) # :nodoc:
  TableDefinition.new(*args)
end

#jdbc_connection_class(spec) ⇒ Object



691
692
693
# File 'lib/arjdbc/postgresql/adapter.rb', line 691

def jdbc_connection_class(spec)
  ::ArJdbc::PostgreSQL.jdbc_connection_class
end

#schema_creationObject

:nodoc:



683
684
685
# File 'lib/arjdbc/postgresql/adapter.rb', line 683

def schema_creation # :nodoc:
  PostgreSQL::SchemaCreation.new self
end

#update_table_definition(table_name, base) ⇒ Object



687
688
689
# File 'lib/arjdbc/postgresql/adapter.rb', line 687

def update_table_definition(table_name, base)
  Table.new(table_name, base)
end