X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FMultiColumnIn.pm;h=2a757eadefa23bc07071d9d2cee3b63cedeb930f;hb=2e8345503896294f38eea58569c4ca4893e3d4c6;hp=050c018bc23395038cae3b8478f06a0fb3d2a786;hpb=4ce3b8511e36f3007da96e8926baacc2ed56986c;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm b/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm index 050c018..2a757ea 100644 --- a/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm +++ b/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm @@ -4,6 +4,7 @@ use strict; use warnings; use base 'DBIx::Class::Storage::DBI'; +use mro 'c3'; =head1 NAME @@ -33,9 +34,10 @@ sub _multipk_update_delete { if ( ref $attrs->{select} ne 'ARRAY' or @{$attrs->{select}} != @pcols ); # This is hideously ugly, but SQLA does not understand multicol IN expressions + my $sqla = $self->_sql_maker; my ($sql, @bind) = @${$rs->as_query}; - $sql = sprintf ('(%s) IN %s', - join (', ', @pcols), + $sql = sprintf ('(%s) IN %s', # the as_query stuff is already enclosed in ()s + join (', ', map { $sqla->_quote ($_) } @pcols), $sql, );