[Dbix-class] Fwd: [Catalyst] Selecting from more tables
(DBIC- bug?)
Octavian Rasnita
octavian at fcc.ro
Tue Jan 19 17:22:53 GMT 2010
From: "Ronald J Kimball" <rkimball+dbixclass at pangeamedia.com>
> Thomas L. Shinnick wrote:
>
>> I'm having some of the same questions regarding +select and +as . It
>> seems that using '+select' and '+as' does not stop other columns from
>> being returned. I'm using DBIC 0.08115.
>
> What do you expect +select and +as to do??
>
> +select
>
> Indicates additional columns to be selected from storage. Works
> the same as "select" but adds columns to the selection.
>
> +as
>
> Indicates additional column names for those added via "+select".
> See "as".
>
> +select and +as are behaving exactly as documented. If you want to select
> /only/ the specified columns use select and as, not +select and +as.
>
> Ronald
Hi Ronald,
I am not sure my message will reach the list, because it rejects my messages
as spam, but here is a short test I made:
$ENV{DBIC_TRACE}++;
use BRK::Schema;
my $schema = BRK::Schema->connect("dbi:mysql:database=brk", "root");
my $uuu = $schema->resultset('User')->search({},{
prefetch => {blogs => 'blog_comments'},
select => ['me.id'],
as => ['user_id'],
});
print $uuu->first->username;
I think the single column that should be printed should be me.id, but here
is the generated SQL:
SELECT me.id, blogs.id, blogs.user, blogs.date_create, blogs.date_modify,
blogs.title, blogs.body, blogs.markup_lang, blogs.tags, blogs.active,
blog_comments.id, blog_comments.user, blog_comments.blog,
blog_comments.date_time, blog_comments.body, blog_comments.markup_lang,
blog_comments.active FROM user me LEFT JOIN blog blogs ON blogs.user = me.id
LEFT JOIN blog_comment blog_comments ON blog_comments.blog = blogs.id ORDER
BY blogs.user, blog_comments.blog:
Is it normal to get all the columns from the joined tables?
Thank you.
Octavian
More information about the DBIx-Class
mailing list