Class | Sequel::Adapter
In: | lib/sequel/adapters/postgres.rb
Parent: | ::PGconn

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

### Methods

apply_connection_settings check_disconnect_errors execute

### Included Modules

Sequel::Postgres::AdapterMethods

### Constants

DISCONNECT_ERROR_RE | = | /\Acould not receive data from server: Software caused connection abort/

### 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()

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.

[Source]

         # File lib/sequel/adapters/postgres.rb, line 148
    148:       def apply_connection_settings
    149:         super
    150:         if Postgres.use_iso_date_format
    151:           sql = "SET DateStyle = 'ISO'"
    152:           execute(sql)
    153:         end
    154:         @prepared_statements = {} if SEQUEL_POSTGRES_USES_PG
    155:       end

check_disconnect_errors() {|| ...}

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

[Source]

         # File lib/sequel/adapters/postgres.rb, line 159
    159:       def check_disconnect_errors
    160:         begin
    161:           yield
    162:         rescue PGError =>e
    163:           disconnect = false
    164:           begin
    165:             s = status
    166:           rescue PGError
    167:             disconnect = true
    168:           end
    169:           status_ok = (s == Adapter::CONNECTION_OK)
    170:           disconnect ||= !status_ok
    171:           disconnect ||= e.message =~ DISCONNECT_ERROR_RE
    172:           disconnect ? raise(Sequel.convert_exception_class(e, Sequel::DatabaseDisconnectError)) : raise
    173:         ensure
    174:           block if status_ok
    175:         end
    176:       end

execute(sql, args=nil) {|q| ...}

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

[Source]

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

[Validate]