module Db2Query::Logger

Public Instance Methods

log(sql, binds = [], args = []) { || ... } click to toggle source
# File lib/db2_query/logger.rb, line 15
def log(sql, binds = [], args = [], &block)
  instrument(
    "sql.active_record",
    sql:               sql,
    name:              "SQL",
    binds:             binds,
    type_casted_binds: args,
    statement_name:    nil,
    connection_id:     object_id,
    connection:        self) do
    synchronize do
      yield
    end
  rescue => e
    raise translate_exception_class(e, sql, binds)
  end
end
translate_exception(exception, message:, sql:, binds:) click to toggle source
# File lib/db2_query/logger.rb, line 33
def translate_exception(exception, message:, sql:, binds:)
  case exception
  when RuntimeError
    exception
  else
    StatementInvalid.new(message, sql: sql, binds: binds)
  end
end
translate_exception_class(e, sql, binds) click to toggle source
# File lib/db2_query/logger.rb, line 5
def translate_exception_class(e, sql, binds)
  message = "#{e.class.name}: #{e.message}"

  exception = translate_exception(
    e, message: message, sql: sql, binds: binds
  )
  exception.set_backtrace e.backtrace
  exception
end