Provided by: libmojo-sqlite-perl_3.009-2_all bug

NAME

       Mojo::SQLite::Results - Results

SYNOPSIS

         use Mojo::SQLite::Results;

         my $results = Mojo::SQLite::Results->new(sth => $sth);
         $results->hashes->map(sub { $_->{foo} })->shuffle->join("\n")->say;

DESCRIPTION

       Mojo::SQLite::Results is a container for DBD::SQLite statement handles used by
       Mojo::SQLite::Database.

ATTRIBUTES

       Mojo::SQLite::Results implements the following attributes.

   db
         my $db   = $results->db;
         $results = $results->db(Mojo::SQLite::Database->new);

       Mojo::SQLite::Database object these results belong to.

   sth
         my $sth  = $results->sth;
         $results = $results->sth($sth);

       DBD::SQLite statement handle results are fetched from.

METHODS

       Mojo::SQLite::Results inherits all methods from Mojo::Base and implements the following
       new ones.

   new
         my $results = Mojo::SQLite::Results->new;
         my $results = Mojo::SQLite::Results->new(sth => $sth);
         my $results = Mojo::SQLite::Results->new({sth => $sth});

       Construct a new Mojo::SQLite::Results object.

   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 + $b->[3] }, 0);

   columns
         my $columns = $results->columns;

       Return column names as an array reference.

         # Names of all columns
         say for @{$results->columns};

   expand
         $results = $results->expand(json => 'some_json');
         $results = $results->expand(json => ['some_json','other_json']);

       Decode specified fields from a particular format to Perl values for all rows.  Currently
       only the "json" text format is recognized. The names must exactly match the column names
       as returned by "columns"; it is recommended to use explicit aliases in the query for
       consistent column names.

         # Expand JSON
         $results->expand(json => 'json_field')->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 + $b->{money} }, 0);

   last_insert_id
         my $id = $results->last_insert_id;

       Returns the rowid <https://www.sqlite.org/c3ref/last_insert_rowid.html> of the most recent
       successful "INSERT".

   rows
         my $num = $results->rows;

       Number of rows. Note that for "SELECT" statements, this count will not be accurate until
       all rows have been fetched.

   text
         my $text = $results->text;

       Fetch all rows from "sth" and turn them into a table with "tablify" in Mojo::Util.

BUGS

       Report any issues on the public bugtracker.

AUTHOR

       Dan Book, "dbook@cpan.org"

COPYRIGHT AND LICENSE

       Copyright 2015, Dan Book.

       This library is free software; you may redistribute it and/or modify it under the terms of
       the Artistic License version 2.0.

SEE ALSO

       Mojo::SQLite