[Dbix-class] Implicit prefetch (via select/columns) not supported
with accessor 'multi'
Christiaan Kras
c.kras at pcc-online.net
Sat Apr 16 14:58:32 GMT 2011
Hello list,
I've been banging my head against the wall because of an error message
I'm getting which I wasn't getting before. I'm now using DBIx::Class
0.08127, whilst before I believe it was 0.08123.
I'm constructing my search with the following data:
my @search = (
{ 'modscope.name' => $modscope,
'me.name' => $module,
'module_versions.version' => $version,
},
{
join => [qw /modscope module_versions/],
'+columns' => ['module_versions.remote_location'],
}
);
my $rs = $c->model('DB::Module')->search(@search);
my $row = $rs->first;
...
This generates the correct query for my case. The reason I explicitly
tell it to add the module_versions.remote_location column is because the
module_versions tables contains a BLOB column that can be big. If the
remote_location appears to be empty I'll fetch it in a new call,
otherwise it redirects the user to the remote_location (this is a
Catalyst application).
In 0.08123 and 0.08124 this works as I intended and described.
In 0.08125 and 0.08127 it doesn't and I'm presented with this error
message: "Implicit prefetch (via select/columns) not supported with
accessor 'multi'". The moment the database call is being made
($rs->first) the given error message shows up.
My question is, is this a bug in DBIx::Class or am I doing something
that wasn't supposed to work from the beginning?
If this behavior is intended could one give me directions on how to
refactor my code? I'm also curious as why this change was made if this
is indeed the case.
--
Christiaan Kras
http://blog.htbaa.com
More information about the DBIx-Class
mailing list