[Dbix-class] D::C generates unneccessary duplicate joins..
Jess Robinson
castaway at desert-island.demon.co.uk
Thu Jul 6 14:49:12 CEST 2006
On Wed, 5 Jul 2006, Toby Corkindale wrote:
> Hi,
> I'm trying to work out how to optimise a query. D::C is generating twice as
> many joins as neccessary, which adds up to hurt performance in extended
> cases of the example I give below.
>
> An example query wants to select objects which have metadata.value=foo and
> metadata.value=bar.
>
> One method is to do this:
> Using a objects->search(
> { metadata.value => foo, metadata_2.value => bar },
> { join => [ { objmetadata => metadata }, {objmetadata => metadata } ] }
> );
>
Well you asked it to. Shouldnt that be something like:
Using a objects->search(
{ metadata.value => foo, metadata_2.value => bar },
{ join => { objmetadata => ['metadata', 'metadata'] }
);
??
Also, what a horrible wquery, why isnt that just:
.. WHERE metadata.value = foo OR metadata.value = bar
Using a objects->search(
{ metadata.value => ['foo', 'bar'] },
{ join => { objmetadata => 'metadata' }
);
?
Jess
More information about the Dbix-class
mailing list