[Dbix-class] SQL::Abstract regression?

Peter Rabbitson rabbit+dbic at rabbit.us
Mon Jul 13 17:05:11 GMT 2009


On Mon, Jul 13, 2009 at 12:18:04PM -0400, Rob Kinyon wrote:
> On Mon, Jul 13, 2009 at 12:11, Paul Makepeace<paulm at paulm.com> wrote:
> > On Mon, Jul 13, 2009 at 11:03 AM, Rob Kinyon<rob.kinyon at gmail.com> wrote:
> >> On Mon, Jul 13, 2009 at 11:52, Paul Makepeace<paulm at paulm.com> wrote:
> >> [snip]
> >>> specifically, FROM (SELECT COUNT( publication_story.uid ) AS
> >>> story_count, ... looks wrong. Or should I update my code somehow?
> >>>
> >>> This error coincides with upgrading to latest DBIx::Class today.
> >>
> >> What do you expect to see?
> >
> > My question is what do _you_ expect to see?
> >
> >   select => [{ count => 'publication_story.uid' }, ...
> >   as => [qw/story_count ...
> >
> > I would fairly reasonably expect to produce SELECT
> > COUNT(publication_story.uid) AS story_count and not have that appear
> > in the FROM clause (?!)
> >
> > This has been working until today when I upgraded, so a recent version
> > of $module has broken this.
> 
> Note: I have no idea what you used to get, so that's why I asked what
> you expected. I don't have your query in my app, so I have no idea
> what you are using this for. And, frankly, I don't have time to parse
> a 100-term query to figure out the one thing that broke. If you tell
> me what you think you should get, you get better answers.
> 
> Problem: as => doesn't actually affect the SQL. It only provides
> $row->get_column('story_count'), not "COUNT(publication_story.uid) AS
> story_count"
> 

This is not entirely true - I use the supplied as in this case in order
to alias the internal count to the outside subquery (i.e. I need a name
to select the function result on the outside). I could have just
generated identifiers, but using the pre-supplied as seemed like a
reasonably good idea.



More information about the DBIx-Class mailing list