X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FCursor.pm;h=4d15401a244136a0dece1ca9f8068c1e58d70271;hb=1b658919f5ff67e9ac656daf6642a3bae8cec282;hp=6681d23540d84cdb3652142c9fe4f899a24830cb;hpb=e6ed824bbb02cbe1dfdc18987f468791af228e63;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Cursor.pm b/lib/DBIx/Class/Storage/DBI/Cursor.pm index 6681d23..4d15401 100644 --- a/lib/DBIx/Class/Storage/DBI/Cursor.pm +++ b/lib/DBIx/Class/Storage/DBI/Cursor.pm @@ -3,10 +3,11 @@ package DBIx::Class::Storage::DBI::Cursor; use strict; use warnings; -use base qw/DBIx::Class::Cursor/; +use base 'DBIx::Class::Cursor'; use Try::Tiny; -use Scalar::Util qw/refaddr weaken/; +use Scalar::Util qw(refaddr weaken); +use List::Util 'shuffle'; use namespace::clean; __PACKAGE__->mk_group_accessors('simple' => @@ -177,7 +178,14 @@ sub all { (undef, $sth) = $self->storage->_select( @{$self->{args}} ); - return @{$sth->fetchall_arrayref}; + return ( + DBIx::Class::_ENV_::SHUFFLE_UNORDERED_RESULTSETS + and + ! $self->{attrs}{order_by} + ) + ? shuffle @{$sth->fetchall_arrayref} + : @{$sth->fetchall_arrayref} + ; } sub sth {