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

FreeBSD Manual Pages

  
 
  

home | help
DBIx::Class::Helper::RUsertContributedBPe::Class::Helper::ResultSet::OneRow(3)

NAME
       DBIx::Class::Helper::ResultSet::OneRow -	The first you always wanted

SYNOPSIS
	# note that this is normally a component for a ResultSet
	package	MySchema::ResultSet::Person;

	use strict;
	use warnings;

	use parent 'DBIx::Class::ResultSet';

	__PACKAGE__->load_components('Helper::ResultSet::OneRow');

	sub person_named {
	   $_[0]->search({ name	=> $_[1] })->one_row
	}

DESCRIPTION
       This component codifies an alternate version of "first" in
       DBIx::Class::ResultSet.	In practical use, "first" allows a user	to do
       something like the following:

	my $rs = $schema->resultset('Foo')->search({ name => 'bar' });
	my $first = $rs->first;
	my @rest;
	while (my $row = $rs->next) {
	   push	@rest, $row
	}

       Problematically,	if you call "first" without the	while loop afterwards
       and you got back	more than one row, you are leaving a cursor open.
       Depending on your database this could increase memory usage or cause
       errors with later queries.

       Fundamentally the difference is that when you use "one_row" you are
       guaranteed to exhaust the underlying cursor.

       Generally speaking, unless you are doing	something unusual, "one_row"
       is a good default.

METHODS
   one_row
       Limits the ResultSet to a single	row, and then returns the matching
       result object. In case no rows match, "undef" is	returned as normal.

THANKS
       Thanks to Aran Clary Deltac (BLUEFEET) for initially writing this
       module, and thanks to ZipRecruiter <https://www.ziprecruiter.com> for
       sponsoring that initial developmentl

AUTHOR
       Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2017 by Arthur Axel "fREW" Schmidt.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.24.1			  201DBIx::Class::Helper::ResultSet::OneRow(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | THANKS | AUTHOR | COPYRIGHT AND LICENSE

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

home | help