| DBIx::Class::ResultSetColumn - helpful methods for messing |
DBIx::Class::ResultSetColumn - helpful methods for messing with a single column of the resultset
$rs = $schema->resultset('CD')->search({ artist => 'Tool' }); $rs_column = $rs->get_column('year'); $max_year = $rs_column->max; #returns latest year
A convenience class used to perform operations on a specific column of a resultset.
my $obj = DBIx::Class::ResultSetColumn->new($rs, $column);
Creates a new resultset column object from the resultset and column passed as params. Used internally by get_column in the DBIx::Class::ResultSet manpage.
Returns the SQL query and bind vars associated with the invocant.
This is generally used as the RHS for a subquery.
NOTE: This feature is still experimental.
Returns the next value of the column in the resultset (or undef if
there is none).
Much like next in the DBIx::Class::ResultSet manpage but just returning the one value.
Returns all values of the column in the resultset (or undef if
there are none).
Much like all in the DBIx::Class::ResultSet manpage but returns values rather than row objects.
Resets the underlying resultset's cursor, so you can iterate through the elements of the column again.
Much like reset in the DBIx::Class::ResultSet manpage.
Resets the underlying resultset and returns the next value of the column in the
resultset (or undef if there is none).
Much like first in the DBIx::Class::ResultSet manpage but just returning the one value.
my $first_year = $year_col->min();
Wrapper for ->func. Returns the lowest value of the column in the
resultset (or undef if there are none).
my $rs = $year_col->min_rs();
Wrapper for ->func_rs for function MIN().
my $last_year = $year_col->max();
Wrapper for ->func. Returns the highest value of the column in the
resultset (or undef if there are none).
my $rs = $year_col->max_rs();
Wrapper for ->func_rs for function MAX().
my $total = $prices_col->sum();
Wrapper for ->func. Returns the sum of all the values in the column of the resultset. Use on varchar-like columns at your own risk.
my $rs = $year_col->sum_rs();
Wrapper for ->func_rs for function SUM().
$rs = $schema->resultset("CD")->search({}); $length = $rs->get_column('title')->func('LENGTH');
Runs a query using the function on the column and returns the value. Produces the following SQL:
SELECT LENGTH( title ) FROM cd me
Creates the resultset that func() uses to run its query.
See throw_exception in the DBIx::Class::Schema manpage for details.
=cut
sub throw_exception { my $self=shift; if (ref $self && $self->{_parent_resultset}) { $self->{_parent_resultset}->throw_exception(@_) } else { croak(@_); } }
# _resultset # # Arguments: none # # Return Value: $resultset # # $year_col->_resultset->next # # Returns the underlying resultset. Creates it from the parent resultset if # necessary. # sub _resultset { my $self = shift;
return $self->{_resultset} ||= $self->{_parent_resultset}->search(undef, { select => [$self->{_select}], as => [$self->{_as}] } ); }
1;
Luke Saunders <luke.saunders@gmail.com>
Jess Robinson
You may distribute this code under the same terms as Perl itself.
| DBIx::Class::ResultSetColumn - helpful methods for messing |