X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FPg.pm;h=ee134c9fe29e5e7f0183244c7deeebcbc53139a4;hb=refs%2Fheads%2Fpeople%2Filmari%2Fset-constraints-deffered-component;hp=dacfdb67ec72ba33ff64922814f4fa37a73cb9c8;hpb=2aa3f4c0bc1ce479776c96a1bc7bb44f7cfd1233;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Pg.pm b/lib/DBIx/Class/Storage/DBI/Pg.pm index dacfdb6..ee134c9 100644 --- a/lib/DBIx/Class/Storage/DBI/Pg.pm +++ b/lib/DBIx/Class/Storage/DBI/Pg.pm @@ -3,10 +3,8 @@ package DBIx::Class::Storage::DBI::Pg; use strict; use warnings; -use base qw/DBIx::Class::Storage::DBI/; +use base qw/DBIx::Class::Storage::DBI::SetConstraintsDeferred/; -use Scope::Guard (); -use Context::Preserve 'preserve_context'; use DBIx::Class::Carp; use Try::Tiny; use namespace::clean; @@ -23,22 +21,6 @@ sub _determine_supports_insert_returning { ; } -sub with_deferred_fk_checks { - my ($self, $sub) = @_; - - my $txn_scope_guard = $self->txn_scope_guard; - - $self->_do_query('SET CONSTRAINTS ALL DEFERRED'); - - return preserve_context { - my $inner_self = $self; # avoid nested closure leak on 5.8 - my $sg = Scope::Guard->new(sub { - $inner_self->_do_query('SET CONSTRAINTS ALL IMMEDIATE'); - }); - $sub->() - } after => sub { $txn_scope_guard->commit }; -} - # only used when INSERT ... RETURNING is disabled sub last_insert_id { my ($self,$source,@cols) = @_;