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.
140 141 142 143 |
# File 'lib/pgtk/pool.rb', line 140 def initialize(conn, log) @conn = conn @log = log end |
Instance Method Details
#exec(query, args = [], result = 0) ⇒ Object
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/pgtk/pool.rb', line 145 def exec(query, args = [], result = 0) start = Time.now sql = query.is_a?(Array) ? query.join(' ') : query begin out = @conn.exec_params(sql, args, result) do |res| if block_given? yield res else res.each.to_a end end rescue StandardError => e @log.error("#{sql}: #{e.}") raise e 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 |