Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DBIx::Class::ResultClaUserHContributed:Perlss::ResultClass::HashRefInflator(3)

NAME
       DBIx::Class::ResultClass::HashRefInflator - Get raw hashrefs from a
       resultset

SYNOPSIS
	use DBIx::Class::ResultClass::HashRefInflator;

	my $rs = $schema->resultset('CD');
	$rs->result_class('DBIx::Class::ResultClass::HashRefInflator');
	while (my $hashref = $rs->next)	{
	  ...
	}

	 OR as an attribute:

	my $rs = $schema->resultset('CD')->search({}, {
	  result_class => 'DBIx::Class::ResultClass::HashRefInflator',
	});
	while (my $hashref = $rs->next)	{
	  ...
	}

DESCRIPTION
       DBIx::Class is faster than older	ORMs like Class::DBI but it still
       isn't designed primarily	for speed. Sometimes you need to quickly
       retrieve	the data from a	massive	resultset, while skipping the creation
       of fancy	result objects.	 Specifying this class as a "result_class" for
       a resultset will	change "$rs->next" to return a plain data hash-ref (or
       a list of such hash-refs	if "$rs->all" is used).

       There are two ways of applying this class to a resultset:

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

       o   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 (invoked	by
       DBIx::Class::ResultSet)

CAVEATS
       o   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.

       o   Column value	inflation, e.g., using modules like
	   DBIx::Class::InflateColumn::DateTime, is not	performed.  The
	   returned hash contains the raw database values.

FURTHER	QUESTIONS?
       Check the list of additional DBIC resources.

COPYRIGHT AND LICENSE
       This module is free software copyright by the DBIx::Class (DBIC)
       authors.	You can	redistribute it	and/or modify it under the same	terms
       as the DBIx::Class library.

perl v5.24.1			  DBIx::Class::ResultClass::HashRefInflator(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | CAVEATS | FURTHER QUESTIONS? | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DBIx::Class::ResultClass::HashRefInflator&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help