X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSet.pm;h=ca16242b7e9dbfc4eeb3bab4af8e1c9fc132deb8;hb=77e882e68d77cf201db1c293ce3526acc276c1d2;hp=e0e1686da4ff95a9261ccfd8e76e221f7f7da2c6;hpb=9778825002ff852ea42a4d1670c4c5e9e24befa6;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSet.pm b/lib/DBIx/Class/ResultSet.pm index e0e1686..ca16242 100644 --- a/lib/DBIx/Class/ResultSet.pm +++ b/lib/DBIx/Class/ResultSet.pm @@ -1796,7 +1796,12 @@ sub populate { } else { my ($first, @rest) = @$data; - my @names = grep {!ref $first->{$_}} keys %$first; + require overload; + my @names = grep { + (not ref $first->{$_}) || (ref $first->{$_} eq 'SCALAR') || + (overload::Method($first->{$_}, '""')) + } keys %$first; + my @rels = grep { $self->result_source->has_relationship($_) } keys %$first; my @pks = $self->result_source->primary_columns; @@ -3255,6 +3260,9 @@ When you use function/stored procedure names and do not supply an C attribute, the column names returned are storage-dependent. E.g. MySQL would return a column named C in the above example. +B You will almost always need a corresponding 'as' entry when you use +'select'. + =head2 +select =over 4