[Dbix-class] select specific columns on resultset

max maxti83 at gmail.com
Wed Apr 10 09:25:14 GMT 2013


Ok, sorry, I copied the wrong example, I tried with:

my @recs=3D$self->db->resultset($self->table)->search({},{columns =3D> [qw/=
 id
/],},)->all;

but I can see the Name column for example in the foreach loop. After some
debugging on mysql I found some stranges:

67 Query     SELECT me.id FROM ReportTemplates me
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '124'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '125'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '126'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '127'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '135'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '136'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '146'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '150'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '177'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '184'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '192'=
 )
67 Query     SELECT me.Name FROM ReportTemplates me WHERE ( me.id =3D '193'=
 )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '124' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '125' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '126' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '127' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '135' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '136' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '146' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '150' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '177' )
67 Query     SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id=3D '184' )

the first query is correct but the others ? I suspect that is not related
with dbix, but why I can see column if I have not specified them ?

thanks

2013/4/10 Peter Rabbitson <rabbit+dbic at rabbit.us>

> On Tue, Apr 09, 2013 at 03:58:53PM +0200, max wrote:
> > Thanks for the answer, this piece of code is inside a perl sub, I tried
> to
> > extract the array elements as:
> >
> > foreach my $row (@recs)
> > {
> > my $id=3D$row->id;
> > my $name=3D$row->Name;
> > print MYFILE "recs name: $name, id: $id\n\n";
> > }
> >
> > and I can see the Name element for example.
>
> Well... you asked for it didn't you? (in fact you asked twice)
>
> > columns =3D> [qw/id Name OperationId Name /]
>
> I am at this point confused what is your problem exactly...
>
> > I tried to insert the DBIC_TRACE
> > in the sub ouputting it to a file but it's always empty (
> > $self->db->storage->debugfh(IO::File->new('file','w'));), is there
> another
> > way to use it ?
>
> When you use it this way you also need to ->storage->debug(1) for things
> to start working. During debugging DBIC_TRACE=3D1 with dump to screen is
> much more common, hence why noone answered quuckly ;)
>
> Cheers
>
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive:
> http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20130410/18e=
1af78/attachment.htm


More information about the DBIx-Class mailing list