Class: Pgtk::Pool::Txn
- Inherits:
-
Object
- Object
- Pgtk::Pool::Txn
- Defined in:
- lib/pgtk/pool.rb
Overview
A temporary class to execute a single SQL request.
Instance Method Summary collapse
- #exec(query, args = [], result = 0) ⇒ Object
-
#initialize(conn, log) ⇒ Txn
constructor
A new instance of Txn.
Constructor Details
#initialize(conn, log) ⇒ Txn
Returns a new instance of Txn.
134 135 136 137 |
# File 'lib/pgtk/pool.rb', line 134 def initialize(conn, log) @conn = conn @log = log end |
Instance Method Details
#exec(query, args = [], result = 0) ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# 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 |