Parent

Class/Module Index [+]

Quicksearch

Sequel::Postgres::Adapter

PGconn subclass for connection specific methods used with the pg, postgres, or postgres-pr driver.

Attributes

prepared_statements[R]

Hash of prepared statements for this connection. Keys are string names of the server side prepared statement, and values are SQL strings.

Public Instance Methods

apply_connection_settings() click to toggle source

Apply connection settings for this connection. Current sets the date style to ISO in order make Date object creation in ruby faster, if Postgres.use_iso_date_format is true.

# File lib/sequel/adapters/postgres.rb, line 148
def apply_connection_settings
  super
  if Postgres.use_iso_date_format
    sql = "SET DateStyle = 'ISO'"
    execute(sql)
  end
  @prepared_statements = {} if SEQUEL_POSTGRES_USES_PG
end
check_disconnect_errors() click to toggle source

Raise a Sequel::DatabaseDisconnectError if a PGError is raised and the connection status cannot be determined or it is not OK.

# File lib/sequel/adapters/postgres.rb, line 159
def check_disconnect_errors
  begin
    yield
  rescue PGError =>e
    disconnect = false
    begin
      s = status
    rescue PGError
      disconnect = true
    end
    status_ok = (s == Adapter::CONNECTION_OK)
    disconnect ||= !status_ok
    disconnect ||= e.message =~ DISCONNECT_ERROR_RE
    disconnect ? raise(Sequel.convert_exception_class(e, Sequel::DatabaseDisconnectError)) : raise
  ensure
    block if status_ok
  end
end
execute(sql, args=nil) click to toggle source

Execute the given SQL with this connection. If a block is given, yield the results, otherwise, return the number of changed rows.

# File lib/sequel/adapters/postgres.rb, line 180
def execute(sql, args=nil)
  q = check_disconnect_errors{@db.log_yield(sql, args){args ? async_exec(sql, args) : async_exec(sql)}}
  begin
    block_given? ? yield(q) : q.cmd_tuples
  ensure
    q.clear if q
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.