Class: DataMapper::Adapters::PostgresqlAdapter

Inherits:
DataObjectAdapter show all
Defined in:
lib/data_mapper/adapters/postgresql_adapter.rb

Defined Under Namespace

Modules: Mappings

Constant Summary collapse

TABLE_QUOTING_CHARACTER =
'"'.freeze
COLUMN_QUOTING_CHARACTER =
'"'.freeze

Constants inherited from DataObjectAdapter

DataObjectAdapter::FIND_OPTIONS, DataObjectAdapter::MAGIC_PROPERTIES, DataObjectAdapter::SYNTAX, DataObjectAdapter::TYPES

Instance Method Summary collapse

Methods inherited from DataObjectAdapter

#activate!, #activated?, #batch_insertable?, #callback, #column_exists_for_table?, #connection, #create, #delete, #empty_insert_sql, #execute, #flush_connections!, #get, #handle_error, inherited, #initialize, #load, #query, #save, #save_without_validation, #schema, #table, #transaction, #update, #update_magic_properties

Methods inherited from AbstractAdapter

#delete, #get, #index_path, #initialize, #load, #logger, #name, #save

Constructor Details

This class inherits a constructor from DataMapper::Adapters::DataObjectAdapter

Instance Method Details

#create_connectionObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/data_mapper/adapters/postgresql_adapter.rb', line 30

def create_connection
  connection_string = ""
  builder = lambda do |k,v|
    connection_string << "#{k}=#{@configuration.send(v)} " unless
      @configuration.send(v).blank?
  end
  builder['host', :host]
  builder['user', :username]
  builder['password', :password]
  builder['dbname', :database]
  builder['socket', :socket]
  builder['port', :port]
  conn = DataObject::Postgres::Connection.new(connection_string.strip)
  conn.logger = self.logger
  conn.open

  unless schema_search_path.empty?
    execute("SET search_path TO #{schema_search_path}")
  end

  return conn
end

#database_column_nameObject



53
54
55
# File 'lib/data_mapper/adapters/postgresql_adapter.rb', line 53

def database_column_name
  "TABLE_CATALOG"
end

#schema_search_pathObject



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/data_mapper/adapters/postgresql_adapter.rb', line 18

def schema_search_path
  @schema_search_path || @schema_search_path = begin
    if @configuration.schema_search_path
      @configuration.schema_search_path.split(',').map do |part|
        part.blank? ? nil : part.strip.ensure_wrapped_with("'")
      end.compact
    else
      []
    end
  end
end