class Pgtk::Pool::Txn

A temporary class to execute a single SQL request.

Public Class Methods

new(conn, log) click to toggle source
# File lib/pgtk/pool.rb, line 134
def initialize(conn, log)
  @conn = conn
  @log = log
end

Public Instance Methods

exec(query, args = [], result = 0) { |res| ... } click to toggle source
# File lib/pgtk/pool.rb, line 139
def exec(query, args = [], result = 0)
  start = Time.now
  sql = query.is_a?(Array) ? query.join(' ') : query
  out = @conn.exec_params(sql, args, result) do |res|
    if block_given?
      yield res
    else
      rows = []
      res.each { |r| rows << r }
      rows
    end
  end
  lag = Time.now - start
  if lag < 1
    @log.debug("#{sql}: #{(lag * 1000).round}ms / #{@conn.object_id}")
  else
    @log.info("#{sql}: #{format('%.02f', lag)}s")
  end
  out
end