[Dbix-class] Prefetch and From

Jess Robinson castaway at desert-island.me.uk
Thu Jan 22 08:07:53 GMT 2009


You can:

   select => [ 'myrel.othercol', ..
   as => ['somename' , ..

or even:
   as => ['myrel.somecol', .. which work like prefetch

Jess


On Tue, 06 Jan 2009 09:20:25 -0000, Martinc <martin.j.clayton at gmail.com>  
wrote:

>
> Thanks.  I think I tried that (of course I don't have any notes...)
>
> There didn't appear to be a way to get fields from joined tables  
> referred to
> using select/as to inflate.
>
>
> Hu Hailin wrote:
>>
>> Hi, Martin
>>
>> 2) select/as could help, but not convenient. and also i think you knew
>> it already.
>>
>> On Tue, Dec 23, 2008 at 8:10 PM, Martinc <martin.j.clayton at gmail.com>
>> wrote:
>>>
>>> First post ... be gentle.
>>>
>>> I've resorted to using DBIx::Class::ResultSet 'from' in a search.
>>> There's an outer join with an IN list in an ON clause.
>>> Being greedy, I want to prefetch too.
>>>
>>> The only way I've got it to 'work' is to violate encapsulation and not
>>> respect the privacy of the module as follows:
>>>
>>>  my $rs = $result_set->search(
>>>    {
>>>      ... criteria ...
>>>    },
>>>    {
>>>      prefetch => ... entities to prefetch ...
>>>    }
>>>  );
>>>  $rs->_resolved_attrs();
>>>  $rs->{_attrs}->{from} = ... manual FROM clause ...
>>>
>>>  while ( $rs->next )
>>>  {
>>>    ...
>>>  }
>>>
>>> The manual 'from' clause ensures all the prefetched tables are included
>>> as
>>> specified in prefetch.
>>>
>>> Questions:
>>>
>>> 1) Is there a way to mix prefetch and manual 'from' that does not  
>>> require
>>> the hack above.
>>> 2) I don't need all the columns in the underlying (nested) tables, can  
>>> I
>>> prefetch a subset of columns?
>>>
>>> Version is 0.08009.
>>>
>>> Regards,
>>>
>>> Martin.
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/Prefetch-and-From-tp1693458p1693458.html
>>> Sent from the DBIx-Class mailing list archive at Nabble.com.
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>
>>
>>
>> --
>> islue
>>
>> _______________________________________________
>> 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/



More information about the DBIx-Class mailing list