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




Reply via email to