|
From: <mjd...@us...> - 2009-06-23 20:08:11
|
Revision: 88
http://treebase.svn.sourceforge.net/treebase/?rev=88&view=rev
Author: mjdominus
Date: 2009-06-23 20:07:19 +0000 (Tue, 23 Jun 2009)
Log Message:
-----------
improved progress meter reports percentage done
Modified Paths:
--------------
trunk/treebase-core/src/main/perl/dump/sqldump
Modified: trunk/treebase-core/src/main/perl/dump/sqldump
===================================================================
--- trunk/treebase-core/src/main/perl/dump/sqldump 2009-06-23 19:54:51 UTC (rev 87)
+++ trunk/treebase-core/src/main/perl/dump/sqldump 2009-06-23 20:07:19 UTC (rev 88)
@@ -74,11 +74,10 @@
$dbh->{LongReadLen} = $maxlen; # Handle LOBs up to $maxlen bytes
for my $table ( @tables ) {
- # only using these two functions once, so for clarity as to where they
- # originate let's use the fully qualified names.
+
my @names = CIPRES::TreeBase::DBIUtil::get_colnames($dbh, $table);
my @types = CIPRES::TreeBase::DBIUtil::get_coltypes($dbh, $table);
-
+
# instantiate a RecDumper object, which will format a row-as-array
# into an insert statement
my $dumper = CIPRES::TreeBase::RecDumper->new(
@@ -168,11 +167,17 @@
# if --progress is provided, print out progress counter
if ($with_progress_meter) {
+ my ($total_records) = @{$dbh->selectcol_arrayref(qq{select count(*) from $table})};
+ $total_records = $nrecs if defined($nrecs) && $nrecs < $total_records;
my $count = 0;
+ my $old_percent = "";
while ( $row = $sth->fetchrow_arrayref ) {
++$count;
$dumper->rec(@$row);
- print STDERR "\r$count" if $count % 1000 == 0;
+ my $percent = int(0.5 + $count / $total_records * 100);
+ print STDERR "\r$percent%" if $percent ne $old_percent;
+ $old_percent = $percent;
+ last if defined($nrecs) && (--$nrecs == 0);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|