Re: [Dbix-class] select specific columns on resultset

2013-04-11 Thread Jess Robinson


Can you show us the complete piece of code for the search/output, and the  
class definitions? That trace looks like you first asked for Id only,  
and then later did another query, or called a relation method on the  
result .


This code:

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

foreach my $row (@recs) {
  print $row-Name;
}

Should output undefs (or possibly a warning that you didnt fetch that  
column, I forget).


Jess

On Wed, 10 Apr 2013 10:25:14 +0100, max maxt...@gmail.com wrote:


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

my @recs=$self-db-resultset($self-table)-search({},{columns = [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 =  
'124' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'125' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'126' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'127' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'135' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'136' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'146' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'150' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'177' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'184' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'192' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id =  
'193' )

67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '124' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '125' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '126' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '127' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '135' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '136' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '146' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '150' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '177' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '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+d...@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=$row-id;
 my $name=$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 = [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=1 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




--
Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

___
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: 

Re: [Dbix-class] select specific columns on resultset

2013-04-10 Thread max
Ok, sorry, I copied the wrong example, I tried with:

my @recs=$self-db-resultset($self-table)-search({},{columns = [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 = '124' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '125' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '126' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '127' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '135' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '136' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '146' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '150' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '177' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '184' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '192' )
67 Query SELECT me.Name FROM ReportTemplates me WHERE ( me.id = '193' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '124' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '125' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '126' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '127' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '135' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '136' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '146' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '150' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '177' )
67 Query SELECT me.id, me.OperationId, me.Name, me.Description,
me.Content, me.lastLogin, me.prevLogin FROM ReportTemplates me WHERE (
me.id= '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+d...@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=$row-id;
  my $name=$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 = [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=1 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

___
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

Re: [Dbix-class] select specific columns on resultset

2013-04-09 Thread Peter Rabbitson
On Tue, Apr 09, 2013 at 03:19:07PM +0200, max wrote:
 Hi all,
 I'm new to DBIx, I'm trying to retrieve only a subset of columns from a
 result set:
 
 my @recs=$self-db-resultset($self-table)-search({},{columns = [qw/ id
 Name OperationId Name /],},)-all;
 

The above looks correct

 but the result contains all the columns,

How did you determine this?

Also what does the DBIC_TRACE=1 look like?

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


Re: [Dbix-class] select specific columns on resultset

2013-04-09 Thread Peter Rabbitson
On Tue, Apr 09, 2013 at 03:19:07PM +0200, max wrote:
 I'm new to DBIx,

It is DBIx::Class (or DBIC for short). There are hundreds of unrelated 
modules in the DBIx:: namespace.

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


Re: [Dbix-class] select specific columns on resultset

2013-04-09 Thread max
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=$row-id;
my $name=$row-Name;
print MYFILE recs name: $name, id: $id\n\n;
}

and I can see the Name element for example. 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 ?

2013/4/9 Peter Rabbitson rabbit+d...@rabbit.us

 On Tue, Apr 09, 2013 at 03:19:07PM +0200, max wrote:
  Hi all,
  I'm new to DBIx, I'm trying to retrieve only a subset of columns from a
  result set:
 
  my @recs=$self-db-resultset($self-table)-search({},{columns = [qw/
 id
  Name OperationId Name /],},)-all;
 

 The above looks correct

  but the result contains all the columns,

 How did you determine this?

 Also what does the DBIC_TRACE=1 look like?

 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

___
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

Re: [Dbix-class] select specific columns on resultset

2013-04-09 Thread Peter Rabbitson
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=$row-id;
 my $name=$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 = [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=1 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