| Data-Stream-Bulk documentation | Contained in the Data-Stream-Bulk distribution. |
Data::Stream::Bulk::DBIC - Iterate DBIC resultsets with Data::Stream::Bulk
Data::Stream::Bulk::DBIC->new(
resultset => scalar($schema->rs("Foo")->search(...))
);
This is a wrapper for DBIx::Class::ResultSet that fits the Data::Stream::Bulk api.
Due to the fact that DBIC inflation overhead is fairly negligiable to that of iteration though, I haven't actually bothered to make it bulk.
If DBIx::Class::Cursor will support n-at-a-time fetching as opposed to one-at-a-time or all-at-a-time at some point in the future this class will be updated to match.
See Data::Stream::Bulk::DoneFlag.
Returns a single row. In the future this should return more than one row.
Yuval Kogman <nothingmuch@woobling.org>
This software is copyright (c) 2010 by Yuval Kogman.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| Data-Stream-Bulk documentation | Contained in the Data-Stream-Bulk distribution. |
package Data::Stream::Bulk::DBIC; BEGIN { $Data::Stream::Bulk::DBIC::AUTHORITY = 'cpan:NUFFIN'; } BEGIN { $Data::Stream::Bulk::DBIC::VERSION = '0.08'; } # ABSTRACT: Iterate DBIC resultsets with L<Data::Stream::Bulk> use Moose; use namespace::clean -except => 'meta'; with qw(Data::Stream::Bulk::DoneFlag) => { -excludes => [qw(is_done finished)] }; has resultset => ( isa => "Object", clearer => "finished", handles => { next_row => "next" }, required => 1, ); sub get_more { my $self = shift; if ( defined( my $next = $self->next_row ) ) { return [ $next ]; } else { return; } } __PACKAGE__->meta->make_immutable; __PACKAGE__; __END__