I need some help with this error I'm seeing after upgrading DBIx::Class.

In ReulstSet.pm there's this code that calls $storage->_use_multicolumn_in.

The problem is that method throws and error on replicated storage.


sub _rs_update_delete {
  my ($self, $op, $values) = @_;
  ....

    if (@$idcols == 1) {
      $cond = { $idcols->[0] => { -in => $subrs->as_query } };
    }
    elsif ($storage->_use_multicolumn_in) {
      # no syntax for calling this properly yet
      # !!! EXPERIMENTAL API !!! WILL CHANGE !!!
      $cond = $storage->sql_maker->_where_op_multicolumn_in (
        $idcols, # how do I convey a list of idents...? can binds reside on
lhs?
        $subrs->as_query
      ),
    }
    else {

But, in DBIx::Class::Storage::Replicated the _use_multicolumn method is
blocked by this code:

for my $method (@{$method_dispatch->{unimplemented}}) {

  __PACKAGE__->meta->add_method($method, sub {
    my $self = shift;
    $self->throw_exception("$method() must not be called on ".(blessed
$self).' objects');
  });
}

What I'm not clear on is if this just wasn't tested with Replicated
storage, or if there's something odd in my code that is causing
ResultSet.pm to call that method (because other deletes are working).

The query that is failing is:

   my $student_class_rs = $account->search_related( 'classes'
)->search_related(
        'student_classes',
        {
            student => $student_id,
        }
    );

    $student_class_rs->delete();

$idcols in the code above is a arrayref of two names 'student' and 'class'.

-- 
Bill Moseley
mose...@hank.org
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk

Reply via email to