chainsaw 15/01/20 14:32:34 Added: gridfs-perl-patch.diff Log: Initial commit. Ebuild inspired by the work of Mark "castiel" Burazin, herd review by Vladimir "Civil" Smirnov. (Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 0xB5058F9A)
Revision Changes Path 1.1 dev-perl/MongoDB/files/gridfs-perl-patch.diff file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-perl/MongoDB/files/gridfs-perl-patch.diff?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-perl/MongoDB/files/gridfs-perl-patch.diff?rev=1.1&content-type=text/plain Index: gridfs-perl-patch.diff =================================================================== diff --git a/lib/MongoDB/GridFS.pm b/lib/MongoDB/GridFS.pm index f9a2421..8a9c4a7 100644 --- a/lib/MongoDB/GridFS.pm +++ b/lib/MongoDB/GridFS.pm @@ -119,13 +119,19 @@ sub BUILD { my ($self) = @_; # check for the required indexs in the system.indexes colleciton - my $count = $self->_database->get_collection('system.indexes')->count({filename => 1}); - $count += $self->_database->get_collection('system.indexes')->count({files_id => 1, n => 1}); - - # if we dont have the required indexes, create them now. - if ($count < 2){ - $self->_ensure_indexes(); + my @files_idx = $self->files->get_indexes; + my @matches = grep { $_->{key}->{filename} } @files_idx; + if (scalar @matches == 0) { + $self->files->ensure_index(Tie::IxHash->new(filename => 1), {"safe" => 1}); + } + + my @chunks_idx = $self->chunks->get_indexes; + @matches = grep { (defined $_->{key}->{files_id} && defined $_->{key}->{i} && + $_->{key}->{files_id} == 1 && $_->{key}->{i} == 1)} @chunks_idx; + if (scalar @matches == 0) { + $self->chunks->ensure_index(Tie::IxHash->new(files_id => 1, n => 1), {"safe" => 1}); } + } @@ -134,7 +140,7 @@ sub _ensure_indexes { # ensure the necessary index is present (this may be first usage) $self->files->ensure_index(Tie::IxHash->new(filename => 1), {"safe" => 1}); - $self->chunks->ensure_index(Tie::IxHash->new(files_id => 1, n => 1), {"safe" => 1, "unique" => 1}); + $self->chunks->ensure_index(Tie::IxHash->new(files_id => 1, n => 1), {"safe" => 1}); } =head1 METHODS
