[Dbix-class] MySql distinct count fix
Anthony Gladdish
a.j.gladdish at newcastle.ac.uk
Mon Jun 8 11:09:24 GMT 2009
Hi Peter,
>-----Original Message-----
>From: Peter Rabbitson [mailto:rabbit+dbic at rabbit.us]
>Sent: 07 June 2009 22:22
>To: DBIx::Class user and developer list
>Subject: [Dbix-class] MySql distinct count fix
>
>Anthony Gladdish wrote:
>> Hi,
>>
>> Using DBIC v0.08102_07.
>>
>> My Result class relationships:
>>
>> 1. Course.pm
>> 2. Event.pm:
>> __PACKAGE__->belongs_to( 'course' => 'Course', 'based_on' );
>>
>> My test:
>>
>> my $search;
>> push( @$search, ('me.code', { 'like', '%i1%' } ) );
>> my $rs = $schema->resultset('Event')->search(
>> {
>> -or => $search,
>> },
>> {
>> distinct => 1,
>> prefetch => 'course',
>> }
>> );
>> is $rs->count, 1, '$rs ok';
>>
>> Fails with:
>>
>> DBIx::Class::ResultSet::count(): DBI Exception: DBD::mysql::st execute
>failed: Duplicate column name 'id' [for Statement "SELECT COUNT( * )
>FROM (SELECT me.id, me.code, me.start, me.hours, me.end, me.leader,
>me.based_on, me.attend_max, me.created_by, me.attend_min, me.RT_ticket,
>me.status, me.created, me.location, me.price_1, me.price_2, me.price_3,
>me.price_4, me.price_5, course.id, course.title, course.topics,
>course.tasks, course.prerequisites, course.overview, course.target,
>course.quotes, course.code, course.hours, course.sub_title,
>course.further_tasks, course.short_desc, course.shorter_desc FROM event
>me JOIN event_defaults course ON course.id = me.based_on WHERE
>( me.code LIKE ? ) GROUP BY me.id, me.code, me.start, me.hours, me.end,
>me.leader, me.based_on, me.attend_max, me.created_by, me.attend_min,
>me.RT_ticket, me.status, me.created, me.location, me.price_1, me.price_2,
>me.price_3, me.price_4, me.price_5, course.id, course.title,
>course.topics, course.tasks, cou
>rse.prerequisites, course.overview, course.target, course.quotes,
>course.code, course.hours, course.sub_title, course.further_tasks,
>course.short_desc, course.shorter_desc) count_subq" with ParamValues:
>0='%i1%']
>>
>> Passes, if I comment out either "distinct" or "prefetch" but this is
>undesired.
>>
>> Am I doing anything wrong?
>> Has this been fixed in a newer RC yet that I can test?
>>
>
>Fixed in http://dev.catalyst.perl.org/svnweb/bast/revision/?rev=6537
>
Have just tested this against my own libraries and they all pass.
Do you know when this will be released on cpan?
Thanks for your help!
Anthony
More information about the DBIx-Class
mailing list