linuxsupport wrote:
Thanks for the reply.I have something like my $rs = $schema->resultset('Article')->search( { "me.id <http://me.id>" => 1 }, { join => [ {arti_author => "author"}, {arti_comnt => "comments"}, ], select => [qw/ me.create_date author.author_name comments.comment comments.comment_date comments.name <http://comments.name> /], as => [ qw/ created author comment comment_date commented_by / ] } );How can I use prefetch to simplify it?
You can't - prefetch is something that you use when you need complete related (but distinct) result objects fetched at once. What you are doing instead is abandoning the strict separation and mixing data from several sources into one data object (which kinda defeats part of the purpose of DBIC). So no - you can not use prefetch here, as it has a different design endgoal. My advice is to stop thinking in SQL (I have N tables from which I retrieve M columns) and instead think in interrelated row objects. When you do in fact run across a bottleneck - we'll be happy to help you optimize a particular query, but doing what you show above as a general rule is largely missing the point of DBIC. Hope this helps, 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/[email protected]
