Commit | Line | Data |
54bed31b |
1 | package DBIx::Data::Stream::STH; |
2 | |
3 | use strictures 1; |
4 | |
5 | sub new { |
6 | my $proto = shift; |
7 | bless({ %{$_[0]} }, ref($proto)||$proto); |
8 | } |
9 | |
10 | sub _sth { shift->{sth} } |
11 | |
12 | sub _clear_sth { delete shift->{sth} } |
13 | |
14 | sub next { |
15 | my $sth = (my $self = shift)->_sth; |
16 | return unless $sth; |
17 | # {Active} only means that there *may* be more results to fetch |
18 | if ($sth->{Active} and my @next = $self->sth->fetchrow_array) { |
19 | my %next; @next{@{$self->_column_order}} = @next; |
20 | return \%next; |
21 | } |
22 | $sth->finish; |
23 | # prepare_cached might recycle it now we're finished so get rid of it |
24 | $self->_clear_sth; |
25 | return; |
26 | } |
27 | |
28 | 1; |