From: Dagfinn Ilmari Mannsåker Date: Sun, 27 Jan 2008 08:41:01 +0000 (+0000) Subject: Only get $self->{schema}->source($local_moniker) once. X-Git-Tag: 0.04999_01~9 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=97ec773a0105fe31514cb24b223c5bf3c234db7c;p=dbsrgits%2FDBIx-Class-Schema-Loader.git Only get $self->{schema}->source($local_moniker) once. --- diff --git a/lib/DBIx/Class/Schema/Loader/RelBuilder.pm b/lib/DBIx/Class/Schema/Loader/RelBuilder.pm index f7b3473..73fc33c 100644 --- a/lib/DBIx/Class/Schema/Loader/RelBuilder.pm +++ b/lib/DBIx/Class/Schema/Loader/RelBuilder.pm @@ -201,15 +201,14 @@ sub generate_code { my $remote_method = 'has_many'; # If the local columns have a UNIQUE constraint, this is a one-to-one rel - my $primary = [ $self->{schema}->source($local_moniker)->primary_columns ]; - if (_array_eq($primary, $local_cols) || + my $local_source = $self->{schema}->source($local_moniker); + if (_array_eq([ $local_source->primary_columns ], $local_cols) || grep { _array_eq($_->[1], $local_cols) } @$uniqs) { $remote_method = 'might_have'; $local_relname = $self->_inflect_singular($local_relname); } # If the referring column is nullable, make 'belongs_to' an outer join: - my $local_source = $self->{schema}->source($local_moniker); my $nullable = grep { $local_source->column_info($_)->{is_nullable} } @$local_cols;