rows_logger
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:ActiveRecord plugin for writing rows count information in query log
RowsLogger
==========

This plugin offers rich information about result sets to AR logs.


Usage
=====

Just enjoy Rails as usual.


Example
=======

Consider some read operations like this.

  Member.count
  Member.find(:all)

That usually makes following log.

  SQL (0.000300)   SELECT count(*) AS count_all FROM members
  Member Load (0.000482)   SELECT * FROM members

RowsLogger appends information about rows count to the log.

  SQL (0.000301) (1 Row)   SELECT count(*) AS count_all FROM members
  Member Load (0.000415) (3 Rows)   SELECT * FROM members


For Developpers
===============

This plugin modfies following methods.
  'ConnectionAdapters::AbstractAdapter#log'
  'ConnectionAdapters::AbstractAdapter#log_info'


ConnectionAdapters::AbstractAdapter#log
  --> log_info(sql, name, seconds)


ConnectionAdapters::AbstractAdapter#log
  --> log_info(sql, name, seconds, result = nil)
        --> log_result_info(result)
              --> ConcreteAdapter#count_result(result)



ConnectionAdapters::MysqlAdapter#count_result
  protected
  def count_result(result)
    result.num_rows
  end


Count Result Method
===================

The 'count_result' method of Adapter class should return count of result set
from 'result' object, where 'result' is an object generated by 'log' method.
This is used as result information.

For exmaple, although this is nonsencial definition,

  def count_result(result)
    0
  end

this code always appends "(0 Rows)" to the log. The returned value is directly
used even if it is not a numeric value. But no information will be appended
in following cases.

1) when 'count_result' method returns nil
2) when 'count_result' method is not defined in current adapter


Note
====

'count_result' method should be defined as 'protected' or 'public' because
we check whether it is implemented or not in current adapter by using
'respond_to?' method.


Supported Databases
===================

Currently these databases are supported.

* PostgreSQL
* MySQL


For Other Databases
===================

Put a new adapter file that contains 'count_result' method for
your database adapter into adatpers directory.


Copyright (c) 2008 maiha@wota.jp, released under the MIT license


本源码包内暂不包含可直接显示的源代码文件,请下载源码包。