From 7586cffaad3c9973642cdba990a9fcb021031a02 Mon Sep 17 00:00:00 2001 From: "Kevin L. Kane" Date: Thu, 7 Mar 2013 16:12:09 -0500 Subject: [PATCH] making the dequalifer aware of the table name so it will not strip out schema.table if that is how the table is defined --- lib/DBIx/Class/ResultSet.pm | 1 + lib/DBIx/Class/SQLMaker.pm | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) 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] );