SYNOPSIS
use Mojo::Pg::Results;
my $results = Mojo::Pg::Results->new(sth => $sth);
$results->hashes->map(sub { $_->{foo} })->shuffle->join("\n")->say;
DESCRIPTION
Mojo::Pg::Results is a container for DBD::Pg statement handles used by Mojo::Pg::Database.ATTRIBUTES
Mojo::Pg::Results implements the following attributes.sth
my $sth = $results->sth; $results = $results->sth($sth);
DBD::Pg statement handle results are fetched from.
METHODS
Mojo::Pg::Results inherits all methods from Mojo::Base and implements the following new ones.array
my $array = $results->array;
Fetch next row from ``sth'' and return it as an array reference. Note that ``finish'' needs to be called if you are not fetching all the possible rows.
# Process one row at a time while (my $next = $results->array) { say $next->[3]; }
arrays
my $collection = $results->arrays;
Fetch all rows from ``sth'' and return them as a Mojo::Collection object containing array references.
# Process all rows at once say $results->arrays->reduce(sub { $a->[3] + $b->[3] });
columns
my $columns = $results->columns;
Return column names as an array reference.
# Names of all columns say for @{$results->columns};
expand
$results = $results->expand;
Decode "json" and "jsonb" fields automatically to Perl values for all rows.
# Expand JSON $results->expand->hashes->map(sub { $_->{foo}{bar} })->join("\n")->say;
finish
$results->finish;
Indicate that you are finished with ``sth'' and will not be fetching all the remaining rows.
hash
my $hash = $results->hash;
Fetch next row from ``sth'' and return it as a hash reference. Note that ``finish'' needs to be called if you are not fetching all the possible rows.
# Process one row at a time while (my $next = $results->hash) { say $next->{money}; }
hashes
my $collection = $results->hashes;
Fetch all rows from ``sth'' and return them as a Mojo::Collection object containing hash references.
# Process all rows at once say $results->hashes->reduce(sub { $a->{money} + $b->{money} });
new
my $results = Mojo::Pg::Results->new; my $results = Mojo::Pg::Results->new(sth => $sth); my $results = Mojo::Pg::Results->new({sth => $sth});
Construct a new Mojo::Pg::Results object.
rows
my $num = $results->rows;
Number of rows.
text
my $text = $results->text;
Fetch all rows from ``sth'' and turn them into a table with ``tablify'' in Mojo::Util.