diff --git a/lib/DBIx/Class/ResultSet.pm b/lib/DBIx/Class/ResultSet.pm index eec34b39d..f1595eee0 100644 --- a/lib/DBIx/Class/ResultSet.pm +++ b/lib/DBIx/Class/ResultSet.pm @@ -1812,6 +1812,7 @@ sub _rs_update_delete { $cond = do { my $sqla = $rsrc->storage->sql_maker; local $sqla->{_dequalify_idents} = 1; + local $sqla->{_table_name} = $rsrc->name; \[ $sqla->_recurse_where($self->{cond}) ]; }; } diff --git a/lib/DBIx/Class/SQLMaker.pm b/lib/DBIx/Class/SQLMaker.pm index 1162280b6..44e5ecbdc 100644 --- a/lib/DBIx/Class/SQLMaker.pm +++ b/lib/DBIx/Class/SQLMaker.pm @@ -87,7 +87,8 @@ sub __max_int () { 0x7FFFFFFF }; # poor man's de-qualifier sub _quote { - $_[0]->next::method( ( $_[0]{_dequalify_idents} and ! ref $_[1] ) + $_[0]->next::method( ( $_[0]{_dequalify_idents} and (! ref $_[1]) + and $_[1] ne $_[0]{_table_name} ) ? $_[1] =~ / ([^\.]+) $ /x : $_[1] );