Class::DBI::Sweet::PieでCOUNT DISTINCTできない?

CPAN

Class::DBI::Plugin::AggregateFunction-0.01
Class::DBI::Sweet::Pie-0.03

がアップされたのでさっそくいじってみる。

非常に便利だ。次から使おう。

それはそうと作者のブログでCOUNT DISTINCTもサポートしてるポ的なことが書いてあったので試してみた。

package HogeTable;

use base qw/Class::DBI/;
use Class::DBI::Plugin::AggregateFunction;

__PACKAGE__->table('btest');
__PACKAGE__->columns('All' => qw/id name/);
__PACKAGE__->mk_aggregate_function('count');

print HogeTable->count('distinct id');

おお、COUNT DISTINCTでけた!
で、次にClass::DBI::Sweet::Pieでやってみたんですがエラー発生。

DBD::Pg::st execute failed: ERROR:  syntax error at or near "id" at character 73 [for Statement "  SELECT
 count( me.distinct id )
  FROM   btest me
  WHERE  1=1
"] at F:/Perl/site/lib/DBIx/ContextualFetch.pm line 52.

カラムの先頭にmeが勝手に付くので「me.distict id」みたいになってしまいCOUNT DISTINCTができない・・・

まぁでもこれはSweetの問題なんで仕方ないのかな。
何はともあれ今までみたいにset_sqlしてSQL::Abstract使ってごにょごにょやってたのをmk_aggregate_functionを呼ぶだけで出来るようになるのでかなり便利だということです。


#2006-04-20 追記

Class::DBI::Sweet::Pie-0.04にバージョンアップされているようです。
COUNT DISTINCTできるようになってます。GJ!