r11787@llin: dpavlin | 2005-12-19 06:10:47 +0100
[webpac2] / lib / WebPAC / Input / MARC.pm
index fdcce36..2786018 100644 (file)
@@ -51,7 +51,9 @@ sub open_db {
        $log->info("opening MARC database '$arg->{path}'");
 
        my $db = new MARC::Fast( marcdb => $arg->{path});
-       my $db_size = $db->count;
+       my $db_size = $db->count - 1;   # FIXME
+
+       $self->{size} = $db_size;
 
        return ($db, $db_size);
 }
@@ -71,7 +73,13 @@ sub fetch_rec {
 
        my ($db, $mfn) = @_;
 
-       return $db->fetch($mfn);
+       if ($mfn > $self->{size}) {
+               $self->_get_logger()->warn("seek beyond database size $self->{size} to $mfn");
+       } else {
+               my $row = $db->fetch($mfn);
+               $row->{'000'}->[0] = $mfn;
+               return $row;
+       }
 }
 
 =head1 AUTHOR