<div dir="ltr"><div>I need some help with this error I&#39;m seeing after upgrading DBIx::Class.</div><div><br></div>In ReulstSet.pm there&#39;s this code that calls $storage-&gt;_use_multicolumn_in.<div><br></div><div>The problem is that method throws and error on replicated storage.<br><div><br></div><div><br><div><div>sub _rs_update_delete {</div><div><font face="monospace, monospace">  my ($self, $op, $values) = @_;</font></div><div><font face="monospace, monospace">  ....</font></div><div><font face="monospace, monospace"><br></font></div><div><div><font face="monospace, monospace">    if (@$idcols == 1) {</font></div><div><font face="monospace, monospace">      $cond = { $idcols-&gt;[0] =&gt; { -in =&gt; $subrs-&gt;as_query } };</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">    elsif (<span style="background-color:rgb(255,255,0)">$storage-&gt;_use_multicolumn_in</span>) {</font></div><div><font face="monospace, monospace">      # no syntax for calling this properly yet</font></div><div><font face="monospace, monospace">      # !!! EXPERIMENTAL API !!! WILL CHANGE !!!</font></div><div><font face="monospace, monospace">      $cond = $storage-&gt;sql_maker-&gt;_where_op_multicolumn_in (</font></div><div><font face="monospace, monospace">        $idcols, # how do I convey a list of idents...? can binds reside on lhs?</font></div><div><font face="monospace, monospace">        $subrs-&gt;as_query</font></div><div><font face="monospace, monospace">      ),</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">    else {</font></div></div><div><br></div><div>But, in DBIx::Class::Storage::Replicated the _use_multicolumn method is blocked by this code:</div><div><br></div><div><div><font face="monospace, monospace">for my $method (@{$method_dispatch-&gt;{unimplemented}}) {</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">  __PACKAGE__-&gt;meta-&gt;add_method($method, sub {</font></div><div><font face="monospace, monospace">    my $self = shift;</font></div><div><font face="monospace, monospace">    $self-&gt;throw_exception(&quot;$method() must not be called on &quot;.(blessed $self).&#39; objects&#39;);</font></div><div><font face="monospace, monospace">  });</font></div><div><font face="monospace, monospace">}</font></div></div><div><br></div><div>What I&#39;m not clear on is if this just wasn&#39;t tested with Replicated storage, or if there&#39;s something odd in my code that is causing ResultSet.pm to call that method (because other deletes are working).</div><div><br></div><div>The query that is failing is:</div><div><br></div><div><div>   my $student_class_rs = $account-&gt;search_related( &#39;classes&#39; )-&gt;search_related(</div><div>        &#39;student_classes&#39;,</div><div>        {</div><div>            student =&gt; $student_id,</div><div>        }</div><div>    );</div><div><br></div><div>    $student_class_rs-&gt;delete();</div></div><div><br></div><div>$idcols in the code above is a arrayref of two names &#39;student&#39; and &#39;class&#39;.</div><div><br></div>-- <br><div>Bill Moseley<br><a href="mailto:moseley@hank.org" target="_blank">moseley@hank.org</a></div>
</div></div></div></div>