1 package DBM::Deep::Iterator::DBI;
4 use warnings FATAL => 'all';
6 use base qw( DBM::Deep::Iterator );
11 eval { $self->{sth}->finish; };
21 unless ( exists $self->{sth} ) {
22 # For mysql, this needs to be RAND()
23 # For sqlite, this needs to be random()
24 my $storage = $self->{engine}->storage;
25 $self->{sth} = $storage->{dbh}->prepare(
26 "SELECT `key` FROM datas WHERE ref_id = ? ORDER BY "
27 . $storage->rand_function,
29 $self->{sth}->execute( $self->{base_offset} );
32 my ($key) = $self->{sth}->fetchrow_array;