X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI.pm;fp=lib%2FDBIx%2FClass%2FStorage%2FDBI.pm;h=7be4202a367d8c78073de3e61bb5a8d0b36b1b6c;hp=99a895e8e92527ac2d2babde5336a08ac202718a;hb=f4dc39d649672ff4452cf827ca204a1e937bc8b7;hpb=a4e4185f3c1e0af23dc3d916f706d0e92f95de45 diff --git a/lib/DBIx/Class/Storage/DBI.pm b/lib/DBIx/Class/Storage/DBI.pm index 99a895e..7be4202 100644 --- a/lib/DBIx/Class/Storage/DBI.pm +++ b/lib/DBIx/Class/Storage/DBI.pm @@ -11,6 +11,7 @@ use DBIx::Class::Carp; use Scalar::Util qw/refaddr weaken reftype blessed/; use Context::Preserve 'preserve_context'; use SQL::Abstract qw(is_plain_value is_literal_value); +use DBIx::Class::ResultSource::FromSpec::Util 'fromspec_columns_info'; use DBIx::Class::_Util qw( quote_sub perlstring serialize dump_value dbic_internal_try dbic_internal_catch @@ -1775,7 +1776,8 @@ sub _resolve_bindattrs { my $resolve_bindinfo = sub { #my $infohash = shift; - $colinfos ||= { %{ $self->_resolve_column_info($ident) } }; + # shallow copy to preempt autoviv + $colinfos ||= { %{ fromspec_columns_info($ident) } }; my $ret; if (my $col = $_[0]->{dbic_colname}) { @@ -2642,8 +2644,6 @@ sub _select_args { $orig_attrs->{_last_sqlmaker_alias_map} = $attrs->{_aliastypes}; ### - # my $alias2source = $self->_resolve_ident_sources ($ident); - # # This would be the point to deflate anything found in $attrs->{where} # (and leave $attrs->{bind} intact). Problem is - inflators historically # expect a result object. And all we have is a resultsource (it is trivial