[Bio] / Sprout / ERDBLoad.pm Repository:
ViewVC logotype

Diff of /Sprout/ERDBLoad.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.22, Tue Aug 12 06:07:06 2008 UTC revision 1.23, Wed Sep 3 20:56:20 2008 UTC
# Line 82  Line 82 
82          Trace("Relation $relationName will be loaded from $fileName.") if T(2);          Trace("Relation $relationName will be loaded from $fileName.") if T(2);
83          $fileHandle = "";          $fileHandle = "";
84      } else {      } else {
85          # Determine the sort for this relation.          # Compute the file namefor this relation. We will build a file on
86          my $fileString = "| " . $erdb->SortNeeded($relationName) . " >$fileName";          # disk and then sort it into the real file when we're done.
87          Trace("Load file creation string is \"$fileString\".") if T(3);          my $fileString = ">$fileName.tmp";
88          # Open the output file and remember its handle.          # Open the output file and remember its handle.
89          $fileHandle = Open(undef, $fileString);          $fileHandle = Open(undef, $fileString);
90          Trace("Relation $relationName load file created with primary flag $primary.") if T(2);          Trace("Relation $relationName load file created with primary flag $primary.") if T(2);
# Line 203  Line 203 
203    
204      my $stats = $erload->Finish();      my $stats = $erload->Finish();
205    
206  Finish loading the table. This closes the load file.  Finish loading the table. This closes and sorts the load file.
207    
208  =over 4  =over 4
209    
# Line 222  Line 222 
222      if ($self->{fh}) {      if ($self->{fh}) {
223          # Close the load file.          # Close the load file.
224          close $self->{fh};          close $self->{fh};
225            # Get the ERDB object.
226            my $erdb = $self->{dbh};
227            # Get the output file name.
228            my $fileName = $self->{fileName};
229            # Get the sort command for this relation.
230            my $sortCommand = $erdb->SortNeeded($self->{relName});
231            # Open the temp file for input via sort.
232            my $ih = Open(undef, "$sortCommand <$fileName.tmp |");
233            # Open the real file for output.
234            my $oh = Open(undef, ">$fileName");
235            Trace("Sorting into $fileName with command: $sortCommand") if T(3);
236            # Set up a timer.
237            my $start = time();
238            # Sort from the temp file into the output file.
239            while (! eof $ih) {
240                print $oh (<$ih>);
241            }
242            # Record the time spent
243            $self->{stats}->Add(sortTime => (time() - $start));
244            # Delete the temp file.
245            unlink "$fileName.tmp";
246            # Tell the user we're done.
247            Trace("Load file $fileName created.") if T(3);
248    
249      }      }
250      # Return the statistics object.      # Return the statistics object.
251      return $self->{stats};      return $self->{stats};

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3