[Dbix-class] Re: [CDBI] Aggregate functions in Sweet?

Matt S Trout dbix-class at trout.me.uk
Mon Sep 19 18:29:43 CEST 2005

On Mon, Sep 19, 2005 at 10:09:11AM -0400, Michael Peters wrote:
> > For example, I have a table "class" which is a class taught at some
> > "location", and locations have_a "region" like "North" or "South".
> > 
> >     my $region = $class->location->region;
> >     print $region->name;
> > 
> > So, now I want to have a list of regions, and show how many classes
> > are available in each region.  A reasonable need.
> Completely reasonable, but not CDBI is not the right tool for that kind
> of job. Any kind of reporting or aggregation is best done with straight
> SQL/DBI. I sometimes like to include this methods in my data classes
> that are CDBI based, but you might want to separate them.

Class::DBI::View doesn't do a bad job, and if you used that and either the
AbstractSearch and DeepAbstractSearch plugins you could get at least the
Abstract-isation that way.

I've been thinking about adding support in DBIx::Class for more than one
resultset against a table (bearing in mind that dbic orients itself around
resultset/row more than table/record) such that you could define e.g.

(mainview, default)

SELECT foo, bar, baz, quux FROM tbl WHERE ...


SELECT foo, COUNT(baz) FROM tbl WHERE ... GROUP BY foo



etc. etc. with an API like


rather than the primitive


Suggestions and use-cases are very welcome; I've cross-posted this reply
to the dbix-class list so we can have a record of it over there as well.

     Matt S Trout       Specialists in perl consulting, web development, and
  Technical Director    UNIX/Linux systems architecture and automation. Mail
Shadowcat Systems Ltd.  mst (at) shadowcatsystems.co.uk for more information

 + Help us build a better perl ORM: http://dbix-class.shadowcatsystems.co.uk/ +

More information about the Dbix-class mailing list