[Dbix-class] err messages, bug in search
Mark Hedges
hedges at ucsd.edu
Fri Mar 31 01:07:02 CEST 2006
I guess there are error messages clucked from the code in
places where I do things wrong.
But what does this mean?
DBIx::Class::ResultSet::find(): Don't know how to store prefetched <prefetched thing> at <my script> line 9
I was trying to use prefetch in a find().
When I tried a multi-level prefetch in a search, it didn't work.
Looking at the SQL log, it got all the joins right, but the
where clause used only the "where pk = searched_for_pk_value"
which mysql reports as "ambiguous field pk in where clause".
But if I were to use search_literal, the manual page would
seem to indicate that I can't use prefetch.
Aha, I managed to trick search by saying
my $rs = $schema->resultset('Level1')->search(
{ 'me.email' => $email },
{ prefetch => {
thing2s => 'thing3',
}
},
);
Seems like the where clause for a search should automatically
get a 'me.' prefix in case the joined tables in a prefetch have
columns of the same name. (In this case thing2 also has an
email column, it is the fk.)
Mark
More information about the Dbix-class
mailing list