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



_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/

Reply via email to