NAME

DBIx::Class::ResultClass::HashRefInflator

SYNOPSIS

my $rs = $schema->resultset('CD');

$rs->result_class('DBIx::Class::ResultClass::HashRefInflator');

DESCRIPTION

DBIx::Class is not built for speed: it's built for convenience and ease of use. But sometimes you just need to get the data, and skip the fancy objects. That is what this class provides.

There are two ways of using this class.

  • Specify $rs->result_class on a specific resultset to affect only that resultset (and any chained off of it); or

  • Specify __PACKAGE__->result_class on your source object to force all uses of that result source to be inflated to hash-refs - this approach is not recommended.

METHODS

inflate_result

Inflates the result and prefetched data into a hash-ref using mk_hash.

mk_hash

This does all the work of inflating the (pre)fetched data.

CAVEAT

This will not work for relationships that have been prefetched. Consider the following:

my $artist = $artitsts_rs->search({}, {prefetch => 'cds' })->first;

my $cds = $artist->cds;
$cds->result_class('DBIx::Class::ResultClass::HashRefInflator');
my $first = $cds->first; 

$first will not be a hashref, it will be a normal CD row since HashRefInflator only affects resultsets at inflation time, and prefetch causes relations to be inflated when the master $artist row is inflated.